Quickstart
Get a token, make your first call in test mode, and receive a signed webhook. About ten minutes.
You'll need test credentials.
A client ID, a client secret and your tenant name. Ask us for test access to get them.
1. Get a token
Exchange your client credentials for an access token at POST /token. Tokens are HS256 JWTs that last 360 seconds, so fetch a fresh one before it expires rather than storing it. More on Authentication.
curl -X POST "https://api.bridgemoni.com/token" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: test" \
-H "Content-Type: application/json" \
-d "{ \"clientId\": \"$CLIENT_ID\", \"clientSecret\": \"$CLIENT_SECRET\" }" {
"data": {
"accessToken": "eyJhbGciOiJIUzI1NiJ9…",
"refreshToken": "rt_9k2m4x8",
"tokenType": "bearer",
"expiresIn": 360
},
"description": "Generate an access token"
} 2. Send the three headers
Every call carries the same three headers.
| Header | Value | Notes |
|---|---|---|
Authorization | Bearer <token> | From step 1 |
X-Tenant | Your tenant name | Keeps your data apart from every other business |
X-Environment | test or live | Missing or misspelled resolves to test |
3. Open an account
Create a financial account: POST /account. Responses use the standard envelope, { data, description }, and money is always a string amount with a currency code: {"amount": "0.00", "currencyCode": "NGN"}. Never send a float.
curl -X POST "https://api.bridgemoni.com/account" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: test" \
-H "Content-Type: application/json" \
-d '{ "name": "Ada Obi", "type": "main", "currencyCode": "NGN",
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" }' {
"data": {
"reference": "4c1e9a2b-7d3f-4e60-9b18-2f5a6c7d8e90",
"name": "Ada Obi",
"type": "main",
"status": "active",
"accountNumber": "0123456789",
"currencyCode": "NGN",
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"creationDateTime": "2026-10-22T09:30:01"
},
"description": "Create a financial account"
} For calls that move money, add an idempotency key and reuse it on every retry. See Idempotency.
4. Receive a webhook
Register an endpoint, then send yourself a test ping. Check the Bridge-Signature header before you trust the body: see Verify a signature.
curl -X POST "https://api.bridgemoni.com/webhook/endpoint" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: test" \
-H "Content-Type: application/json" \
-d '{ "url": "https://api.merchant.example.com/bridge/events",
"transport": "HTTP", "label": "Quickstart",
"deliveryMode": "UNORDERED",
"eventTypes": [{ "name": "transfer.completed" }] }' curl -X POST "https://api.bridgemoni.com/webhook/endpoint/$ENDPOINT_REFERENCE/test" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: test" Next
- Idempotency: retry safely
- Pay someone, safely
- API reference
- Test mode