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

# Save a card

> Store a card after a successful charge so the customer can reuse it

Saves the card used on a completed order, so the customer can pay with one tap next time.
Saved cards come back in the `savedCards` array of
[Create an order](/api-reference/orders/create-order) and are charged by `savedCardId` — see
[Pay with a card](/api-reference/payments/pay-with-card#charging-a-saved-card).

<Note>
  This is the *after the fact* route. You can also save a card at charge time by setting
  `"saveCard": true` in the card object — see
  [Pay with a card](/api-reference/payments/pay-with-card#saving-a-card-at-charge-time). Use this
  endpoint when the customer decides to save the card only after seeing the payment succeed.
</Note>

## Endpoint

```
PATCH https://api-v4.reeple.ai/charge/order/save-card
```

Authenticate with your **public key**. See [Authentication](/api-reference/authentication).

<Warning>
  This is the only `PATCH` endpoint in the API. Sending `POST` returns a method error.
</Warning>

## Request body

| Field  | Type   | Description                                                             |
| ------ | ------ | ----------------------------------------------------------------------- |
| `data` | String | **Required.** The RSA-[encrypted](/encryption) payload described below. |

## Payload (before encryption)

| Field       | Type   | Description                                                          |
| ----------- | ------ | -------------------------------------------------------------------- |
| `reference` | String | **Required.** The reference of the order whose card should be saved. |

```json theme={null}
{ "reference": "order-2026-0001" }
```

## Request example

```bash theme={null}
curl -X PATCH https://api-v4.reeple.ai/charge/order/save-card \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_PUBLIC_KEY" \
  -d '{ "data": "YOUR_ENCRYPTED_PAYLOAD" }'
```

## Response

Returns the standard envelope.

```json theme={null}
{
  "status": "success",
  "statusCode": "00",
  "message": "Operation successful"
}
```

<Note>
  The provider has not published a full response body for this endpoint. Confirm the exact shape
  against your sandbox account before relying on any field beyond `status` / `statusCode`.
</Note>

## Rules

* The order must have been paid **with a card** and reached a successful final status.
* The card is saved against the customer identified on that order — matched by the email you
  supplied at [order creation](/api-reference/orders/create-order).
* Saving the same card twice is a no-op rather than a duplicate.

<Warning>
  Only save a card with the customer's explicit consent, and tell them what they are agreeing
  to. You never receive or store the card number — Reeple returns a `savedCardId` reference
  instead.
</Warning>

## Charging it later

<CardGroup cols={2}>
  <Card title="Pay with a saved card" href="/api-reference/payments/pay-with-card#charging-a-saved-card">
    In-session, with the public key and a `savedCardId`.
  </Card>

  <Card title="Tokenized charge" href="/api-reference/tokenized/tokenized-charge">
    Server-side with your secret key and a card token — for recurring billing.
  </Card>
</CardGroup>
