Skip to main content
This is an enterprise-only feature. Please contact us to enable.
A payment link is a Flow payment that your server creates and shares as a URL instead of wiring it into your own payment page. It suits invoices and requests sent by email, SMS, chat, or QR code.
  1. Create: One request from your server sets the amount, settlement token, destination, and the page the link opens.
  2. Share: Send the link to the payer.
  3. Get paid: The payer pays from a wallet, through an exchange, or by sending funds to a deposit address. Funds convert and settle automatically.

Amount and mode

A payment link always creates a flow in payment mode. You set the amount when you create the link, and the payer cannot change it. Each link is one flow, so it represents one payment, and the payer can use it until the payment is sent or the flow is cancelled or expires. Expiry and cancellation explains how long a flow can stay open.

Where the payer pays

When your server creates the link, it sets baseUrl, the page the link opens:
  • Hosted by Dynamic: Set baseUrl to Dynamic’s hosted payment page, https://pay.dynamicauth.com. There is no frontend to build. The hosted page works only with links created with the payment-link API.
  • Self-hosted: Set baseUrl to your own page, and drive the payment with the JavaScript SDK, the Flutter SDK, or the API.
  • Custom domain: Put your own domain, for example pay.yourcompany.com, on Dynamic’s hosted page. Contact us to set this up.
The origin of baseUrl must be a registered CORS origin before you create the link, or the request is rejected. The payer reviews the payment and pays from their wallet:
Funds convert and settle automatically:
The link encodes your environment ID and the flow ID. It contains no secret, but anyone who has it can open the payment and, until the payment is sent, attach a payment source. Send each link only to the payer it is for. Access and data explains why.

Payment sources and chains

Payers can pay from a wallet, through an exchange, or by sending funds to a generated deposit address. See Payment sources for what each requires, and Supported chains for the chains per source. Your server creates a link with the same fields as a payment flow, plus the required baseUrl, using its environment API token. The response includes the flow and a paymentUrl to send to the payer. The API guide shows the request and response. Track the payment like any other flow, with webhooks. The payment is done when settlement reaches completed.

Continue building

JavaScript SDK

Flutter SDK

API only

Last modified on October 29, 2026