API reference · Credit
Buy now pay later collections POST Take a grace unlock POST /bnpl/collateral/{reference}/grace-unlock
The customer invokes this themselves and nobody approves it. A release that needs an agent to answer the phone is not an emergency release.
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live
Path parameters Example Response: GenericResponseCollateralResponse
curl Response
Copy curl -X POST "https://api.bridgemoni.com/bnpl/collateral/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/grace-unlock" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" Copy {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"kind": "NONE",
"status": "PLEDGED",
"pledgedAmount": 0,
"releasedAmount": 0,
"enforcedAmount": 0,
"savingsPlanReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"deviceIdentifier": "string",
"lockState": "UNLOCKED",
"graceUnlocksRemaining": 0,
"noticeServedAt": "2026-09-25T10:00:00Z",
"lockedAt": "2026-09-25T10:00:00Z",
"pledgedAt": "2026-09-25T10:00:00Z",
"releasedAt": "2026-09-25T10:00:00Z",
"enforcedAt": "2026-09-25T10:00:00Z"
},
"description": "Device unlocked"
} Responses Status When 200Device unlocked
GET List the collateral pledged against a plan GET /bnpl/plan/{reference}/collateral
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live
Path parameters Example Response: GenericResponseListCollateralResponse
curl Response
Copy curl -X GET "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/collateral" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" Copy {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"kind": "NONE",
"status": "PLEDGED",
"pledgedAmount": 0,
"releasedAmount": 0,
"enforcedAmount": 0,
"savingsPlanReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"deviceIdentifier": "string",
"lockState": "UNLOCKED",
"graceUnlocksRemaining": 0,
"noticeServedAt": "2026-09-25T10:00:00Z",
"lockedAt": "2026-09-25T10:00:00Z",
"pledgedAt": "2026-09-25T10:00:00Z",
"releasedAt": "2026-09-25T10:00:00Z",
"enforcedAt": "2026-09-25T10:00:00Z"
}
],
"description": "Collateral retrieved successfully"
} Responses Status When 200Collateral retrieved successfully
POST Pledge collateral against a plan POST /bnpl/plan/{reference}/collateral
A savings pledge takes a real lien on the pot, so the customer cannot withdraw what they have pledged. A device pledge records the consent and arms nothing: the lock itself needs arrears, a served notice and its period elapsed. Both refuse without separate, explicit consent evidence.
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live Content-Typeapplication/json
Path parameters Example Request body: PledgeCollateralRequest · Response: GenericResponseCollateralResponse
curl Request Response
Copy curl -X POST "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/collateral" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"kind": "NONE",
"amount": 0,
"savingsPlanReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"deviceIdentifier": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"graceUnlockLimit": 0
}' Copy {
"kind": "NONE",
"amount": 0,
"savingsPlanReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"deviceIdentifier": "string",
"consentEvidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"graceUnlockLimit": 0
} Copy {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"kind": "NONE",
"status": "PLEDGED",
"pledgedAmount": 0,
"releasedAmount": 0,
"enforcedAmount": 0,
"savingsPlanReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"deviceIdentifier": "string",
"lockState": "UNLOCKED",
"graceUnlocksRemaining": 0,
"noticeServedAt": "2026-09-25T10:00:00Z",
"lockedAt": "2026-09-25T10:00:00Z",
"pledgedAt": "2026-09-25T10:00:00Z",
"releasedAt": "2026-09-25T10:00:00Z",
"enforcedAt": "2026-09-25T10:00:00Z"
},
"description": "Collateral pledged"
} Responses Status When 200Collateral pledged
GET List the hardship requests on a plan GET /bnpl/plan/{reference}/hardship
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live
Path parameters Example Response: GenericResponseListHardshipResponse
curl Response
Copy curl -X GET "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/hardship" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" Copy {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"status": "REQUESTED",
"requestedReason": "string",
"requestedAt": "2026-09-25T10:00:00Z",
"stageAtRequest": "PRE_DUE",
"daysPastDueAtRequest": 0,
"deferralDays": 0,
"chargesWaived": 0,
"revisedFirstDueDate": "2026-09-25",
"decidedAt": "2026-09-25T10:00:00Z",
"decisionReason": "string"
}
],
"description": "Hardship retrieved successfully"
} Responses Status When 200Hardship retrieved successfully
POST Ask for a hardship arrangement POST /bnpl/plan/{reference}/hardship
Raising this stops the ladder while it is assessed: no late charge accrues, no collections contact is made, no collateral is enforced and no device is locked.
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live Content-Typeapplication/json
Path parameters Example Request body: RequestHardshipRequest · Response: GenericResponseHardshipResponse
curl Request Response
Copy curl -X POST "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/hardship" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "string"
}' Copy {
"reason": "string"
} Copy {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"status": "REQUESTED",
"requestedReason": "string",
"requestedAt": "2026-09-25T10:00:00Z",
"stageAtRequest": "PRE_DUE",
"daysPastDueAtRequest": 0,
"deferralDays": 0,
"chargesWaived": 0,
"revisedFirstDueDate": "2026-09-25",
"decidedAt": "2026-09-25T10:00:00Z",
"decisionReason": "string"
},
"description": "Hardship requested"
} Responses Status When 200Hardship requested
POST Sweep the customer's wallet towards what is due POST /bnpl/plan/{reference}/sweep
Takes what is due, up to what the wallet holds above the mandate's protected floor. Partial collection is preferred to failure. A sweep is not an auto-collection retry: it draws no bank fee, so it never spends the customer's retry allowance.
Headers Name Notes AuthorizationBearer token X-TenantYour tenant X-Environmenttest or live
Path parameters Example Response: GenericResponseSweepResponse
curl Response
Copy curl -X POST "https://api.bridgemoni.com/bnpl/plan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/sweep" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" Copy {
"data": {
"attemptReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"planReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"outcome": "SWEPT",
"trigger": "ARRIVAL",
"amountDue": 0,
"amountSwept": 0,
"walletBalanceBefore": 0,
"protectedFloor": 0,
"transactionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"refusalReason": "string",
"consumedRetryBudget": true
},
"description": "Sweep attempted"
} Responses Status When 200Sweep attempted