Payment Links
Payment links are shareable URLs that open a payment page. No integration needed. Share them via email, social media, or embed as QR codes.
Create a payment link
Retrieve a payment link
Update a payment link
List payment links
Delete a payment link
Methods reference
| Method | Description |
|---|---|
create(params) | Create a new payment link |
retrieve(id) | Retrieve a payment link by ID |
list(params?) | List all payment links |
update(id, params) | Update a payment link |
delete(id) | Delete a payment link |
TypeScript types
Response body reference
All responses are wrapped in { success: true, data: ... }. The fields below describe what's inside data.
create(), update(), and list() response
PaymentLink
idstringUnique payment link ID (UUID)appIdstringYour app IDnamestringLink display namedescriptionstring | nullLink descriptionslugstringURL slug (used in payment URL)amountstring | nullFixed amount (Decimal as string), null if customer choosescurrencystringCurrency code, default "USD"productPlanIdstring | nullLinked product plan IDproductPlanPriceIdstring | nullLinked price IDtaxRateIdstring | nullApplied tax rate IDallowedChainsstring | number[]"ALL" or array of chain IDsallowedTokensstring | string[]"ALL" or array of token keyssuccessUrlstring | nullRedirect after paymentcancelUrlstring | nullRedirect if cancelledrequireBillingDetailsbooleanWhether billing details are requiredisActivebooleanWhether the link is activeusageCountnumberNumber of times the link has been usedmetadataobjectYour metadata key-value pairscreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last update timestamppaymentUrlstringFull payment URL (e.g. https://pay.noderails.com/link/donate)app{ name }App name onlyproductPlan{ id, name } | nullPlan name, if linkedproductPlanPriceobject | null{ id, amount, currency, billingInterval, nickname }taxRateobject | null{ id, displayName, percentage, inclusive }retrieve() response
Same as above but with richer nested data:
Extra fields on retrieve
app.merchantIdstringAlso included on retrieveproductPlan.descriptionstring | nullPlan descriptionproductPlan.imageUrlstring | nullPlan image URLproductPlanPrice.billingIntervalCountnumberAlso included on retrievedelete() response
Returns 204 No Content (no response body).