mode is instant. GET /workflows lists yours with the mode of each,
along with how many credits each has left. The documents you send are read as they arrive and stored
nowhere, so nothing you run here leaves a file behind.
Reach for your uat key, whose token begins uat_, so the runs below come out of a uat workflow’s
credits rather than out of what you bought for real work. Whichever key you use, the keys below are
placeholders for your own, and a uat workflow’s key ends -uat.
The verification is real either way. There is no sandbox: your documents really are read, and really
are confirmed with the bodies that issued them.
{"detail": "..."}. A cell that fails raises on the response it already
kept in response, so response.json()["detail"] in a new cell says what went wrong.
1. See what the workflow asks for
Read the workflow first. Itsmode says whether you run it this way, and each step’s intake says how
it is answered: the slots its documents go in, with how many files each takes and in what formats, and
the values it takes.
slot where a step
has more than one. A step with no slots and no values, like cross-check, is answered from what the
steps before it established, and you send nothing for it.
2. Read your documents into the request
Each document carries its own bytes, base64-encoded, and names the step it answers.documents
with "kind": "cheque", since its slot names more than one kind of proof, and drop the bank entry
from steps.
3. Send it
One call carries the workflow, your reference for the subject, the values the steps take and every document. It answers with the finished record.record is the finished thing. Nothing to poll, and no
callback for this call.
The call used one credit, because the run it made both started and ended inside it:
402 instead of a record means the workflow has no credits left, and no run was made. Read the
workflow for credits.remaining and credits.expiring; retrying does not clear it.
A 409 means the workflow is already running as many verifications as it may at once. Each call holds
a place for as long as it takes to answer, so runs.limit is how many of these you may have in flight;
keep at most that many calls open at a time. See Credits and limits.
If a call never returns an answer at all, the run it started was still made. Find its record by the
reference you sent, in step 6 below, rather than sending the submission again: a second call is a
second verification and a second credit.
4. Read what it found
Every step reports a state and, where it did not pass cleanly, the reasons why.A run worth a second look
passed with a gap is the case worth routing to a person: every document is real and
confirmed at source, but something is not an exact match. A step that failed carries the reasons
it did not stand up. A step in error was never checked, because a source could not be reached or
there was no time left to reach it.
Cross-check scores are on the step’s outputs, if you want the numbers rather than the sentences:
5. Ask again with something different
Every call runs. Send the same subject with a different set and you get a second verification of them, answered on what that call carried.reference_user_id is your label for the subject here rather than a key, so several records carry it.
6. Find a run you did not see the answer to
A call that reached us ran the checks whether or not the reply got back to you. List by the reference to find it.GET /verifications/{verification_id}.
7. See what a bad submission does
Leave out a document the workflow requires and the request is refused before anything runs.422 covers a
slot you filled only part of, which reads gst: slot 'gst-certificate' needs 2 more file(s), a step
given both values and a document, and a document naming a step your workflow does not declare. Correct
the request and send it again.
8. Purge it
The documents were never kept, but the values you sent and what was read off each file are on the record. Purge deletes them and closes it for audit.The record you just read
The finished record behind the run above, from thevendor-check workflow. Yours differs: which steps
a verification runs comes from the workflow configured for your integration. The envelope around them
is the same for everyone.
POST /verifications/instant
POST /verifications/instant
- Nobody signs in, so
mobile,return_urlandjourney_urlare null, andcallbackis null too: the reply carried the result, so there was nothing to hand off. run_requested_atis when the request arrived, andcompleted_atis a minute or so later. The whole run happened between them, inside the call.udyamisnot-supplied. Nothing arrived for it and it is optional, so the run closed over it.collectedisnull, no source was called, and it is not a verdict about the business - only the absence of a check.- The cross-check passed with a gap. The bank returned
AVESCO HOSPITEXwhere the business is registered asAVESCO HOSPITEX PRIVATE LIMITED: close enough not to be a different business, not close enough to call an exact match.outputs.referencenames which name it scored against andoutputs.matchescarries the score behind every check, so you can route on the number rather than the sentence. - The documents carry no bytes you can reach. Each one names its step, slot, type, size and hash, which is what the record keeps once the files are gone.
When you move from trying it to building against it, read
Instant for what is decided for you and why, and
Going live before your first real subject.
