Quickstart
Request your first advance in seven steps. Each step links to its full documentation.
Every request is live
There is no sandbox. All requests use the live environment. To test without moving money, ask Lunch to mark an organization as a test account before sending requests for it. See Authentication.
1. Confirm Your API Key
Lunch issues your API key (prefix lux_sk_). Store it server-side and send it as a bearer token.
Verify it with a read-only request:
Code
401 unauthorized: the key is missing, malformed or revoked.
2. Subscribe to Webhooks
Code
Store the signing secret from the response. It is returned only once. See Webhooks.
3. Sync an Invoice
Creates or updates the invoice, the vendor (payee) and the city (payor). Amounts are in cents.
Code
4. Onboard the Vendor
Send POST /v1/invitations so
the vendor can claim its account, sign the agreement and add a bank account. Check status with
GET /v1/organizations/{externalId}. See
Vendor Onboarding.
5. Quote the Advance
Code
For example, a $1,000.00 invoice could return $800.00 up front, $50.00 in fees, and $150.00 when the city pays. Rates vary by vendor. Always quote.
6. Request the Advance
Code
Response:
Code
remittance is the vendor's collection account, where the payor must pay this invoice.
Update the vendor's remittance details
Once an advance is requested, your platform is responsible for updating the vendor's remittance
details to the remittance account. The payor's payment for the invoice must go to this account, not
the vendor's external bank account.
Repeat requests return the existing advance. Refusals return 409 with a code.
7. Receive Payment Events
| Event | Description |
|---|---|
partner.loan.issued | The vendor has been paid the advance. |
partner.invoice.paid | The city has paid the invoice. |

