Base URL
https://api.moove.xyz. Generated against openapi.json.Create a payment link
endpoint
required
Requires the
payment_link:create scope.url — send the payer to that URL.
The link settles to the authenticated user’s default wallet, in that wallet’s chain and token.
toAmount is denominated in that token. The destination cannot be specified by the caller.Body
number | string
required
Amount to request, denominated in the settlement token of the authenticated user’s default wallet. Must be greater than 0.Send it as a string to avoid floating-point rounding.It must also fit the settlement token’s decimal precision. The amount is quantised to the token’s
decimals; if that changes the value, the request is rejected with 422 INVALID_PAYMENT_LINK_AMOUNT.USDC has 6 decimals, so against a USDC wallet:Different tokens have different precision, and the limit is the destination wallet’s token, not yours. Read
token.decimals from the list endpoint if you need to round before sending.string
Shown to the payer on the checkout page. Maximum 500 characters.
integer
How many payments the link accepts before it completes. Minimum 1. Unlimited when omitted.
string
ISO 8601 timestamp, in the future. After it passes the link stops accepting payments. Never expires when omitted.
Request
Response
string
required
The payment link’s id.
string
required
The shareable checkout URL. Send the payer here.
200
List payment links
endpoint
required
Requires the
payment_link:read scope.A key sees every link its owner can see — including links created from the dashboard or by a sibling key. This is the endpoint to reconcile against.
Query parameters
string
Filter by status. One of
active, inactive, completed. Omit for all.integer
default:"0"
Page offset. Follow
nextOffset from the previous response.Request
Response
PaymentLinkData[]
required
The page of results.
integer
required
Results per page. Fixed at 10.
integer
required
The offset this page was fetched at.
integer | null
Offset for the next page.
null at the end.200
Retrieve a payment link
endpoint
required
No authentication. This endpoint is public.
Request
Response
Every field ofPaymentLinkData — as returned by list — plus:
UserData
required
The link owner’s public profile.
string | null
A
PaymentLinkData field, populated only here. null until the link is completed; then the moove.xyz page for its most recent settled payment, https://moove.xyz/tx/{id}. Not a block-explorer link.Use this to build your own checkout page against a link you created. For reconciliation across many links, use list — it is scoped to your key and pages properly.
Errors
Errors
Branch oncode, never on message.
A malformed body is also a
422, raised by request validation before it reaches any of the above. errors carries one entry per problem: message describes the rule that failed and code is a validation type such as missing, greater_than or json_invalid. The field is not named.422
Get paid without polling
Webhooks
Register an HTTPS endpoint and Moove POSTs a signed body when a link is paid, and again when a payment completes it. Deactivation and expiry send no event. Keep
GET /v1/payment-link for reconciling those, and anything a delivery missed.Not in the API
Deactivating a link is a dashboard action, not an API call. Manage links at moove.xyz/dashboard/payment-link.Registering a webhook endpoint is also a console action, at moove.xyz/business/manage/webhooks. Both are done by a signed-in person, not by a key.
Next
Pagination
Page through every link.
Moove Agentic Payments
Build the integration with a prompt.
Moove Payment Links
The dashboard side.