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. Create a key
Settings → Integrations → API keys. It is shown once; store it wherever your scenario keeps secrets.
2. Call the API
Base URL
https://duetrail.com/api/public/v1. The key goes in anAuthorization: Bearerheader.curl https://duetrail.com/api/public/v1/events \ -H "Authorization: Bearer dt_live_..."3. Keep the cursor
Pass the
next_sinceyou get back assinceon 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
| Method | Path | What it does |
|---|---|---|
| GET | /me | Verify a key and identify its workspace |
| GET | /events | New collection events since a timestamp |
| GET | /invoices | List and filter invoices |
| POST | /invoices | Create an invoice and open its case |
| GET | /cases | List and filter collection cases |
| POST | /cases/{id}/payments | Record a payment |
| POST | /cases/{id}/notes | Add 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.