Skip to main content
A Payment Intent represents your intent to collect a specific amount and currency for an order. It ties together the merchant order, Checkout session, provider attempt, Dashboard record, and webhook event. Create Payment Intents only from your server. The request uses your secret API key and should be based on order data your server already trusts.

When to create one

Create a Payment Intent when the customer starts the payment step. Use one Payment Intent for one checkout attempt.
  • If your application retries the same create request because of a timeout, reuse its idempotency key.
  • If the customer starts a genuinely new payment attempt, create a new Payment Intent.
  • Do not reuse a succeeded, canceled, or otherwise unavailable Payment Intent.

Create a Payment Intent

The creation response contains the Payment Intent and includes its raw clientSecret. That raw client secret is returned when the Payment Intent is created; pass it directly to the browser session that will mount Checkout.
See API reference for the complete request and response fields.

Amounts and currencies

amount is an integer in the currency’s minor units. Lynq supports AMD, USD, EUR, and RUB; each currently uses two minor-unit digits. Calculate the final amount on your server after discounts, delivery, and tax. Do not accept a browser-supplied total without checking it against the order.

Order, customer, and metadata

  • Use orderId for the merchant order identifier you will search for during reconciliation.
  • Use customer.id for your internal customer identifier. email and name are optional.
  • Use metadata for string values useful to your systems, such as a cart, store, or invoice identifier.
Do not place secrets, card data, or sensitive personal information in metadata.

Idempotency

Send Idempotency-Key on every create request. A stable key such as order:order_123:attempt:1 makes a retry return the original result instead of creating another Payment Intent. The same idempotency key must not be reused with a different request body. Create a new key when the amount, currency, order, customer, metadata, or actual payment attempt changes.

Handle the client secret

The client secret authorizes Checkout for this Payment Intent. It is less privileged than your secret API key but still needs careful handling:
  • Return it only to the customer session paying the corresponding order.
  • Send it over HTTPS.
  • Do not persist it in browser storage, analytics, error reports, or URLs.
  • Create a fresh Payment Intent when the session is no longer usable.

Retrieve a Payment Intent

Retrieval is a server operation and does not return the original raw client secret. Use it for reconciliation or server-side status checks, not to reconstruct a checkout session.

Payment Intent lifecycle

Do not call Checkout’s browser-facing endpoints directly. The hosted Checkout SDK manages its own confirmation flow.
Last modified on August 8, 2026