Payment Links
Payment links are shareable URLs that let you accept crypto payments without writing any code. Create a link, share it with your customer, and get paid.
Create a payment link
POST
/payment-linksRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
appId | string | Yes | Your app UUID |
name | string | Yes | Link name (1–255 chars) |
slug | string | Yes | URL slug (lowercase, alphanumeric + hyphens, 1–100) |
amount | string | No | Fixed amount (decimal string) |
currency | string | No | Currency code (max 10) |
description | string | No | Link description (max 2000) |
productPlanId | string | No | Link to a product plan |
productPlanPriceId | string | No | Specific price option |
allowedChains | "ALL" | number[] | No | Allowed blockchain chain IDs |
allowedTokens | "ALL" | string[] | No | Allowed token identifiers |
successUrl | string | No | Redirect on success |
cancelUrl | string | No | Redirect on cancel |
requireBillingDetails | boolean | No | Require billing info at checkout |
taxRateId | string | No | Apply a tax rate |
metadata | object | No | Arbitrary key-value metadata |
List payment links
GET
/payment-linksQuery parameters
| Parameter | Type | Description |
|---|---|---|
appId | string | Filter by app UUID |
isActive | "true" | "false" | Filter by active status |
page | number | Page number (default: 1) |
pageSize | number | Items per page (max 100) |
Retrieve a payment link
GET
/payment-links/:idUpdate a payment link
PUT
/payment-links/:idUpdates payment link fields. Only the provided fields are changed.
Delete a payment link
DELETE
/payment-links/:idPermanently deletes a payment link.
Response object
All responses are wrapped in { "success": true, "data": ... }. List endpoints add pagination. Delete returns 204 No Content.
PaymentLink fields
idstringUnique payment link UUIDappIdstringApp this link belongs tonamestringLink display namedescriptionstring | nullLink descriptionslugstringURL slug (used in paymentUrl)amountstring | nullFixed amount as decimal stringcurrencystring | nullCurrency codeproductPlanIdstring | nullLinked product plan UUIDproductPlanPriceIdstring | nullLinked price UUIDtaxRateIdstring | nullApplied tax rate UUIDallowedChains'ALL' | number[]Permitted blockchain chain IDsallowedTokens'ALL' | string[]Permitted token identifierssuccessUrlstring | nullRedirect URL after paymentcancelUrlstring | nullRedirect URL on cancelrequireBillingDetailsbooleanWhether billing details are requiredisActivebooleanWhether the link accepts paymentsusageCountnumberNumber of completed checkoutsmetadataobjectArbitrary key-value pairscreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last-update timestamppaymentUrlstringFull shareable payment URL (computed server-side)appobjectApp name (retrieve also includes merchantId)productPlanobject | nullLinked plan (selected fields)productPlanPriceobject | nullLinked price (selected fields)taxRateobject | nullApplied tax rate (id, displayName, percentage, inclusive)💡
Retrieve returns richer data
The retrieve endpoint selects additional fields from relations:
app.merchantId, productPlan.description, productPlan.imageUrl, and productPlanPrice.billingIntervalCount.