Buy now pay later limits and mandates
- GET
/bnpl/limitRead a customer's limit - GET
/bnpl/mandateList a customer's repayment mandates - POST
/bnpl/mandateGrant a repayment mandate - DELETE
/bnpl/mandate/{reference}Revoke a repayment mandate
GET Read a customer's limit
GET /bnpl/limit
What is approved, what live plans already consume, and what is left. Utilisation is derived from live plans rather than kept as a counter, so there is nothing to drift out of step with what the customer actually owes. A customer with no credit history is on the starter ladder rather than on nothing.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Query parameters
| Name | Default |
|---|---|
programmeReference | Optional |
accountHolderReference | Optional |
currencyCode | Optional |
Example
Response: GenericResponseLimitResponse
curl -X GET "https://api.bridgemoni.com/bnpl/limit?programmeReference=value&accountHolderReference=value¤cyCode=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"customerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"approvedLimit": 0,
"utilised": 0,
"available": 0,
"concurrentPlanCap": 0,
"concurrentPlans": 0,
"source": "THIN_FILE_LADDER",
"bandAtGrant": "NO_SCORE",
"ladderRung": 0,
"bindingCeiling": "string",
"grantedAt": "2026-09-25T10:00:00Z",
"coolingOffUntil": "2026-09-25T10:00:00Z"
},
"description": "Limit retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Limit retrieved successfully |
GET List a customer's repayment mandates
GET /bnpl/mandate
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Query parameters
| Name | Default |
|---|---|
programmeReference | Optional |
accountHolderReference | Optional |
Example
Response: GenericResponseListMandateResponse
curl -X GET "https://api.bridgemoni.com/bnpl/mandate?programmeReference=value&accountHolderReference=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"railCode": "string",
"mandateFamily": "string",
"status": "string",
"payerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"payerDisplayName": "string",
"externalMandateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"maxAmountPerPull": "string",
"maxPullsPerPeriod": 0,
"period": "string",
"validFrom": "string",
"validTo": "string",
"preNotificationDays": 0,
"consentText": "string",
"consentVersion": "string",
"consentCapturedAt": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"consecutiveFailures": 0,
"authenticationRedirectUrl": "string",
"cancelledAt": "string",
"cancelledBy": "string"
}
],
"description": "Mandates retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Mandates retrieved successfully |
POST Grant a repayment mandate
POST /bnpl/mandate
Records what the customer agreed to, how it was captured and where the evidence lives. Only the wallet debit rail exists today; asking for one of the others is refused rather than silently attempted, so nobody believes a collection will happen that cannot.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Example
Request body: GrantMandateRequest · Response: GenericResponseMandateResponse
curl -X POST "https://api.bridgemoni.com/bnpl/mandate" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"programmeReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountHolderReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"kind": "WALLET_DEBIT",
"instrumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"sourceAccountNumber": "string",
"grantedVia": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}' {
"programmeReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountHolderReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"kind": "WALLET_DEBIT",
"instrumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"sourceAccountNumber": "string",
"grantedVia": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"railCode": "string",
"mandateFamily": "string",
"status": "string",
"payerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"payerDisplayName": "string",
"externalMandateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"maxAmountPerPull": "string",
"maxPullsPerPeriod": 0,
"period": "string",
"validFrom": "string",
"validTo": "string",
"preNotificationDays": 0,
"consentText": "string",
"consentVersion": "string",
"consentCapturedAt": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"consecutiveFailures": 0,
"authenticationRedirectUrl": "string",
"cancelledAt": "string",
"cancelledBy": "string"
},
"description": "Mandate granted successfully"
} Responses
| Status | When |
|---|---|
200 | Mandate granted successfully |
DELETE Revoke a repayment mandate
DELETE /bnpl/mandate/{reference}
Immediate and unconditional. The row is kept rather than deleted, because a customer is entitled to see that the permission existed and when it ended.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponseMandateResponse
curl -X DELETE "https://api.bridgemoni.com/bnpl/mandate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"railCode": "string",
"mandateFamily": "string",
"status": "string",
"payerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"payerDisplayName": "string",
"externalMandateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"maxAmountPerPull": "string",
"maxPullsPerPeriod": 0,
"period": "string",
"validFrom": "string",
"validTo": "string",
"preNotificationDays": 0,
"consentText": "string",
"consentVersion": "string",
"consentCapturedAt": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"consecutiveFailures": 0,
"authenticationRedirectUrl": "string",
"cancelledAt": "string",
"cancelledBy": "string"
},
"description": "Mandate revoked successfully"
} Responses
| Status | When |
|---|---|
200 | Mandate revoked successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors