Skip to main content
Accept is in early access and subject to change. To request Accept access, contact hi@natural.com.
A card payment (cpy_*) records one attempt to pay a payment intent. An intent can have multiple attempts. The paymentIntent relationship links each attempt to its intent. List card payments to see attempts, or get a card payment to inspect one. Filter the list by paymentIntentId to see attempts for one intent. Both endpoints require card_payments.read.

Payment status

  • processing: the outcome is not yet confirmed.
  • succeeded: the card payment was accepted. This does not mean funds have settled.
  • failed: the attempt ended unsuccessfully. failure contains the available code, reason, and advice.
settledAt records when funds reached your wallet. It is null until settlement is recorded. The cardPayment.succeeded webhook confirms payment acceptance, not settlement. The fee is assessed when the card is authorized, so it’s always null on cardPayment.created. Read it from cardPayment.succeeded. brand and last4 identify the card when known. channel is link or voice. receiptUrl links to the receipt after a successful payment.

Failure codes

For failed payments, failure contains a code, reason, and recommended action. These fields can be null when unavailable. New codes may be added. Use failure.advice to decide what to do next: doNotRetry, tryAgainLater, or confirmCardData. Do not infer advice from the code alone.

Refunds

refundedAmount is the total returned by successful refunds. refundableAmount is the amount remaining after pending and successful refunds. It is zero unless the payment succeeded. Other refund restrictions may apply. The refunds relationship includes up to 25 recent refunds, including pending and failed refunds. The totals include all refunds. List refunds with cardPaymentId for the full history.