Skip to main content
Create a payment intent, share its checkout link, and track the payment. Accept takes debit and credit card payments by checkout link or over the phone, for your own business or for Connect customers, whose funds settle into each customer’s wallet. Manage payments, refunds, and disputes from the dashboard or API. Complete Accept onboarding in the dashboard first. Follow the Accept payments guide for setup and customer enrollment. Voice requires additional setup; contact hi@natural.com. Use Sandbox to test card payments and simulate settlement.
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 checkout of a subscription can’t be updated.
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 or Google Pay where available, or use a saved card after entering a code sent to their phone. Natural handles checkout, 3-D Secure when its risk check on a typed card asks for it or a saved card is retried after a failed payment, 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.