Overview

Every MigraPay API endpoint, parameter, response field, error and event.

This is the complete reference. For step-by-step integration, start with the Guides.

Base URL

https://business-api.migrapay.com/v1/api

Every path in this reference is relative to it, except the two public-key calls under /v1/checkout. Sandbox and Live share the base URL: the key you send decides the environment.

Authentication

KeyPrefixWhereSent as
Secret API keympb_live_ / mpb_test_Your server onlyAuthorization: Bearer <key> or X-API-Key: <key>
Public keypk_live_ / pk_test_Websites and appsX-MigraPay-Key: <key>, only for the public checkout calls and checkout.js
StatusmessageCause
401missing_api_keyNo key in Authorization or X-API-Key.
401invalid_api_keyThe key is unknown, revoked or malformed.
403insufficient_scopeThe key lacks the scope the endpoint requires.
403IP_NOT_ALLOWEDA Live key was used from an IP address outside your API IP allowlist (Settings → API & integrations). Sandbox keys are never IP-restricted.

Scopes

Each secret key carries the scopes chosen when it was created.

ScopeEndpoints
wallet.viewGET /wallets
payment.viewGET /transactions, GET /transactions/{id}, GET /payouts, GET /payouts/{id}, GET /payouts/banks, GET /payouts/requirements, POST /payouts/validate-account, GET /payouts/estimate, GET /rates
payment.createPOST /payouts
recipient.viewGET /recipients
recipient.createPOST /recipients
collection.viewGET /collections, GET /collections/{id}, GET /collections/requirements, GET /checkout/{id}
collection.createPOST /collections, POST /collections/{id}/mock-settle, POST /checkout

Requests and responses

  • Send JSON with Content-Type: application/json. Field names are camelCase.
  • Amounts are decimal numbers in major units: 250.75 is 250 dollars and 75 cents.
  • Currencies are ISO 4217 codes (CAD, USD, NGN). Timestamps are ISO 8601 in UTC.
  • Every response uses the same envelope:
{
  "status": "success",
  "message": "Wallets retrieved successfully.",
  "data": {}
}
FieldTypeDescription
status"success" | "error"success for 2xx and 3xx, error otherwise.
messagestringA readable summary on success; the machine-readable error code on errors.
dataobjectThe resource or list, or error details.

Endpoints

MethodPath
GET/walletsList wallets
GET/ratesMid-market rates
GET/payouts/estimateEstimate a payout
GET/transactionsList transactions
GET/transactions/{id}Retrieve a transaction
GET/payouts/requirementsPayout methods and fields
GET/payouts/banksBanks and networks
POST/payouts/validate-accountValidate an account
POST/recipientsCreate a recipient
GET/recipientsList recipients
POST/payoutsCreate a payout
GET/payouts/{id}Retrieve a payout
GET/payoutsList payouts
POST/checkoutCreate a checkout
GET/checkout/{id}Retrieve a checkout
POST/v1/checkout/sessionsStart a checkout with a public key
GET/v1/checkout/configRead checkout options
POST/collectionsCreate a collection
GET/collections/{id}Retrieve a collection
GET/collectionsList collections
GET/collections/requirementsCollection methods and fields
POST/collections/{id}/mock-settleSettle in Sandbox

Events are listed under Webhook events. For AI tools, the whole documentation is available as plain text at /llms.txt and /llms-full.txt.