Payment links
These examples call the production host. While you build, replace
https://api-harmony.compago.com with https://demo-api-harmony.compago.com and use a key from the Demo dashboard. See Environments.GET /developer/v1/payment-link returns your links with their current definition.
Types
Fields worth explaining
fields and products are the CURRENT definition
fields and products are the CURRENT definition
Custom inputs and products removed by an edit are soft-deleted rather than dropped, because past payments reference them and that is how an old receipt still renders what the customer actually saw. Both arrays return only what the link sells today.
version is a change token
version is a change token
It increments on every edit made in the dashboard. If you cache link definitions, comparing
version tells you whether anything changed without diffing the whole object.currentUsage counts only while a cap exists
currentUsage counts only while a cap exists
maxUsage caps how many times a link can be paid, and currentUsage counts toward it. With no cap set, currentUsage is null: nothing is being counted.allowedTerms restricts the installment plans
allowedTerms restricts the installment plans
The installment plans the link’s checkout offers, as numbers of monthly installments:
1 is a single payment and any larger number is that many months without interest. With one entry the customer pays with that plan and cannot choose another. null offers every plan active on your account. A listed plan that stops being available is no longer offered, and nothing is offered in its place. Always null on SUBSCRIPTION links.archived is a soft delete
archived is a soft delete
Archived links are hidden from the list unless you pass
archived=true, and they never accept payments. The record is kept because payments reference the link they were taken through.Filters
Products
Products are the catalogue thatPRODUCT_BASED links sell from. A link references products rather than copying them, so a price change in the dashboard changes what every link containing that product charges.
Unlike the dashboard, which defaults to showing active products only, this endpoint returns everything when you omit
status. A catalogue reconciliation needs to see archived rows to know they are archived; a UI list just needs to look tidy. Pass status=ACTIVE for the dashboard’s behaviour.