Skip to content
Last updated

Authorize and capture separately

Prerequisites

Step 1: Authorize the payment

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
}

Step 2: Capture the payment

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
}

Canceling an uncaptured authorization

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.

Next steps