Execute synthetic transaction
POST/v1/sandbox/auth-host/synthetic-transaction
Executes a synthetic card transaction test case over TCP. This endpoint:
- Triggers ISO8583 messages based on the selected test case
- Returns detailed request/response data for each transaction step
- Supports preauth, completion, and reversal flows
How Transaction Routing Works:
When you create a card, it's assigned to a card program. That program determines how transactions are authorized:
-
Coop-Managed Cards: If the card's program is configured for cooperative authorization, you'll receive the authorization request in your WebSocket client in real-time. You can approve or decline the transaction programmatically based on your own business rules and ledger.
-
Connect Financial-Managed Cards: If the card uses our standard processing, we handle authorization automatically based on the wallet balance and our risk rules. You don't need to do anything - the transaction is processed end-to-end on our side.
Use this endpoint to test your coop integration before going live. Simply create a card using your coop program ID, then run synthetic transactions to verify you're receiving authorization requests correctly.
Request
- application/json
Body
required
Possible values: [t002case1, t002case2, t002case3, t002case4, t002case5, t003case1, t003case2, t005case1, t005case2, t007case1, t008case1, t009case1, t010case1, t011case1, t011case2, t012case1, t013case1, t015case1, t016case1, t016case2, t016case3, t016case4]
Card reference ID to use for the transaction. If not provided, a random test card will be used.
Responses
- 200
Synthetic transaction executed
- application/json
- Schema
- Example (from schema)
- success
- declined
Schema
Array [
]
data
object
Present on failure
Present on failure
steps
object[]
sent
object
received
object
{
"message": "Synthetic transaction executed successfully",
"traceId": "6f874262-...",
"data": {
"success": true,
"responseCode": "string",
"error": "string",
"steps": [
{
"sent": {
"mti": "0100",
"fields": {}
},
"received": {
"mti": "0110",
"fields": {}
}
}
]
}
}
Successful preauth + reversal
{
"message": "Synthetic transaction executed successfully",
"data": {
"success": true,
"steps": [
{
"sent": {
"mti": "0100",
"fields": {
"processingCode": {
"id": 3,
"value": "000000"
},
"amountTransaction": {
"id": 4,
"value": "000000005000"
}
}
},
"received": {
"mti": "0110",
"fields": {
"responseCode": {
"id": 39,
"value": "00"
},
"authorizationIdentificationResponse": {
"id": 38,
"value": "FXFA73"
}
}
}
},
{
"sent": {
"mti": "0420",
"fields": {
"processingCode": {
"id": 3,
"value": "000000"
},
"originalDataElements": {
"id": 90,
"value": "0100123457..."
}
}
},
"received": {
"mti": "0430",
"fields": {
"responseCode": {
"id": 39,
"value": "21"
}
}
}
}
]
},
"traceId": "6f874262-..."
}
Declined transaction
{
"message": "Synthetic transaction executed with errors",
"data": {
"success": false,
"responseCode": "05",
"error": "Step 1: Transaction declined. Response code 05",
"steps": [
{
"sent": {
"mti": "0100",
"fields": {
"processingCode": {
"id": 3,
"value": "000000"
}
}
},
"received": {
"mti": "0110",
"fields": {
"responseCode": {
"id": 39,
"value": "05"
}
}
}
}
]
},
"traceId": "6f874262-..."
}