Skip to main content
POST
/
link
/
merchant
/
generate-link
cURL
curl --request POST \
  --url https://api.xpaycheckout.com/link/merchant/generate-link \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '{
  "amount": 100,
  "currency": "USD",
  "receiptId": "order123",
  "customerDetails": {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "contactNumber": "+919123456789",
    "customerAddress": {
      "country": "US",
      "postalCode": "2424"
    }
  },
  "description": "Order for 2 items",
  "expiryDate": 32526868154000,
  "callbackUrl": "https://example.com/callback",
  "cancelUrl": "https://example.com/cancel",
  "paymentMethods": [
    "CARD",
    "GOOGLE_PAY",
    "APPLE_PAY"
  ],
  "storeFrontId": "sf_sK8d3Jq1tZxPjYVhRQW2rf",
  "multiUseLimit": 5,
  "productPage": {
    "name": "Premium Subscription",
    "description": "Access to premium features and content"
  },
  "phoneNumberRequired": false
}'
{
  "shortUrl": "https://api.xpaycheckout.com/link/pcTrro7D",
  "disclaimer": "GBP is not supported on Klarna. The payment will default to USD."
}

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json

Generate Payment Link

amount
integer
required

The amount in lowest count unit. e.g.: For USD 1, amount is 100 representing 100 cents (The minimum amount should be greater than 1 USD)

Example:

100

currency
string
required

Three letter abbreviation of the currency. Refer supported currencies

Example:

"USD"

customerDetails
object
required

Details about the customer

expiryDate
integer
required

Timestamp in epoch milliseconds, indicating the expiration time of the link

Example:

32526868154000

receiptId
string

Your identifier of the order

Example:

"order123"

description
string

The description of the order, if any

Example:

"Order for 2 items"

callbackUrl
string

The URL we will callback to with the xIntentId once it finishes.

Example:

"https://example.com/callback"

cancelUrl
string

The URL to redirect the customer to when they cancel the payment. If not provided, the callbackUrl will be used as fallback.

Example:

"https://example.com/cancel"

paymentMethods
string[]

List of payment methods to be enabled for the link. supported payment methods

šŸ’” If a selected payment method is unavailable, the system will automatically fallback to card payments to ensure a smooth checkout experience.

Example:
["CARD", "GOOGLE_PAY", "APPLE_PAY"]
storeFrontId
string

šŸ”µ Beta Feature - The unique identifier for your storefront. This ID is used to associate the payment link with a specific storefront in your account. When provided, it will replace the default DBA and logo with the corresponding storefront's branding. This feature is currently in beta testing and may be subject to changes.

To enable this feature, please contact hello@xpaycheckout.com

Example:

"sf_sK8d3Jq1tZxPjYVhRQW2rf"

multiUseLimit
integer

The maximum number of times this payment link can be used. If null, the link can be used only once. Must be greater than 0 if provided.

Required range: x >= 1
Example:

5

productPage
object

Product Page - showcases more about the product in the payment links

phoneNumberRequired
boolean

Flag to indicate whether phone number is required from the customer during checkout. By default, this is false.

Example:

false

Response

Generate Payment Link

shortUrl
string

The shortened URL generated by the xPay API. This link can be shared with customers for completing payments.

Example:

"https://api.xpaycheckout.com/link/pcTrro7D"

disclaimer
string

A message highlighting unsupported currency and payment method pairs. You may use this information to communicate these limitations to your users and set expectations.

Example:

"GBP is not supported on Klarna. The payment will default to USD."

⌘I