Skip to main content

Overview

Create a payment link for collecting payments from customers. The link can be one-time (default) or recurring. For POST /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

Each cartItems[] entry must include:

Recurring body

When checkoutType is "recurring", you must send recurringCharge with this shape: When type === "consumption": When type === "seating":

Examples

All POST /v1/ext/collections/payment-link examples below include the required itemDeliveryAddress and cartItems fields.
Omit 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.url is 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 for consumption/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 include name and description.
  • checkoutType – Optional. Default: "generic". Use "recurring" for recurring payment links.
  • recurringCharge – Allowed only when checkoutType === "recurring". Required then, with type, startDate, interval; plus consumptionDetails or seatDetails depending on type.
  • 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: itemDeliveryAddress and cartItems are required on POST /v1/ext/collections/payment-link. Each cart item must include at least name and description.
  • Recurring via External API: Create payment link supports checkoutType: "recurring" and recurringCharge on POST /v1/ext/collections/payment-link. Default remains one-time when these fields are omitted (no breaking changes).