Skip to main content
Create a payment intent, share its checkout link, and track the payment.
Taking card payments for a customer instead of your own business? Pass their party ID as customerPartyId on every call below. See Collecting for a customer.

Create the intent

Create the intent with POST /payment-intents. To change it while it’s open, update the intent; the pay page shows the new total before the payer pays.
The response includes the checkout link in data.attributes.payUrl. You can also include line items and tax. Send payUrl to the payer. They can enter a card, use Apple Pay where available, or use a saved card after verifying their email. Natural handles checkout, 3-D Secure, and the receipt.

Follow the payment

Read the intent with GET /payment-intents/{paymentIntentId}. Check its status to see whether it was paid.
A paid intent has status completed. Its cardPayment relationship identifies the successful payment. Funds become available after settlement. Subscribe to paymentIntent.completed, cardPayment.succeeded, and cardPayment.failed webhooks for updates. See Card payments for failed attempts.

Reconcile

List payment intents to review recent activity. Filter by status or creation date. Use cursor for the next page and customerPartyId for a customer’s intents.
Successful payments and refunds appear in Transactions. Each payment transaction links to its card payment.

Cancel an intent

Cancel an open intent with POST /payment-intents/{paymentIntentId}/cancel. The checkout link stops working. For cURL, send data.attributes even when empty.
An intent with a payment in progress cannot be canceled, and neither can one that already completed. Refund a completed payment instead: see Refund a card payment.