Lunch
Lunch Partner API

Price an advance, then take it.


Request an advance against an invoice

POST
https://api.luxor.lunchpayments.com
/v1/advances

Prices the advance, checks the business is eligible and within its limit, and creates it unassigned. A funder is put behind it afterwards. Idempotent per invoice: asking twice returns the advance you already have rather than creating a second one.

Request an advance against an invoice Request Body

payeeExternalId
string · minLength: 1 · required

Your own identifier for the business, as supplied when you synced it. You never need to store a Lunch identifier.

invoiceExternalId
string · required

Your own identifier for the invoice, as supplied when you synced it.

Request an advance against an invoice Responses

The advance, priced. Also returned when one already existed.

oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object · requires: alreadyRequested, financeableAmount, advanceAmount +2 more
type = object · requires: alreadyRequested, financeableAmount, advanceAmount
Properties for Variant 1:
alreadyRequested
boolean · enum · required
Enum values:
financeableAmount
integer · required

An amount in integer cents. 1050 is $10.50.

advanceAmount
integer · required

An amount in integer cents. 1050 is $10.50.

feeTotal
integer · required

An amount in integer cents. 1050 is $10.50.

forwardedAtPayment
integer · required

An amount in integer cents. 1050 is $10.50.


Quote an advance against an invoice

POST
https://api.luxor.lunchpayments.com
/v1/quotes

Quote an advance against an invoice Request Body

externalId
string · minLength: 1 · required

Your own identifier for the business, as supplied when you synced it. You never need to store a Lunch identifier.

invoiceFaceValue
integer · max: 2147483647 · required

The invoice face value in integer cents. Must be positive, and at most 2147483647, which is $21,474,836.47.

Quote an advance against an invoice Responses

The priced advance

financeableAmount
integer · required

An amount in integer cents. 1050 is $10.50.

advanceAmount
integer · required

An amount in integer cents. 1050 is $10.50.

feeTotal
integer · required

An amount in integer cents. 1050 is $10.50.

forwardedAtPayment
integer · required

What forwards to the business when the invoice is paid in full, after the advance and fees. The advance itself is sent up front in full.

fundable
boolean · required

Whether an advance could actually be created right now: this invoice amount is financeable, the business has cleared all three onboarding gates, and the advance fits its limit. The same set POST /v1/advances enforces, so a true here is not followed by a 409 there.

notFundableReason
string | null · required

Why not, in a sentence, or null when it is fundable. It names the gate or the condition, never the amounts behind the limit, which span every partner serving this business.

object · required