Skip to content

Payment tracking

Record payments your customer reported, and pause, resume or cancel reminders for a receivable.

Public API status

The v1 API described here is implemented and tested, but api.remindcash.com is not yet open to the public. It opens after final acceptance testing; until then requests return 503. Examples use placeholders — never paste a real key into shared code.

RemindCash does not process payments. When your customer pays you, record it so reminders use the remaining amount — or stop once it is fully paid.

Record a payment

POST /v1/receivables/{id}/payments records a reported payment. It needs the receivables:write scope and an Idempotency-Key.

Field Required Rules
amount Yes Positive decimal string, up to two decimals.
BASH
curl https://api.remindcash.com/v1/receivables/1/payments \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: payment-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{ "amount": "250.00" }'
JSON
{
    "data": {
        "id": 1,
        "receivable_id": 1,
        "amount_minor": 25000,
        "remaining_after_minor": 100000,
        "status_after": "draft",
        "recorded_at": "2026-10-11T12:58:05.000000Z"
    }
}

status_after shows the receivable's status after the payment: for an active receivable it becomes partially_paid, and paid once nothing remains. A paid receivable receives no further reminders.

Pause, resume and cancel

Method Path Allowed from
POST /v1/receivables/{id}/pause active, partially_paid
POST /v1/receivables/{id}/resume paused (when it was paused from active or partially paid)
POST /v1/receivables/{id}/cancel draft, active, paused, partially_paid, disputed

Each request needs a reason between 10 and 500 characters and an Idempotency-Key. The reason is stored in the receivable's audit history.

BASH
curl https://api.remindcash.com/v1/receivables/1/pause \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: pause-inv-1042-000001" \
  --header "Content-Type: application/json" \
  --data '{ "reason": "Customer asked for one more week." }'
JSON
{
    "data": {
        "id": 1,
        "status": "paused",
        "paid_minor": 0,
        "version": "049a6c669d9211215001be5a324c3f5c9e057797ef4d89e21c8aa632578a87ae"
    }
}

Resuming also requires a verified, eligible customer contact and a remaining balance. A change that is not allowed from the current status returns 422 validation_failed with an action field error. Resuming never replays reminder steps that were skipped while paused.