Skip to main content
Create a card payment intent for any amount, send the payer a checkout link Natural returns, and follow the lifecycle of the payment. Everything settles into your wallet like any other 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. There is no mutability, modifications to totals must be submitted as a new intent.
cURL
The response carries the response object and, in the meta.payUrl field, the hosted checkout link. Line items are optional. Totals must add up to amountMinor, and taxAmountMinor must equal the sum of line tax. Send payUrl to the payer however you already reach them. The page it opens is Natural’s hosted checkout: they enter their card, or use Apple Pay where it is available, and pay the amount shown. Returning payers can pay with a saved card after verifying their email. Natural integrates natively with 3-D Secure and handles the payer receipt.

Follow the payment

Read the intent with GET /payment-intents/{paymentIntentId}. Its status and the embedded cardPayment tell you where the payment stands.
cURL
A paid intent reads completed with a succeeded card payment. A declined card leaves the intent open and the card payment failed, with declineCode and declineAdvice saying why and what to do next:

Reconcile

GET /payment-intents lists your intents newest first. Filter by status, createdAfter, and createdBefore, and page with cursor. Pass customerPartyId to list one customer’s intents instead.
cURL
A platform that creates intents for many customers can call GET /payment-intents/created instead: one feed of every intent you created, whoever it was for. Every succeeded card payment and every refund also lands in Transactions. A card payment is a payment transaction that relates to its cardPayment, so you can join the settled amount back to the intent; set type=refund on GET /transactions to see only refunds.

Cancel an intent

Cancel an open intent with POST /payment-intents/{paymentIntentId}/cancel. The checkout link stops working.
cURL
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.