Sale (Authorize + Capture)
POST /v1/payments/sale
Creates a payment that is both authorized and captured in a single step. This is the simplest way to charge a card when you do not need a separate capture step.
Internally, a sale creates an authorization with capture_method: automatic and immediately captures it.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | integer | Yes | Amount in cents (e.g., 5000 = $50.00). Must be positive. |
currency | string | No | Three-letter currency code. Defaults to usd. |
gateway_token | string | Yes | Token from tokenization (e.g., tok_test_...). |
metadata | object | No | Key-value pairs for your reference. |
Examples
Response
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"merchant_id": "m1234567-89ab-cdef-0123-456789abcdef",
"amount": 2500,
"currency": "usd",
"status": "succeeded",
"capture_method": "automatic",
"gateway_token": "tok_test_aBcDeFgHiJkLmNoPqRsTuVwX",
"connector_id": "stripe",
"test_mode": true,
"metadata": {"invoice": "inv_456"},
"created_at": "2026-03-18T12:00:00Z",
"updated_at": "2026-03-18T12:00:00Z",
"captured_at": "2026-03-18T12:00:00Z"
}When to Use
Use a sale instead of separate authorize/capture when:
- You are selling digital goods or services delivered immediately.
- You do not need a review period between authorization and settlement.
- You want simpler integration with fewer API calls.
If you need to verify the card before fulfilling an order, use Authorize + Capture instead.