Skip to content

Receivables

List, read, create and update draft receivables, with the receivable object and every accepted field.

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.

Endpoints

Method Path Scope
GET /v1/receivables receivables:read
GET /v1/receivables/{id} receivables:read
POST /v1/receivables receivables:write
PATCH /v1/receivables/{id} receivables:write

Payments and status changes are described in Payment tracking.

The receivable object

Field Type Description
id integer Receivable ID within your company.
customer_id integer The customer this receivable belongs to.
amount_minor integer Amount due in minor units.
paid_minor integer Total recorded as paid, in minor units.
currency string EUR, GBP, TRY or USD.
due_date string Local due date, YYYY-MM-DD.
status string See statuses.
external_reference string or null Your own reference, unique within your company.
description string or null Free text, up to 2,000 characters.
version string Fingerprint used for safe updates.

List receivables

Results are ordered by id and paginated (see Pagination).

BASH
curl "https://api.remindcash.com/v1/receivables?per_page=25" \
  --header "Authorization: Bearer $REMINDCASH_API_KEY"
JSON
{
    "data": [
        {
            "id": 1,
            "customer_id": 1,
            "amount_minor": 125000,
            "paid_minor": 0,
            "currency": "USD",
            "due_date": "2026-10-15",
            "status": "draft",
            "external_reference": "INV-1042",
            "description": "Website redesign",
            "version": "4e6fea39ae2fab8ccb843657f081d276513739a71787c060a007b65e3acbbbc1"
        }
    ],
    "meta": { "current_page": 1, "per_page": 25, "total": 1 },
    "request_id": "762e599f-c42c-4c49-84fb-9a2f56a3f923"
}

Retrieve a receivable

BASH
curl https://api.remindcash.com/v1/receivables/1 \
  --header "Authorization: Bearer $REMINDCASH_API_KEY"

An unknown ID — or one that belongs to another company — returns 404 not_found.

Create a draft receivable

POST /v1/receivables creates a receivable in draft status. It requires an Idempotency-Key header and returns 201 Created.

Field Required Rules
customer One of customer or customer_id Object with display_name (required, max 160) and at least one of email or phone_e164. Optional preferred_locale (en, tr) and IANA timezone.
customer_id One of customer or customer_id An existing customer in your company.
amount Yes Positive decimal string, up to two decimals.
currency Yes EUR, GBP, TRY or USD.
due_date Yes YYYY-MM-DD.
external_reference No Max 160 characters. A reference already used in your company returns 409 conflict.
description No Max 2,000 characters.

phone_e164 must be in E.164 format, for example +14155550100. Fields such as status or tenant_id are rejected.

BASH
curl https://api.remindcash.com/v1/receivables \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: create-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{
    "customer": { "display_name": "Studio North", "email": "billing@studionorth.example" },
    "amount": "1250.00",
    "currency": "USD",
    "due_date": "2026-10-15",
    "external_reference": "INV-1042"
  }'

New customers created this way still need their contact verified and permission recorded in the app before any reminder can be sent.

Update a draft receivable

PATCH /v1/receivables/{id} changes a draft. Send expected_version (the version you last read) plus at least one field to change: customer_id, amount, currency, due_date, external_reference or description.

BASH
curl https://api.remindcash.com/v1/receivables/1 \
  --request PATCH \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: update-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{
    "expected_version": "4e6fea39ae2fab8ccb843657f081d276513739a71787c060a007b65e3acbbbc1",
    "due_date": "2026-10-20"
  }'

The response contains the updated receivable and its new version. The update returns 409 conflict when:

  • expected_version no longer matches (someone changed it first),
  • the receivable is no longer a draft,
  • it is an occurrence of a recurring series,
  • a payment exists and you try to change the customer, amount or currency.