Payments
/api/v1/installment-plansPermission: payments:read
Query parameters
debtIdstringmax. 128 charactersstatus"active" | "completed" | "canceled"limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<InstallmentPlan>requiredidstringrequiredobject"installment_plan"requireddebtIdstringrequiredstatus"active" | "completed" | "canceled"requiredamountCentsintegerrequiredAgreed total amount-100000000000–100000000000numberOfPaymentsintegerrequired-9007199254740991–9007199254740991installmentCentsintegerrequiredMonthly instalment-100000000000–100000000000startDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentsMadeintegerrequired-9007199254740991–9007199254740991paidCentsintegerrequiredAmount in cents-100000000000–100000000000remainingCentsintegerrequiredAmount in cents-100000000000–100000000000nextDueDatestring (date) | nullrequiredDate (YYYY-MM-DD)lastPaymentDatestring (date) | nullrequiredDate (YYYY-MM-DD)scheduleArray<object>requiredDue dates (monthly)numberintegerrequired-9007199254740991–9007199254740991dueDatestring (date)requiredDate (YYYY-MM-DD)amountCentsintegerrequiredAmount in cents-100000000000–100000000000
notesstringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/installment-plans' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"object": "installment_plan",
"debtId": "string",
"status": "active",
"amountCents": 0,
"numberOfPayments": 0,
"installmentCents": 0,
"startDate": "2026-11-01",
"paymentsMade": 0,
"paidCents": 0,
"remainingCents": 0,
"nextDueDate": "2026-11-01",
"lastPaymentDate": "2026-11-01",
"schedule": [
{
"number": 0,
"dueDate": "2026-11-01",
"amountCents": 0
}
],
"notes": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/installment-plansMonthly instalments from startDate; rounding cents are added to the first instalments. Event installment_plan.created.
Permission: payments:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InstallmentPlanCreate
debtIdstringrequiredmax. 128 charactersamountCentsintegerrequiredAmount in cents0–100000000000numberOfPaymentsintegerrequired1–120startDatestring (date)requiredDue date of the first instalmentnotesstringmax. 2000 characters
Response 201 · InstallmentPlan
idstringrequiredobject"installment_plan"requireddebtIdstringrequiredstatus"active" | "completed" | "canceled"requiredamountCentsintegerrequiredAgreed total amount-100000000000–100000000000numberOfPaymentsintegerrequired-9007199254740991–9007199254740991installmentCentsintegerrequiredMonthly instalment-100000000000–100000000000startDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentsMadeintegerrequired-9007199254740991–9007199254740991paidCentsintegerrequiredAmount in cents-100000000000–100000000000remainingCentsintegerrequiredAmount in cents-100000000000–100000000000nextDueDatestring (date) | nullrequiredDate (YYYY-MM-DD)lastPaymentDatestring (date) | nullrequiredDate (YYYY-MM-DD)scheduleArray<object>requiredDue dates (monthly)numberintegerrequired-9007199254740991–9007199254740991dueDatestring (date)requiredDate (YYYY-MM-DD)amountCentsintegerrequiredAmount in cents-100000000000–100000000000
notesstringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/installment-plans' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"debtId": "string",
"amountCents": 0,
"numberOfPayments": 1,
"startDate": "2026-11-01",
"notes": "string"
}'{
"id": "string",
"object": "installment_plan",
"debtId": "string",
"status": "active",
"amountCents": 0,
"numberOfPayments": 0,
"installmentCents": 0,
"startDate": "2026-11-01",
"paymentsMade": 0,
"paidCents": 0,
"remainingCents": 0,
"nextDueDate": "2026-11-01",
"lastPaymentDate": "2026-11-01",
"schedule": [
{
"number": 0,
"dueDate": "2026-11-01",
"amountCents": 0
}
],
"notes": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/installment-plans/{id}With payment schedule (schedule), paid and outstanding amounts.
Permission: payments:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · InstallmentPlan
idstringrequiredobject"installment_plan"requireddebtIdstringrequiredstatus"active" | "completed" | "canceled"requiredamountCentsintegerrequiredAgreed total amount-100000000000–100000000000numberOfPaymentsintegerrequired-9007199254740991–9007199254740991installmentCentsintegerrequiredMonthly instalment-100000000000–100000000000startDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentsMadeintegerrequired-9007199254740991–9007199254740991paidCentsintegerrequiredAmount in cents-100000000000–100000000000remainingCentsintegerrequiredAmount in cents-100000000000–100000000000nextDueDatestring (date) | nullrequiredDate (YYYY-MM-DD)lastPaymentDatestring (date) | nullrequiredDate (YYYY-MM-DD)scheduleArray<object>requiredDue dates (monthly)numberintegerrequired-9007199254740991–9007199254740991dueDatestring (date)requiredDate (YYYY-MM-DD)amountCentsintegerrequiredAmount in cents-100000000000–100000000000
notesstringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/installment-plans/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "installment_plan",
"debtId": "string",
"status": "active",
"amountCents": 0,
"numberOfPayments": 0,
"installmentCents": 0,
"startDate": "2026-11-01",
"paymentsMade": 0,
"paidCents": 0,
"remainingCents": 0,
"nextDueDate": "2026-11-01",
"lastPaymentDate": "2026-11-01",
"schedule": [
{
"number": 0,
"dueDate": "2026-11-01",
"amountCents": 0
}
],
"notes": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/installment-plans/{id}Permission: payments:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · InstallmentPlanUpdate
amountCentsintegerAmount in cents0–100000000000numberOfPaymentsinteger1–120startDatestring (date)Date (YYYY-MM-DD)status"active" | "completed" | "canceled"notesstringmax. 2000 characters
Response 200 · InstallmentPlan
idstringrequiredobject"installment_plan"requireddebtIdstringrequiredstatus"active" | "completed" | "canceled"requiredamountCentsintegerrequiredAgreed total amount-100000000000–100000000000numberOfPaymentsintegerrequired-9007199254740991–9007199254740991installmentCentsintegerrequiredMonthly instalment-100000000000–100000000000startDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentsMadeintegerrequired-9007199254740991–9007199254740991paidCentsintegerrequiredAmount in cents-100000000000–100000000000remainingCentsintegerrequiredAmount in cents-100000000000–100000000000nextDueDatestring (date) | nullrequiredDate (YYYY-MM-DD)lastPaymentDatestring (date) | nullrequiredDate (YYYY-MM-DD)scheduleArray<object>requiredDue dates (monthly)numberintegerrequired-9007199254740991–9007199254740991dueDatestring (date)requiredDate (YYYY-MM-DD)amountCentsintegerrequiredAmount in cents-100000000000–100000000000
notesstringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X PATCH 'https://www.debt-flow.io/api/v1/installment-plans/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"amountCents": 0,
"numberOfPayments": 1,
"startDate": "2026-11-01",
"status": "active",
"notes": "string"
}'{
"id": "string",
"object": "installment_plan",
"debtId": "string",
"status": "active",
"amountCents": 0,
"numberOfPayments": 0,
"installmentCents": 0,
"startDate": "2026-11-01",
"paymentsMade": 0,
"paidCents": 0,
"remainingCents": 0,
"nextDueDate": "2026-11-01",
"lastPaymentDate": "2026-11-01",
"schedule": [
{
"number": 0,
"dueDate": "2026-11-01",
"amountCents": 0
}
],
"notes": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/installment-plans/{id}Also deletes the instalments recorded against it.
Permission: payments:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/installment-plans/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/installment-plans/{id}/paymentsPermission: payments:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200
object"list"requireddataArray<Payment>requiredidstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/installment-plans/ID/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}
]
}/api/v1/installment-plans/{id}/paymentsIncreases the number of instalments paid; once paid in full, the plan becomes completed. Event payment.received.
Permission: payments:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InstallmentPaymentCreate
amountCentsintegerrequiredAmount in cents0–100000000000datestring (date)requiredDate (YYYY-MM-DD)method"bank" | "cash" | "paypal" | "card" | "direct_debit" | "other"Default: "bank"notesstringmax. 2000 characters
Response 201 · Payment
idstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/installment-plans/ID/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"notes": "string"
}'{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}/api/v1/installment-plans/{id}/payments/{paymentId}Permission: payments:write
Path parameters
idstringrequiredmax. 128 characterspaymentIdstringrequiredmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/installment-plans/ID/payments/PAYMENTID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/paymentsIndividual payments and instalments from instalment plans (type), sorted by payment date in descending order.
Permission: payments:read
Query parameters
debtIdstringmax. 128 characterscontactIdstringmax. 128 characterstype"single" | "installment" | "all"Default: "all"fromstring (date)Date (YYYY-MM-DD)tostring (date)Date (YYYY-MM-DD)limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<Payment>requiredidstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/paymentsIncoming payment for a debt. With installmentPlanId, it is posted as an instalment. markDebtPaid closes the debt. If “Payment confirmations” is enabled in the settings, the debtor receives an email. Event payment.received.
Permission: payments:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · PaymentCreate
debtIdstringrequiredmax. 128 charactersamountCentsintegerrequiredAmount in cents0–100000000000datestring (date)requiredPayment date, not in the futuremethod"bank" | "cash" | "paypal" | "card" | "direct_debit" | "other"Default: "bank"referencestringmax. 140 charactersnotesstringmax. 2000 charactersinstallmentPlanIdstringRecord as an instalment of this instalment planmax. 128 charactersverifiedbooleanPayment receipt verified (single payments only)markDebtPaidbooleanThen mark the debt as paid
Response 201 · Payment
idstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"debtId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"reference": "string",
"notes": "string",
"installmentPlanId": "string",
"verified": false,
"markDebtPaid": false
}'{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}/api/v1/payments/{id}Instalments of an instalment plan: /installment-plans/{id}/payments.
Permission: payments:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · Payment
idstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/payments/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}/api/v1/payments/{id}Notes, reference, payment method and the verified flag are changed directly. Amount or date of a booked payment (booking engine) are corrected by a reversal and a new booking: the response contains the new payment with a new id, the old one remains with its reversal (events payment.reversed and payment.received).
Permission: payments:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · PaymentUpdate
amountCentsintegerAmount in cents0–100000000000datestring (date)Date (YYYY-MM-DD)method"bank" | "cash" | "paypal" | "card" | "direct_debit" | "other"referencestringmax. 140 charactersnotesstringmax. 2000 charactersverifiedbooleanPayment receipt verified
Response 200 · Payment
idstringrequiredobject"payment"requiredtype"single" | "installment"requiredSingle payment or instalment of an instalment plandebtIdstringrequiredcontactIdstring | nullrequiredinstallmentPlanIdstring | nullrequiredamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)methodstringrequiredreferencestringrequirednotesstringrequiredverifiedbooleanrequiredPayment receipt verified (single payments only)createdAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X PATCH 'https://www.debt-flow.io/api/v1/payments/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"reference": "string",
"notes": "string",
"verified": false
}'{
"id": "string",
"object": "payment",
"type": "single",
"debtId": "string",
"contactId": "string",
"installmentPlanId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "string",
"reference": "string",
"notes": "string",
"verified": false,
"createdAt": "2026-11-01T09:30:00.000Z"
}/api/v1/payments/{id}Booked payments (booking engine) are not deleted but reversed (payment.reversed); 409 payment_already_reversed on a repeated call, 409 payment_not_reversible for reversals. Older payments without a booking are deleted (payment.deleted).
Permission: payments:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/payments/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"