Idempotency
Use external_ref so retries don't create duplicate applications.
POST /intake is the only idempotent write. Pass external_ref carrying your
own identifier, typically the application id in the LOS or core banking system.
When an external_ref already exists for the organization, intake returns the
existing application with HTTP 200 and idempotent: true, and skips the
duplicate file upload.
A fresh create returns 201. So the status code tells you which happened:
| Status | Meaning |
|---|---|
201 | New application created |
200 with idempotent: true | Existing application returned, files not re-uploaded |
POST /applications is not idempotent
Idempotency belongs to /intake. POST /applications creates a new
application every time it is called, so a retry after a network timeout will
duplicate. Prefer /intake for anything driven by an external system.

