Buy now pay later plans
Merchant-, platform- or funder-funded plans with many repayment rails. About buy now, pay later Live
- GET
/bnpl/plan/code/{paymentCode}Look a plan up by its payment code - GET
/bnpl/plan/{reference}Retrieve a plan with its schedule - POST
/bnpl/plan/{reference}/payPay towards a plan
GET Look a plan up by its payment code
GET /bnpl/plan/code/{paymentCode}
The code a customer reads aloud at a counter. It identifies a plan for payment and authorises nothing, so it is safe to print on a receipt. A single mistyped or transposed character is caught here rather than becoming a suspense item three days later.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
paymentCode |
Example
Response: GenericResponsePlanResponse
curl -X GET "https://api.bridgemoni.com/bnpl/plan/code/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",
"merchantReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"productReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"fundingModel": "MERCHANT_FUNDED",
"currencyCode": "string",
"status": "OFFERED",
"basketAmount": 0,
"downPaymentAmount": 0,
"totalPayable": 0,
"totalCostOfCredit": 0,
"aprBasisPoints": 0,
"outstandingBalance": 0,
"allocationOrder": "OLDEST_FIRST",
"termsHash": "string",
"paymentCode": "string",
"activatedAt": "2026-09-25T10:00:00Z",
"coolingOffExpiresAt": "2026-09-25T10:00:00Z",
"daysPastDue": 0,
"settledAt": "2026-09-25T10:00:00Z",
"schedule": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"sequence": 0,
"dueDate": "2026-09-25",
"amountDue": 0,
"amountPaid": 0,
"outstanding": 0,
"status": "SCHEDULED",
"daysPastDue": 0
}
]
},
"description": "Plan retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Plan retrieved successfully |
GET Retrieve a plan with its schedule
GET /bnpl/plan/{reference}
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponsePlanResponse
curl -X GET "https://api.bridgemoni.com/bnpl/plan/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",
"customerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"merchantReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"productReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"fundingModel": "MERCHANT_FUNDED",
"currencyCode": "string",
"status": "OFFERED",
"basketAmount": 0,
"downPaymentAmount": 0,
"totalPayable": 0,
"totalCostOfCredit": 0,
"aprBasisPoints": 0,
"outstandingBalance": 0,
"allocationOrder": "OLDEST_FIRST",
"termsHash": "string",
"paymentCode": "string",
"activatedAt": "2026-09-25T10:00:00Z",
"coolingOffExpiresAt": "2026-09-25T10:00:00Z",
"daysPastDue": 0,
"settledAt": "2026-09-25T10:00:00Z",
"schedule": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"sequence": 0,
"dueDate": "2026-09-25",
"amountDue": 0,
"amountPaid": 0,
"outstanding": 0,
"status": "SCHEDULED",
"daysPastDue": 0
}
]
},
"description": "Plan retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Plan retrieved successfully |
POST Pay towards a plan
POST /bnpl/plan/{reference}/pay
Any amount is accepted. Paying less than the instalment returns 200 with a partly paid instalment rather than an error, because in the markets this product exists for a customer paying what they have is the normal case, and refusing it books an arrears they believed they had cleared. Money left over once every instalment is clear is reported back, never pushed onto another plan.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: MakeRepaymentRequest · Response: GenericResponseRepaymentResponse
curl -X POST "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/pay" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"amount": 0,
"sourceAccountNumber": "string",
"paymentSource": "WALLET",
"effectiveDate": "2026-09-25",
"idempotencyKey": "string"
}' {
"amount": 0,
"sourceAccountNumber": "string",
"paymentSource": "WALLET",
"effectiveDate": "2026-09-25",
"idempotencyKey": "string"
} {
"data": {
"paymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": 0,
"unallocatedAmount": 0,
"effectiveDate": "2026-09-25",
"accountsTransactionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"allocations": [
{
"instalmentSequence": 0,
"component": "PRINCIPAL",
"amount": 0
}
],
"instalmentsAfter": [
{
"sequence": 0,
"amountDue": 0,
"amountPaid": 0,
"outstanding": 0,
"status": "SCHEDULED"
}
],
"planStatus": "OFFERED",
"outstandingBalance": 0,
"daysPastDue": 0
},
"description": "Payment received"
} Responses
| Status | When |
|---|---|
200 | Payment received |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors