Clientary provides programmatic access to payments. You can programmatically apply a payment to an invoice or remove an existing payment.
You can also retrieve payments on an invoice via the Invoice API.
GET /api/v2/payments
{
"page_size": 30,
"page_count": 1,
"total_count": 30,
"payments": [
{
"id": 980190972,
"amount": 20.0,
"note": "Received check #123",
"invoice_id": 20231421,
"received_on": "2017-07-22",
"transaction_fee_amount": 0.0,
"transaction_id": "ch_BK0cuioz1Vq9vm"
},
...
]
}
Note that the transaction_id value is only populated when the payment was made through an integrated payment gateway and will correspond to the gateway used for the particular payment in question.
GET /api/v2/payments?page=2On a bulk GET Clientary will return 30 results at once. To paginate through more results, you can use the page parameter.
GET /api/v2/payments?sort=created_atBy default, the end point will return payments sorted by reverse chronological order of the received_on attribute. Use created_at to sort by actual record create time instead.
POST /api/v2/invoices/:invoice_id/payments
{
"payment": {
"amount": 500,
"note": "Paid by Check"
}
}
Required Fields: amount (HTTP 422 on failure)
POST /api/v2/invoices/:invoice_id/payments
{
"payment": {
"payment_profile_id": 123
}
}
Required Fields: payment_profile_id (HTTP 422 on failure)
Note that if a payment_profile_id is used, amount and note are ignored. This implies that the entire outstanding amount of the invoice will be charged.
DELETE /api/v2/invoices/:invoice_id/payments/:idDeletion of payment requires presence of invoice_id.
Deletions are permanent and not reversible.