Skip to main content

Authorizations

Authorization
string
header
required

Preferred. A partner access token minted by your partner client with the client-credentials grant — the client you authenticate as, with no member involved. Send it as Authorization: Bearer <access_token> and on no other header. It is a different client from the IdP one that mints member id_tokens, and it is not the member access_token the code exchange returns — see the guide's §5 Authentication.

Headers

x-request-id
string

Optional but strongly recommended: a unique id per request (a UUID is fine). Echoed back as error.requestId so your logs and Bilt's line up. Quote it in every support ticket.

Example:

"6f6b1afd-22e0-4137-a096-b15e41cdc890"

Body

application/json
notificationToken
string
required

The single-use token Bilt sent in the backchannel request. The anti-forgery proof: Bilt matches it against the pending request minted for your integration.

Required string length: 1 - 512
Example:

"nt_sandbox_4f1c9be2"

params
object | null

Your approve/deny payload. Its exact shape is agreed during onboarding — it is interpreted by your integration's handler on Bilt's side and is not part of this envelope. Up to 32 entries, string values, keys up to 128 characters, values up to 2048.

Example:

Response

Delivery resolved — settled, duplicate, or ignored. Read attempt together with linkStatus.

The link state after this delivery — what is true now, not what this delivery did. The CIBA settle endpoint reports a wider set than the other endpoints: LINKING_IN_PROGRESS (the winning delivery is still settling) and LINK_FAILED (declined, or a conflict — see attempt) are possible here.

Available options:
LINKING_IN_PROGRESS,
LINKED,
LINK_FAILED,
UNLINKED,
LINK_REVOKED
Example:

"LINKED"

attempt
string
required

What this delivery did: OK (an accepted approval — LINKED, or LINK_FAILED when the approval came after the pending link expired), ALREADY_CLAIMED (the token was already claimed — stand down), IGNORED (stale or duplicate, dropped), or the code the link settled LINK_FAILED with — PARTNER_REJECTED for a decline, ALREADY_LINKED / IDENTITY_ALREADY_LINKED for a conflict, PARTNER_UNAVAILABLE when Bilt could not interpret the delivery, and, once the token is claimed, any other code from the guide's §9.2 including the ones listed there as 500s.

Example:

"OK"