Overview
Create a payment link for collecting payments from customers. The link can be one-time (default) or recurring. ForPOST /v1/ext/collections/payment-link, itemDeliveryAddress and cartItems are required, and each cart item must include at least name and description.
Endpoint: POST /v1/ext/collections/payment-link
Auth: Bearer token with scope external.apis (authorizer: walletos-account-service-{stage}-authorizer).
Default vs recurring
Recurring compatibility: Existing callers that do not send
checkoutType or recurringCharge still get one-time payment links.
Request
URL
Headers
Body (JSON) – common fields
Cart items
EachcartItems[] entry must include:
Recurring body
WhencheckoutType is "recurring", you must send recurringCharge with this shape:
When
type === "consumption":
When
type === "seating":
Examples
AllPOST /v1/ext/collections/payment-link examples below include the required itemDeliveryAddress and cartItems fields.
One-time payment link (default)
checkoutType and recurringCharge to get the existing one-time behavior.
Recurring – fixed subscription
Recurring – consumption (usage-based)
Recurring – seating (per-seat)
Response
Success (200)
data.urlis the payment link URL to share with customers.- For recurring links, after the customer completes checkout (payment method saved), a subscription is created and billing follows the configured interval and type.
Error (4xx / 5xx)
Validation summary
- currency – Required, one of supported types.
- amount – Required for one-time and for recurring
subscription(min 0.5). Optional forconsumption/seating(min 0). - itemDeliveryAddress – Required on
POST /v1/ext/collections/payment-link. - cartItems – Required on
POST /v1/ext/collections/payment-link; send at least one item, and each item must includenameanddescription. - checkoutType – Optional. Default:
"generic". Use"recurring"for recurring payment links. - recurringCharge – Allowed only when
checkoutType === "recurring". Required then, withtype,startDate,interval; plusconsumptionDetailsorseatDetailsdepending ontype. - startDate – Must be before
expiredAt.
Recurring billing behavior
For recurring links, the customer is first asked to save a payment method (no charge at link use). When the setup succeeds, a subscription is created and charges follow the configured model (subscription, consumption, or seating). Billing cycles, seat changes, and usage reporting follow the platform’s recurring payments behavior.Changelog
- External API request fields:
itemDeliveryAddressandcartItemsare required onPOST /v1/ext/collections/payment-link. Each cart item must include at leastnameanddescription. - Recurring via External API: Create payment link supports
checkoutType: "recurring"andrecurringChargeonPOST /v1/ext/collections/payment-link. Default remains one-time when these fields are omitted (no breaking changes).