API reference · Moving money

Transfers

Bank payouts with a name check first, scheduled transfers, safe retries. About transfers Live

POST Transfer between two accounts

POST /transfer

Validates that the source account belongs to the caller, obtains a quote, and posts the transfer to the ledger. An optional Idempotency-Key header makes a retried call with the same key return the original result instead of transferring again.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Idempotency-KeyReuse the same value on every retry of this request
Content-Typeapplication/json

Example

Request body: TransferRequest · Response: TransferResponse

curl -X POST "https://api.bridgemoni.com/transfer" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Idempotency-Key: a-unique-key-per-intent" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceAccountNumber": "0123456789",
    "instrumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
    "destinationAccountNumber": "0123456789",
    "beneficiaryReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
    "organizationReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
    "receiverType": "ACCOUNT_NUMBER",
    "receiverValue": "text",
    "amount": 250000.0,
    "saveBeneficiary": true,
    "beneficiaryAlias": "Ada Obi",
    "currencyCode": "NGN",
    "narration": "March payroll",
    "executionMode": "SYNCHRONOUS",
    "schedule": {
      "startDateTime": "2027-03-14T14:30:01",
      "frequency": "HOURLY",
      "endDateTime": "2027-03-14T14:30:01",
      "maxOccurrences": 1
    }
  }'

Responses

StatusWhen
200Transfer processed successfully

POST Preview who a phone number, email or username will pay

POST /transfer/recipient/preview

Answers FOUND with a masked name such as "Ng*** O.", NOT_FOUND, or CANNOT_RECEIVE. The full name, user reference and account number are never returned. Limited to a small number of distinct recipients per person per day, because an unlimited preview would be a directory.

Headers

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

Example

Request body: TransferRecipientPreviewRequest · Response: GenericResponseTransferRecipientPreviewResponse

curl -X POST "https://api.bridgemoni.com/transfer/recipient/preview" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "receiverType": "ACCOUNT_NUMBER",
  "receiverValue": "string",
  "currencyCode": "string"
}'

Responses

StatusWhen
200Recipient previewed

GET List the caller's scheduled transfers

GET /transfer/schedule

Headers

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

Example

Response: List<ScheduledTransferResponse>

curl -X GET "https://api.bridgemoni.com/transfer/schedule" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Scheduled transfers listed successfully

GET Get a scheduled transfer's detail and occurrence history

GET /transfer/schedule/{reference}

Headers

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

Path parameters

Name
reference

Example

Response: ScheduledTransferResponse

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

Responses

StatusWhen
200Scheduled transfer fetched successfully

POST Cancel a scheduled transfer before it fires

POST /transfer/schedule/{reference}/cancel

Headers

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

Path parameters

Name
reference

Example

Response: ScheduledTransferResponse

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

Responses

StatusWhen
200Scheduled transfer cancelled successfully

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