The flow in five steps
1
Verify connectivity
GET /version with your Api-Key. It must return 200. Check the status code, not the body. If it fails, the problem is URL, network or proxy — there is nothing to debug on the API side yet.2
Prepare the capture
A photo of the document, well lit, without glare, with all four borders inside the frame. Base64 without the
data: prefix.3
Send the front
POST /front with info and image. Keep the returned uuid: it is the transaction identifier and the link to the back.4
Send the back (if the template has one)
If the front returned
hasBackSide: true, call POST /back with the same info, the back image, and the front’s uuid as relatedUuid.5
Decide with the rule in the positive
Front:
200 + "Operation end successfully." + id !== "unknown". Back: additionally frontBackTemplateValidation === true, then review crossMatchConfidence. Details in the introduction.The request body
Image requirements
To convert an image to base64:
The template catalog
Template ids follow
VU-<ISO3>-<TYPE>-<NN> — ID national id, IDF foreigner id, PA passport, DL driver’s license.
A
Bad relatedUuid error immediately after a successful front can be replication lag: wait one second and retry once. If it persists, the relatedUuid is genuinely wrong.Timeouts and retries
Before going to production
GET /versionreturns200from your production connectivity.- Your acceptance condition requires
200andmessage: "Operation end successfully."andid !== "unknown"(front), plusfrontBackTemplateValidation === true(back). - You tested a mismatched back and your system rejects it.
- You tested a photo with no document and your system asks for a new capture instead of accepting empty fields.
- Your captures are ≥ 480 × 480 px and the base64 has no
data:prefix. relatedUuidis sent on/backonly, never on/front.- Your logs never persist raw error bodies (the 422 echoes your request, image included) nor response images.
- Read timeout ≥ 30 s; retries only for sporadic
5xx, with backoff. - Your parser reads the fields declared by
GET /{templateId}/detailsfor each template you accept. - You send your own
infoper operation and log theuuidof every response.
Next: Responses
The extracted fields, the cross-validations between front and back, and the two 200s that do not approve anything.