> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revolv3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Card Payment Flow

> End-to-end card payment flow: sale vs auth/capture. Sequence diagrams and sample requests for immediate charge and two-step authorize-then-capture.

This page describes how card payments move through Revolv3: **sale** (one-step charge) and **authorization then capture** (two-step hold and charge).

## Flow Overview

You can charge a card in two ways:

| Flow               | When to use                                                            | Steps                                                                         |
| ------------------ | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **Sale**           | You know the amount and want to charge now (e.g. e‑commerce)           | One request; Revolv3 authorizes and captures in a single step.                |
| **Auth / Capture** | You need to hold funds first and charge later (e.g. hotel, restaurant) | 1) Authorize to hold funds. 2) Capture (same or different amount) when ready. |

## Sequence: Sale (One-Step Charge)

```mermaid theme={null}
sequenceDiagram
  participant App as Your app
  participant Revolv3 as Revolv3 API
  participant Processor as Payment processor
  participant Bank as Issuing bank

  App->>Revolv3: POST /payments/sale (amount, card, invoice)
  Revolv3->>Processor: Route payment
  Processor->>Bank: Authorize + capture
  Bank-->>Processor: Approve/decline
  Processor-->>Revolv3: Result
  Revolv3-->>App: 200 + payment details or error
```

**When to use**: Checkout when the amount is known and you want to charge immediately. See [Step-by-step "Make a Payment" example](/docs/getting-started/make-a-payment) for a full request/response example.

## Sequence: Authorization Then Capture

```mermaid theme={null}
sequenceDiagram
  participant App as Your app
  participant Revolv3 as Revolv3 API
  participant Processor as Payment processor
  participant Bank as Issuing bank

  App->>Revolv3: POST /payments/authorization (amount, card)
  Revolv3->>Processor: Authorize only
  Processor->>Bank: Hold funds
  Bank-->>Processor: Approved
  Processor-->>Revolv3: Authorization ID
  Revolv3-->>App: 200 + authorization id

  Note over App,Bank: Later: capture or void

  App->>Revolv3: POST /payments/{id}/capture (final amount)
  Revolv3->>Processor: Capture
  Processor->>Bank: Charge held amount
  Bank-->>Processor: Captured
  Processor-->>Revolv3: Result
  Revolv3-->>App: 200 + capture details
```

**When to use**: When the final amount is unknown at auth time (e.g. hotel, restaurant, pre‑order). See [Payment Authorizations & Captures](/docs/integration-flows/authorizations-captures) for endpoints, sample requests, and responses.

## Sample Sale Request (summary)

Use your environment base URL (e.g. `https://api-sandbox.revolv3.com` for sandbox) as the API root.

* **Endpoint**: `POST /api/payments/sale`
* **Body**: `PaymentMethod` (e.g. `CreditCard` + `BillingAddress`), `Invoice` (e.g. `Amount`, `MerchantInvoiceRefId`), optional `CustomerId`, optional `NetworkProcessing`.

For a full example with all fields, see [Make a Payment](/docs/getting-started/make-a-payment).

## Sample Auth Request (summary)

* **Endpoint**: `POST /api/payments/authorization`
* **Body**: Same shape as sale (amount, card, billing). Revolv3 holds funds and returns an authorization ID. You then call **Capture** or **Void** before the auth expires.

For full request/response samples, see [Authorizations & Captures](/docs/integration-flows/authorizations-captures).

## Where to Go Next

* [Make a Payment](/docs/getting-started/make-a-payment) — Full sale example and field descriptions
* [Payment Authorizations & Captures](/docs/integration-flows/authorizations-captures) — Auth/capture flow, samples, and voids
