Answer and resume
Authentication
Path parameters
Request
Response
The application this execution was launched with — the one your secret belongs to. Worth keeping when your product uses more than one, a sandbox and a production app being the usual case: every record and every event we send carries it.
The customer_id you supplied when the execution was initialised, returned as you sent it — so an answer can be routed to the right case with no lookup on your side.
How the call that created the execution was authorised: an application secret for a server-to-server call, or a user session when it was launched from a console. An audit field — it says who started the run, not how it went.
The precise cause of the state. Every reason belongs to exactly one status_code family and its wording never changes, so it is safe to branch on — read status_code when the family is all you need, and see the lifecycle for what each one asks of you.
- Reasons for
ONGOING:ACCEPTED: queued, nothing has started yet.WAITING: picked up, the engine is warming up.RUNNING: logged in and extracting.ASYNC_WAIT: waiting on the source to produce something on its own schedule.
- Reasons for
ACTION_REQUIRED:MFA_REQUIRED: the source asked for a strong-authentication factor.INPUT_REQUIRED: the engine needs another field it could not know in advance.
- Reasons for
COMPLETED:COMPLETED: every requested feature answered.
- Reasons for
PARTIAL:PARTIAL: finished, with some features answered and others not.
- Reasons for
FAILED:FAILED: finished, and nothing could be retrieved.
- Reasons for
ABORTED:CLIENT_CANCELLED: you aborted it.USER_CANCELLED: your customer abandoned it.ACTION_TIMEOUT: nobody answered the challenge in time.TIMEOUT: the run exceeded itsexecution_timeout.CUSTOMER_INTERVENTION_REQUIRED: a person was needed and none was available.SYSTEM_CANCELLED: the platform stopped it.
- Reasons for
AUTH_ERROR— the source refused the login, and retrying the same values will not help:INCORRECT_CREDENTIALS: rejected. Ask your customer for them again.INCORRECT_MFA: the challenge was answered wrongly.BLOCKED_USER: the institution has blocked the access.FRIEZED_CREDENTIALS: the access is temporarily frozen.CHANGE_PASSWORD: the institution requires a password change first.MANUAL_INTERVENTION: the person must do something in the source’s own channel.INCOMPATIBLE_ACCESS: this access does not work through this engine’s channel.DUPLICATED_SESSION: another session is already open for that user.
- Reasons for
UNHANDLED_AUTH_ERROR:UNHANDLED_AUTH_ERROR: the login failed in a way we could not classify.
- Reasons for
CONFIGURATION_ERROR— the request itself, so retrying it unchanged fails the same way:BAD_CONFIGURATIONS: a feature configuration the engine does not accept.INCORRECT_PARAMETERS_FORMAT: the parameters did not match the engine’s form.INCORRECT_RESUME_FORMAT: the resume body did not match the published form.ENCRYPTION_ERROR: an encrypted value could not be opened.T10N_FORBIDDEN: your application may not tokenize.T10N_NOT_AVAILABLE: this engine does not support tokenization.T10N_REJECTED: the token is revoked or broken.T10N_EXCEPTION: the stored credentials could not be read.BAD_PROXY_CONFIGURATION: ours, not yours — contact support.
- Reasons for
TEMPORARY_ERROR— nothing is wrong with your request, retry later:OUT_OF_SERVICE: the source itself is unavailable.ENGINE_UNAVAILABLE: the engine is not serving right now.ALREADY_EXECUTING: another execution is already running for that access.ENGINE_BANNED,AUTO_CAPTCHA_ERROR,PROXY_ERROR,NETWORK_ERROR,INTERNAL_ERROR: the run could not be set up. Ours, and transient.
AUTH_OK belongs to this vocabulary too, but it only ever appears in authentication_status: a login that succeeds leaves the execution ONGOING.
The family a state belongs to, and the value to branch on: it is always present, and every status_reason belongs to exactly one of these. The precise cause lives in the reason — read it when the family is not specific enough to decide.
Allowed values are:
ONGOING: The execution is ongoingACTION_REQUIRED: The execution is waiting for an inputCOMPLETED: The execution has been completedABORTED: The execution has been abortedCONFIGURATION_ERROR: The execution has been rejected due to a configuration errorPARTIAL: The execution has been completed with errorsTEMPORARY_ERROR: The execution cannot be processed due to a temporary errorAUTH_ERROR: The execution failed due to an authentication errorUNHANDLED_AUTH_ERROR: The execution failed during the login because of an unhandled errorFAILED: The execution has failed
The handle to this execution, and the one value worth storing from this response: you poll it for the state, you match it against the webhooks we deliver, and every results endpoint is addressed by it.
Present only when the execution was created. A request refused before that — a collision, an invalid configuration — answers without it.
The session this execution belongs to. An execution launched on its own is its own session, so today the two values usually match — treat them as two independent identifiers anyway: an execution can be one step of a wider journey, and a run you are pointed at is not always the one you asked for.
Address results and state by execution_id. Like it, this is only present when an execution was created.
The reference you attached when the execution was started, if you sent one — echoed so your own identifier travels beside ours, on this response and on every event.
A human-readable note, when there is one to add. It is diagnostic and never a contract: do not parse it and do not show it to your end user as it comes — branch on status_reason and write your own copy.