POST
/
institutions
/
postbridge
/
simulate
Simulate Postbridge Transaction
curl --request POST \
  --url https://sandbox-api.cardcore.cloud/institutions/postbridge/simulate \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "intent": "authorization",
  "processingFlow": "purchase",
  "channel": "pos",
  "paymentMethod": "chip",
  "amount": 10.25,
  "currency": "566",
  "cardId": "{{cardId}}",
  "merchantId": "000000000000001",
  "terminalId": "TERM0001",
  "responseMode": "stub",
  "transactionDate": "2026-03-14T10:00:00.000Z",
  "overrides": {
    "4": "000000001025"
  }
}
'
{
  "status": "success",
  "message": "Postbridge transaction simulated successfully.",
  "data": {}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
intent
enum<string>
required

The kind of transaction you want to test. Use authorization for an approval check, financial for a money movement, and reversal to undo an earlier transaction.

Available options:
authorization,
financial,
reversal
Example:

"authorization"

processingFlow
enum<string>
required

The transaction flow to test. For example, purchase means a normal card payment, cash_withdrawal means an ATM withdrawal, balance_inquiry means checking the account balance, and refund means returning money.

Available options:
purchase,
cash_withdrawal,
balance_inquiry,
refund
Example:

"purchase"

amount
number
required

The transaction amount in standard currency format. For example, send 10.25 for 10 naira and 25 kobo; Cardcore converts it to the Postbridge amount format.

Example:

10.25

channel
enum<string>

Where the transaction is coming from. Use pos for a card machine, atm for an ATM, and web for an online payment.

Available options:
pos,
atm,
web
Example:

"pos"

paymentMethod
enum<string>

How the card was used. For example, chip means the card chip was used, contactless means tap-to-pay, ecom means online payment, and moto means mail or telephone order.

Available options:
chip,
magstripe,
contactless,
manual,
ecom,
moto
Example:

"chip"

currency
string

The numeric currency code for the transaction. Use 566 for Nigerian Naira. If you do not send it, the simulator uses 566.

Example:

"566"

cardId
string

The existing card you want to test with. If you send this, Cardcore finds the card number, account number, and expiry date for you.

Example:

"{{cardId}}"

pan
string

The card number to test with. Only send this when you are not using cardId.

Example:

"5064410000000149"

expiry
string

The card expiry date to test with. Send it as YYMM or YYYYMM. Only required when you are not using cardId.

Example:

"2806"

accountNumber
string

The account number linked to the test card. Only required when you are not using cardId.

Example:

"1234567890"

merchantId
string

The merchant number to show on the simulated transaction. If you do not send it, the simulator uses a default test merchant.

Example:

"000000000000001"

terminalId
string

The terminal or card machine number to show on the simulated transaction. If you do not send it, the simulator uses a default test terminal.

Example:

"TERM0001"

responseMode
enum<string>

How the simulator should get a response. Use stub for Cardcore's default approved response. Use forward to send the simulated transaction to your configured webhook and use your webhook's reply.

Available options:
stub,
forward
Example:

"stub"

originalTransactionId
string

For reversals, this is the earlier transaction you want to reverse. If you send it, Cardcore can find the original transaction details for you.

Example:

"{{transactionId}}"

originalStan
string

For reversals, this is the original transaction's short trace number. Use it with originalRrn if you are not sending originalTransactionId.

Example:

"123456"

originalRrn
string

For reversals, this is the original transaction's retrieval reference number. Use it with originalStan if you are not sending originalTransactionId.

Example:

"123456789012"

transactionDate
string<date-time>

The date and time to place on the simulated transaction. If you do not send it, the simulator uses the current time.

Example:

"2026-03-14T10:00:00.000Z"

overrides
object

Optional field changes for special tests. Use the Postbridge field number as the key and the value you want the simulator to send. For example, field 4 changes the formatted transaction amount.

Example:
{ "4": "000000001025" }

Response

200 - application/json

Postbridge transaction simulated successfully.

status
string
Example:

"success"

message
string
Example:

"Postbridge transaction simulated successfully."

data
object