Developers

Wire DueTrail into whatever you already use.

A small REST API for the two things automation actually needs: knowing when something happened in collections, and putting an invoice or a payment in without anyone opening a browser.

What you can build

Trigger on what happens

Poll one endpoint for promises made and broken, payments received, reminders sent, and customers replying through the portal.

Push invoices in

Create an invoice from any upstream system and DueTrail opens its collection case, under the same review-first rules an import follows.

Write back

Record a payment from your bank feed or accounting tool, or drop a note on a case from wherever your team actually talks.

One credential

A workspace API key, created in settings and revocable there. No OAuth dance, no client registration.

Getting started

  1. 1. Create a key

    Settings → Integrations → API keys. It is shown once; store it wherever your scenario keeps secrets.

  2. 2. Call the API

    Base URL https://duetrail.com/api/public/v1. The key goes in an Authorization: Bearer header.

    curl https://duetrail.com/api/public/v1/events \
      -H "Authorization: Bearer dt_live_..."
  3. 3. Keep the cursor

    Pass the next_since you get back as since on the following poll. Every event carries a stable id, so dedupe on that if a page boundary repeats one.

    {
      "events": [
        {
          "id": "3f1c…",
          "type": "payment_recorded",
          "case_id": "9ab2…",
          "created_at": "2026-08-23T09:14:22Z"
        }
      ],
      "next_since": "2026-08-23T09:14:22Z",
      "has_more": false
    }

Endpoints

MethodPathWhat it does
GET/meVerify a key and identify its workspace
GET/eventsNew collection events since a timestamp
GET/invoicesList and filter invoices
POST/invoicesCreate an invoice and open its case
GET/casesList and filter collection cases
POST/cases/{id}/paymentsRecord a payment
POST/cases/{id}/notesAdd a note to a case

Full request and response shapes are in the OpenAPI spec, which you can import straight into Make's Custom Apps or generate a client from.

Questions

How do I get a key?
In DueTrail, open Settings → Integrations and create one under API keys. The key is shown once at creation and cannot be retrieved afterwards — if you lose it, revoke it and create another.
Are there webhooks?
Not yet. Every connector platform supports polling triggers, so /events covers the same ground without either side managing subscription lifecycles. Outbound webhooks are the next step if enough people need sub-minute latency.
Why are amounts strings?
Because JSON numbers are floats, and money that round-trips through one comes back wrong. "1400.05" parsed as a float and written into an accounting system is a rounding bug, so the API keeps full decimal precision and leaves the parsing choice to you.
What are the rate limits?
120 requests per minute. A polling trigger checking every minute uses one of those, so the limit only bites on a scenario stuck in a loop.
Will the API change under me?
Fields may be added; nothing is renamed or removed within a version. The version is in the URL, so a future v2 would run alongside v1 rather than replacing it.