Payment Payload

What It Does

Use category: "payment" for expected installments, received payments, and canceled payments. A repayment schedule is a set of payment payloads with status: "expected".

Field Summary

Required Fields

FieldRequiredNotes
payment_idAlwaysUnique payment identifier. Reuse it when updating same payment.
stepAlwayscreate, update, or delete.
disbursement_idCreateParent disbursement id.
client_idPurchase paymentsRequired when the parent disbursement has kind: "purchase". Loan payments resolve client from the parent loan.
payment_totalCreateTotal expected or received amount.
currencyCreateISO 4217 code. Keep aligned with disbursement.
statusCreateexpected, paid, or canceled.
due_dateCreateISO 8601 date input, for example YYYY-MM-DD or YYYY-MM-DDTHH:mm:ssZ.

Common optional fields:

FieldNotes
sourcePayment source: client, insurer, or other. Defaults to client.
payment_dateActual receipt timestamp, mainly for status: "paid". Accepts ISO 8601 date-only or timestamp input.
payment_principalPrincipal portion of the payment.
payment_feeFee or interest portion of the payment: payment_total - payment_principal.
installment_numberInstallment number for schedules and repayment tracking.
bank_refBank or processor reference for the payment.
infoAdditional structured metadata.

Create Expected Payment

{
  "category": "payment",
  "data": {
    "step": "create",
    "payment_id": "PAY-2024-001",
    "disbursement_id": "DSB-2024-001",
    "status": "expected",
    "due_date": "2024-11-20",
    "payment_total": 500,
    "payment_principal": 400,
    "payment_fee": 100,
    "installment_number": 1,
    "currency": "USD"
  }
}

Create Paid Payment

{
  "category": "payment",
  "data": {
    "step": "create",
    "payment_id": "PAY-2024-002",
    "disbursement_id": "DSB-2024-001",
    "status": "paid",
    "source": "client",
    "due_date": "2024-11-20",
    "payment_date": "2024-11-20T12:34:56Z",
    "payment_total": 500,
    "payment_principal": 400,
    "payment_fee": 100,
    "installment_number": 1,
    "currency": "USD"
  }
}

Create Payment On Purchase

Payments on purchase disbursements must include client_id, because purchases can be linked to one or more clients.

{
  "category": "payment",
  "data": {
    "step": "create",
    "payment_id": "PAY-2024-003",
    "disbursement_id": "DSB-2024-002",
    "client_id": "BR-2024-001",
    "status": "paid",
    "due_date": "2024-11-20",
    "payment_date": "2024-11-20T12:34:56Z",
    "payment_total": 500,
    "currency": "USD"
  }
}

Update Expected To Paid

Use same payment_id and switch status.

{
  "category": "payment",
  "data": {
    "step": "update",
    "payment_id": "PAY-2024-001",
    "status": "paid",
    "payment_date": "2024-11-20T12:34:56Z",
    "payment_total": 500
  }
}

Delete

{
  "category": "payment",
  "data": {
    "step": "delete",
    "payment_id": "PAY-2024-001"
  }
}

Notes