- A valid API key — see Obtain API credentials
- A processor integration configured for card payments (TSYS)
Send POST /v1/transactions with type: auth. This places a hold on the person's card without capturing funds.
curl -X POST \
https://api.dev.paradisegateway.net/v1/transactions \
-H "Content-Type: application/json" \
-H "APIKEY: YOUR-API-KEY" \
-d '{
"type": "auth",
"amount": 25000,
"tip": 1000,
"payment_method": {
"type": "card",
"pan": "5500000000005678",
"expiry_month": "07",
"expiry_year": "2029",
"cardholder_name": "Nyota Uhura",
"cvv": "789",
"address_line1": "42 Subspace Ln",
"zip": "30301"
},
"recurring": false,
"purchase_description": "Starfleet uniform"
}'Save the id from the response — you need it for the capture step.
{
"id": "TRANSACTION-02KNUHURA8YWP4LT9G3X5V7Z0",
"type": "auth",
"transaction_state": "authorized",
"response_status": "Approved",
"response_code": "00",
"amount": 25000
}When ready (for example, the order ships), send POST /v1/transactions/{id}/capture.
curl -X POST \
https://api.dev.paradisegateway.net/v1/transactions/TRANSACTION-02KNUHURA8YWP4LT9G3X5V7Z0/capture \
-H "Content-Type: application/json" \
-H "APIKEY: YOUR-API-KEY" \
-d '{
"type": "capture",
"amount": 30000,
"tip": 5000
}'The capture response confirms the transaction is ready for settlement.
{
"id": "TRANSACTION-02KNUHURA8YWP4LT9G3X5V7Z0",
"type": "capture",
"transaction_state": "completed",
"response_status": "Approved",
"response_code": "00",
"amount": 30000,
"tip": 5000
}If you decide not to fulfill the order, cancel the authorization to release the hold immediately.
curl -X POST \
https://api.dev.paradisegateway.net/v1/transactions/TRANSACTION-02KNUHURA8YWP4LT9G3X5V7Z0/cancel \
-H "Content-Type: application/json" \
-H "APIKEY: YOUR-API-KEY" \
-d '{"type": "cancel", "amount": 25000}'Authorization expiry
Uncaptured authorizations expire after 7–30 days (varies by issuing bank). Always cancel explicitly to release funds sooner.
- Handle partial captures — capture less than the authorized amount
- Add a tip or surcharge — update the amount between auth and capture
- About sale vs. authorization