API ReferencePartner API

Submissions

GET
/v1/submissions

Lists submissions for the authenticated API client, newest first.

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Query Parameters

limit?integer

Maximum number of items to return. Values above 100 are clamped to 100.

Range1 <= value <= 100
Default50
cursor?string

Opaque pagination cursor from the previous page's next_cursor.

external_submission_id?string

Return only the submission with this exact external id.

Length1 <= length <= 255
status?string

Return only submissions currently in this status.

Value in

  • "collecting_documents"
  • "evaluating"
  • "completed"
  • "failed"
  • "canceled"
template_id?string

Return only submissions created from this template (builtin key or custom uuid).

created_at_gte?string

Return only submissions created at or after this instant.

Formatdate-time
created_at_lt?string

Return only submissions created before this instant.

Formatdate-time

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/submissions"
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "display_id": "string",      "template_id": "string",      "external_submission_id": "string",      "status": "collecting_documents",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ],  "next_cursor": "string"}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
POST
/v1/submissions

Creates a credit submission from a template. Idempotent on external_submission_id: if a submission with the same external id already exists for this API client, the existing submission is returned with 200 OK and the request body's other fields are ignored.

A 201 Created response means authorization has fully propagated and the submission is immediately usable by subsequent calls. If propagation times out, the request fails with 503 authz_not_applied_yet; retry with the same external_submission_id.

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Request Body

application/json

Submission attributes supplied by the partner.

TypeScript Definitions

Use the request body type in TypeScript.

Attributes used to create an idempotent credit submission.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/submissions" \  -H "Content-Type: application/json" \  -d '{    "template_id": "6f5f0f0a-1a11-4a7e-9c9e-9a1b0c3d2e4f",    "external_submission_id": "loan-2026-000451",    "metadata": {      "branch": "muc-01"    },    "language": "de"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "display_id": "string",  "template_id": "string",  "external_submission_id": "string",  "status": "collecting_documents",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "consistency": {    "authz": "applied"  },  "metadata": {}}
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "display_id": "string",  "template_id": "string",  "external_submission_id": "string",  "status": "collecting_documents",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "consistency": {    "authz": "applied"  },  "metadata": {}}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
GET
/v1/submissions/{submission_id}

Returns the full submission detail: document slots with their uploads, uploads not assigned to any slot, and a projection of the latest evaluation (when one exists).

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Path Parameters

submission_id*string

The submission's AirCredit id (Submission.id).

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "display_id": "string",  "template_id": "string",  "external_submission_id": "string",  "status": "collecting_documents",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "metadata": {},  "document_slots": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "key": "string",      "label": "string",      "required": true,      "status": "missing",      "uploads": [        {          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",          "external_file_id": "string",          "upload_status": "processing",          "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",          "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11",          "filename": "string",          "content_type": "string",          "failure": {            "code": "string",            "message": "string"          },          "created_at": "2019-08-24T14:15:22Z"        }      ]    }  ],  "unassigned_uploads": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "external_file_id": "string",      "upload_status": "processing",      "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",      "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11",      "filename": "string",      "content_type": "string",      "failure": {        "code": "string",        "message": "string"      },      "created_at": "2019-08-24T14:15:22Z"    }  ],  "latest_evaluation": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "kind": "basic",    "status": "queued",    "stage_label": "string",    "progress_percent": 0,    "input_file_ids": [      "e3aab2b7-8063-4c51-a985-2a562422618e"    ],    "failure": {      "code": "string",      "message": "string"    },    "started_at": "2019-08-24T14:15:22Z",    "finished_at": "2019-08-24T14:15:22Z",    "result": {      "documents": [        {          "upload_id": "f2ef591b-135b-46fa-a604-3d4fda5bfbfb",          "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",          "external_file_id": "string",          "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11",          "document_types": [            "string"          ],          "readability": {            "status": "passed"          }        }      ],      "fields": [        {          "data_field_id": "string",          "key": "anrede",          "label": "string",          "status": "succeeded",          "value": null,          "confidence": 0,          "citations": [            {              "upload_id": "f2ef591b-135b-46fa-a604-3d4fda5bfbfb",              "external_file_id": "string",              "pages": [                1              ],              "excerpt": "string"            }          ]        }      ],      "checks": [        {          "check_id": "string",          "key": "business_dd.company_legal_identification",          "title": "string",          "status": "fulfilled",          "confidence": 0,          "citations": [            {              "upload_id": "f2ef591b-135b-46fa-a604-3d4fda5bfbfb",              "external_file_id": "string",              "pages": [                1              ],              "excerpt": "string"            }          ],          "reasoning_summary": "string"        }      ],      "summary": {        "outcome": "outcome_uncertain",        "recommendation": "unknown",        "risk_band": "unknown"      }    }  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
PATCH
/v1/submissions/{submission_id}

Updates the partner-owned attributes of a submission. Only metadata can be changed; it is replaced as a whole (there is no deep merge).

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Path Parameters

submission_id*string

The submission's AirCredit id (Submission.id).

Formatuuid

Request Body

application/json

The attributes to replace.

TypeScript Definitions

Use the request body type in TypeScript.

Partner-updatable submission attributes.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "metadata": {}  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "display_id": "string",  "template_id": "string",  "external_submission_id": "string",  "status": "collecting_documents",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "consistency": {    "authz": "applied"  },  "metadata": {}}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
DELETE
/v1/submissions/{submission_id}

Permanently deletes the submission, its uploads, and all derived evaluation data. A running evaluation is canceled first. Deletion is asynchronous: while the purge runs, reads of the submission fail with 409 partner_data_purge_in_progress; afterwards they return 404. Events already emitted for the submission remain readable until their retention window expires.

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Path Parameters

submission_id*string

The submission's AirCredit id (Submission.id).

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
POST
/v1/submissions/{submission_id}/cancel

Cancels the submission: a queued or running evaluation is canceled (emitting evaluation.canceled), no new uploads or evaluations are accepted, and the submission's status becomes canceled (terminal). The submission and its data remain readable; use delete_submission to remove them. Canceling an already-canceled submission is a no-op returning 200 OK. Completed submissions cannot be canceled (409 submission_not_cancelable).

Authorization

bearerAuth
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <api key>.

In: header

Path Parameters

submission_id*string

The submission's AirCredit id (Submission.id).

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "display_id": "string",  "template_id": "string",  "external_submission_id": "string",  "status": "collecting_documents",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "consistency": {    "authz": "applied"  },  "metadata": {}}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}
{  "error": {    "code": "invalid_field",    "message": "external_submission_id must not be empty",    "param": "external_submission_id",    "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d"  }}