High Wire Payments
Payments

Charge a saved payment method

Charges an active saved payment method again, with the customer present — an upsell after the checkout that saved it. The payment method must belong to the supplied customer and authenticated merchant. Every reuse is bounded by the card, whichever of its ids is charged (a checkout that saves a card again may return a new one): accepted for 24 hours after the card was first saved (never extended), at most 2 approved reuses per card (in-progress ones included; a decline does not count) and at most 5 attempts in all, counted together with reuses through the SDK, each for at most the amount of the payment that first saved the card; a reuse outside those bounds answers 409 with a `reason` and charges nothing. The gateway finds the payment that first saved the card itself. Depending on how your account processes payments, the charge either captures immediately (response status CAPTURED) or is accepted and collected asynchronously (response status PENDING — the payment settles to CAPTURED or DECLINED shortly after; follow it with GET /payments/{paymentId}). An issuer that asks for authentication declines the reuse (`Additional authentication required`): this flow has no way to show a challenge.

POST
/v1/payments/charge-saved-method
AuthorizationBasic <token>

Basic HTTP authentication

In: header

Header Parameters

Idempotency-Key?string

Optional client-supplied retry key (≤255 chars; UUID v4 recommended). Don't use sensitive data — emails, PANs, or other personal identifiers. Identical requests retried with the same key return the original response. Mismatched bodies return 422; in-flight duplicates return 409. Keys are scoped per merchant + endpoint and expire after 24 hours. On 5xx, retry with the same key: a retry cannot create a duplicate charge. A 409 refusal is not stored: a retry under the same key is evaluated again.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/payments/charge-saved-method" \  -H "Content-Type: application/json" \  -d '{    "amount": 7200,    "customerId": "01928e3e-7b6c-7c8e-9b3a-5b9f8b9b9b9b",    "paymentMethodId": "01928e3e-7b6c-7c8e-9b3a-5b9f8b9b9bff"  }'
{  "paymentId": "01928e3e-7b6c-7c8e-9b3a-5b9f8b9b9b9b",  "status": "CAPTURED",  "amount": 7200,  "customerId": "01928e3e-7b6c-7c8e-9b3a-5b9f8b9b9bcc",  "paymentMethodId": "01928e3e-7b6c-7c8e-9b3a-5b9f8b9b9bff"}