Skip to main content
The Submit Transaction endpoint processes a transaction in real-time against your configured thresholds and limits and returns an activity code indicating whether the transaction is clean, suspicious, or high-risk. The payload shape depends on the transaction_type value: Transfer, USSD, and Web use originating and destination account details, while Card uses card and merchant details. Pick your type below.

Endpoint

Request

Headers

Common Body Parameters

These fields are required for every transaction_type.

Type-Specific Parameters

Account-to-account transfer. In addition to the common fields above, you must include origin and destination accounts.

Example

Recommended for all new integrations: pass identifier and identifier_type inside customer_details. This single field pair supports BVN (Nigeria), national ID (Kenya), Ghana card, and other country ID types.Backward compatible: integrations that previously sent a bvn field can continue to do so. See the legacy example below.

Legacy: passing bvn directly

The top-level bvn field is legacy and only supports BVN (Nigeria). New integrations, both in Nigeria and outside Nigeria, should use customer_details.identifier + customer_details.identifier_type instead. The legacy field is kept active for backward compatibility and will be removed in a future release.
The following payload uses the legacy bvn field instead of the new identifier pair. It still works.
cURL

Response

The response is identical across all transaction_type values.

Activity Codes

Suspicious (flag for review): Safe:

201 Created

400 Bad Request

401 Unauthorized