Lunch
Guides

Lunch Partner API

Your vendors get paid when their invoice is financed instead of when it is due. You keep the relationship; Lunch carries the money and the risk.

The whole integration is four calls:

Sync a businessPUT /v1/organizations/{externalId} — with your own identifier for it
Sync an invoicePUT /v1/invoices/{externalId} — payee, payor, face value, dates
QuotePOST /v1/quotes — what a face value would cost, naming no invoice
AdvancePOST /v1/advances — take it against a synced invoice

Everything is keyed on your identifiers. You never store a Lunch id, and each of these writes is idempotent on the identifier you send, so replaying your ledger updates rather than duplicates. (Subscribing to a webhook destination is the one exception.)

Before a business can borrow

Three gates, independent of each other, all reported by GET /v1/organizations/{externalId}:

  • Compliance — we hold a tax identification number and it has cleared.
  • An agreement — somebody at the business has signed it.
  • A bank account — we know where the money goes.

Today, get a business through them by inviting it: set the payout account yourself with PUT /v1/organizations/{externalId}/payout-account when you already hold the vendor's bank details, and send them POST /v1/invitations to claim the account and sign.

Hosted onboarding is published but not yet live

POST /v1/onboarding-sessions mints a single-use link that collects all three gates over your own page, without the vendor leaving your product. Its shape is published so an integration can be written against it now — a link minted today resolves to nothing. We will tell you when it is serving.

Where to go next

  • Authentication — your key, and what the playground on this site does with it
  • Financing an invoice — the four calls end to end
  • Webhooks — events, signatures, and verifying one
  • Errors — the shape every failure takes, and the codes to branch on
  • API reference — every operation, generated from the contract itself
Last modified on