Skip to main content
Create the identity application, attach the required photos or documents, then call ReadyForApproval to start review. ApplyId alone does not complete this sequence. For account and key creation in the sandbox, start with the Agent API quickstart. The requests below work with your provider’s HTTPS host and requirements.

Before you start

You need an enabled account, its JWT and account password, and the signing key used for the application. Retain the key’s keyId, localName, namespace, and key password. Keep credentials and identity evidence in your backend. Send Referer on every Agent API request, including backend calls. Replace the host and other placeholders in the examples below.

1. Get the application requirements

The response includes Required property names, nrPhotos, peerReview, and nrReviewers. Use these with the selected review provider’s requirements to decide which properties and attachments to collect. Ask the provider which document types and image formats it accepts; a photo count does not identify the required documents.

2. Create the application

Submit the required properties using Apply ID. The quickstart’s application step shows the complete request and signature calculation; replace its test properties with the ones required for your application. Retain the returned Identity.id as legalId. Attachments must be added to your own identity while Identity.status.state is Created, before submitting it for review.

3. Prepare each attachment

Read the file as bytes and Base64-encode those bytes. Use plain Base64 without a data:image/...;base64, prefix. Send one file per request. Automated review services can use the filename to recognize a document. Confirm which of these names your reviewer requires: Use the extension matching your file format, for example IdCardFront.png. Upload only the evidence needed for the selected review method. See the original attachment reference for recognized names.

4. Sign and upload the attachment

Define HMAC(secret, message) as Base64-encoded HMAC-SHA-256 using the UTF-8 secret and UTF-8 message. Generate a fresh nonce from 32 random bytes encoded as Base64 for each upload. Build these strings by joining the actual values with : in exactly this order:
The host must match the request’s HTTP host, without the scheme or path. Sign the exact filename, content type, Base64 value, and identity identifier you send. Do not change the file or re-encode it after signing.
Add ID Attachment signs the file with the selected key, attaches it to the application, and returns the updated Identity. You do not need a separate SignData call or a multipart upload. Check the updated identity for the attachment reference and retain it with legalId. Repeat for each required file, using a fresh nonce and request signature. Wait for every upload to succeed before continuing.

5. Mark the application ready for approval

Call ReadyForApproval after all required properties and attachments are present to start the configured review, even when no attachments are required. In the sandbox, an identity may already be automatically approved. If its current state is Approved, skip ReadyForApproval; it requires an identity still in Created state. Using the same keyMessage and a new nonce, calculate:
Ready For Approval returns Identity. The request starts review; its HTTP success does not guarantee approval.

6. Observe the result

Read Identity.status.state. Continue to signing or other identity-dependent actions only after the identity is Approved. While review is pending, poll at a bounded interval or use your Neuron’s event mechanism. See Observe Legal Identity review. The signature formulas and request order are checked locally. Upload and review outcomes still need testing with your provider.

Recover from an incomplete application

Keep attachment bytes, identity documents, passwords, and JWTs out of logs, URLs, analytics, and error reports. Persist identity and attachment references for recovery.