API reference · Getting paid

Mandates

Mandates and scheduled pulls. Moves money once a processor is connected. About direct debit Partner required

POST Create a standing authority to collect from a payer

POST /collector/{reference}/mandate

The consent text is required and is stored exactly as the payer saw it - not a link to a terms page, because a terms page changes and the question asked eight weeks later is what this payer agreed to on the day. A mandate cannot become active without retrievable evidence, and the pull path refuses without it too. The payer agrees to three things and all three are enforced on every collection: how much at a time, how often in a period, and between which dates.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: CreateMandateRequest · Response: GenericResponseMandateResponse

curl -X POST "https://api.bridgemoni.com/collector/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/mandate" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "mandateFamily": "string",
  "payerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "payerDisplayName": "string",
  "instrumentReference": "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"
}'

Responses

StatusWhen
200Mandate created successfully

GET List the mandates a collector holds

GET /collector/{reference}/mandates

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseListMandateResponse

curl -X GET "https://api.bridgemoni.com/collector/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/mandates" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Mandates retrieved successfully

POST Cancel a scheduled collection

POST /mandate/pull/{reference}/cancel

Only while it is still ours to cancel. Once it has gone to the scheme it can only be returned, which is a different thing and leaves a different record.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseMandatePullResponse

curl -X POST "https://api.bridgemoni.com/mandate/pull/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/cancel" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Collection cancelled successfully

GET Read a mandate, including the consent the payer gave

GET /mandate/{reference}

The consent text comes back with it. A mandate whose evidence cannot be produced on demand is not defensible when the debit is challenged, and on several schemes the payer has eight weeks to challenge it without giving a reason.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseMandateResponse

curl -X GET "https://api.bridgemoni.com/mandate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Mandate retrieved successfully

POST Cancel a mandate

POST /mandate/{reference}/cancel

Immediate and unilateral. Every collection scheduled under it that has not yet gone to the scheme dies with it; one already submitted cannot be recalled and is left alone rather than marked cancelled, because saying it was cancelled when the money is on its way is a lie the payer would act on. The cancellation stands here even if the provider is unreachable - a payer's revocation must not wait on an outage.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: CancelMandateRequest · Response: GenericResponseMandateResponse

curl -X POST "https://api.bridgemoni.com/mandate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/cancel" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "cancelledBy": "string",
  "reason": "string"
}'

Responses

StatusWhen
200Mandate cancelled successfully

POST Schedule a collection under a mandate

POST /mandate/{reference}/pull

Checked against what the payer agreed to at the moment it is scheduled and again at the moment it is submitted, because a payer may cancel in between and a cancellation that arrives after scheduling still has to stop the debit.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: SchedulePullRequest · Response: GenericResponseMandatePullResponse

curl -X POST "https://api.bridgemoni.com/mandate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/pull" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": "string",
  "collectionDate": "string",
  "narration": "string",
  "requestReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}'

Responses

StatusWhen
200Collection scheduled successfully

GET List the collections taken, and due, under a mandate

GET /mandate/{reference}/pulls

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseListMandatePullResponse

curl -X GET "https://api.bridgemoni.com/mandate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/pulls" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Collections retrieved successfully

Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors