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\" }"

2. Send the three headers

Every call carries the same three headers.

HeaderValueNotes
AuthorizationBearer <token>From step 1
X-TenantYour tenant nameKeeps your data apart from every other business
X-Environmenttest or liveMissing 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" }'

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" }] }'

Next