Skip to main content
POST
Create Payment Link
Creates a hosted checkout for one token on one network. Funds settle into the account’s payment link wallet for that currency, so set up the wallet first and wait for ready. Requires payins:write and a UUID in the Idempotency-Key header.

Request

Hop selects the prepared wallet from the account and currency; do not pass a wallet ID. The network must be in the wallet’s latest available_networks. amount is positive with up to six decimal places and must meet the applicable payment minimum. expiry_minutes defaults to 30 and accepts 1–2880. Optional return_url must use HTTPS; reference accepts up to 255 characters. Use the payer’s actual identity. Individuals require first_name, last_name and date_of_birth; companies use entity_type: COMPANY with legal_name and registration_number. relationship_type accepts SELF_OWNED or THIRD_PARTY.

Response

HTTP 201 returns a new payment_request with an ID beginning preq_. An idempotent replay returns HTTP 200 with the original request.
Direct the payer to redirect_url, or have them send only the requested token on the specified network to the address in instructions, before expires_at. instructions mirrors the checkout provider’s deposit details for that token and network. If the wallet is missing or not ready, the request returns 409 PAYMENT_LINK_WALLET_NOT_READY (details.payment_link_wallet_id names a pending wallet). Finish setup, then retry with the same body and idempotency key. Creating a payment request never provisions its wallet implicitly, and an existing checkout replay stays readable without repeating setup. Track receipt and settlement with Get Payment Link. payin.received and the account balances confirm the customer credit.