Skip to main content
A payment intent represents a single collection request: a fixed amount, a currency, and a customer. Orchestrate routes the intent through one or more attempts until one succeeds or you abandon the intent.

Integration paths

Choose hosted checkout when you want Orchestrate to handle the payment page. Choose the direct API when you need to build the UI yourself, embed the payment flow inside a native app, or control every step of the interaction.

Intent lifecycle

A payment intent moves through these statuses:

Attempt lifecycle

Each attempt against an intent has its own status: A failed attempt does not end the intent. While the intent is pending, you may start another attempt — with a different method or the same one. The intent moves to failed only when no further attempts are possible.

Refunds

A completed intent can be refunded in full or in part. The intent carries a refunds_summary object that tracks refunded amounts and in-flight refunds. See Refunds for the full reference.

Listing and retrieving intents

Retrieve one intent:
List intents with GET /payment/intents. Supported filters: The response uses cursor-based pagination. See API conventions for the full pagination shape.

Countries and methods

Which countries and methods are available depends on your project’s configuration. Never hard-code them: read them for the specific payment using the discovery endpoints documented in Custom checkout, or look them up in your dashboard.