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. |
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" }'{
"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.
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." }'{
"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.