Lunch
Lunch Partner API

Sync businesses and retrieve their onboarding status.


Set a payout account

PUT
https://api.lunchpayments.com
/v1/organizations/{externalId}/payout-account

Sets the bank account that receives this vendor's advances. Removes the bank account step from the vendor's onboarding.

  • Replaces any existing payout account. Resending identical details has no effect.
  • label is updated only when sent. Omitting it keeps the existing value.
  • Once set, the vendor cannot change the account. Changes must be made through this endpoint.
  • Only the routing number's check digit is validated. Account ownership is not verified.

Set a payout account › path Parameters

externalId
​string · minLength: 1 · required

Your identifier for the business.

Your identifier for the business.

Set a payout account › Request Body

accountNumber
​string · pattern: ^\d{4,17}$ · required
routingNumber
​string · required

Nine-digit ABA routing number.

label
​string · minLength: 1

Account nickname shown to Lunch operations. Defaults to the last four digits.

Set a payout account › Responses

Payout account saved.

externalId
​string · required
mask
​string · required

Retrieve a business

GET
https://api.lunchpayments.com
/v1/organizations/{externalId}

Returns a business's onboarding status and remittance details. An advance requires every onboarding field to be true.

Fieldtrue when
complianceCompliance is cleared.
contractThe agreement is signed.
bankA payout account is on file.
collectionAccountThe collection account is ready to receive payments.

compliance, contract and bank can be completed in any order. taxIdOnFile indicates whether a tax ID is on file. The number is not returned.

Retrieve a business › path Parameters

externalId
​string · minLength: 1 · required

Your identifier for the business.

Your identifier for the business.

Retrieve a business › Responses

The business.

externalId
​string · required
name
​string | null · required
taxIdOnFile
​boolean · required
complianceRoute
​string | null · enum · required

How compliance was cleared. null if not cleared. PARTNER_SUPPLIED: tax ID provided by you and not confirmed by the vendor. Values may be added. Existing values will not be removed or changed. Handle unknown values.

Enum values:
VENDOR_ASSERTION
W9_UPLOAD
PARTNER_SUPPLIED
​object · required
​required

Account the business's payors pay into. null until the collection account is open.


Create or update a business

PUT
https://api.lunchpayments.com
/v1/organizations/{externalId}

Creates or updates a business under your identifier, typically a vendor. Idempotent: repeat requests update the business with the values sent.

  • Sending a valid taxId clears the compliance requirement. The vendor is not asked to confirm it. If it is incorrect, Lunch will request a correction. It is not cleared if the number is malformed, the business already has a different one, or another business holds it; onboarding.compliance on GET /v1/organizations/{externalId} confirms.
  • taxId is also used to match businesses served by multiple platforms. Without it, no match is attempted.

Create or update a business › path Parameters

externalId
​string · minLength: 1 · required

Your identifier for the business.

Your identifier for the business.

Create or update a business › Request Body

legalName
​string · minLength: 1 · required
taxId
​string

Tax identification number. Punctuation optional. Omit if unknown.

​object

Used to prefill onboarding and address invitations. Omitted fields are not cleared.

Create or update a business › Responses

The business.

externalId
​string · required
created
​boolean · required

true if a new business was created. When false, reason indicates whether the identifier was already linked or the tax ID matched an existing business.

reason
​string · required

Explanation of the result. Include in support requests.

​object

Result of the tax ID you sent. Returned only when you send taxId for a business already linked to your account.