Payments

Resume a parked renewal

Starts a fresh on-session attempt with the saved card for a subscription renewal that is waiting on the customer to authenticate; the bank's step then arrives in next_action on the following status reads. Only the payment's own customer may call it — with the payment's client_secret or their own session — and it is a no-op for any payment that is not a parked renewal.

post/payments/{payment_id}/resume

Path parameters

payment_idstring required

The unique identifier of the payment.

Headers

Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383

A unique key that makes this request safe to retry. See Idempotent requests.

Response

Resume requested

auto_capture_atstring nullable required

When Whop will capture this authorization automatically, as an ISO 8601 timestamp. null when no automatic capture was requested.

capture_expires_atstring nullable required

When the card authorization must be captured, as an ISO 8601 timestamp. null when this payment was not authorized for later capture.

idstring required

The payment this status describes, prefixed pay_.

objectstring required

Always payment_status.

return_urlstring nullable required

Where to send the buyer once the payment reaches a resting state, or null to leave them where they are. Editable until they return — see the return_url operation.

status'requires_confirmation' | 'requires_action' | 'requires_capture' | 'confirming' | 'processing' | 'succeeded' | 'canceled' required

How far the payment has got. requires_confirmation — nothing attempted yet, or the last attempt failed and can be retried. requires_action — the buyer has a step outstanding; see next_action. requires_capture — the card authorization is holding funds and must be captured. confirming — the buyer has done their part and the processor is deciding. processing — with processing_details, the money is moving; without them, the charge is still being decided and the status should be read again. succeeded — collected. canceled — voided or written off.

Example response

{
  "account": {
    "id": "biz_xxxxxxxxxxxxxx",
    "title": "Shine Time Auto Detailing"
  },
  "capture_expires_at": "2026-01-01T12:00:00.000Z",
  "id": "pay_xxxxxxxxxxxxxx",
  "last_payment_error": {
    "code": "processing_error",
    "decline_code": "insufficient_funds",
    "message": "Your card was declined."
  },
  "next_action": {
    "data": {
      "frame_max_width": 500,
      "url": "https://psp.example/3ds/challenge"
    },
    "render": [
      "inline"
    ],
    "type": "redirect"
  },
  "object": "payment_status",
  "processing_details": {
    "expected_by": "2026-01-01T12:00:00.000Z"
  },
  "return_url": "https://shinetime.example/checkout/done",
  "status": "succeeded"
}

Changes