Users

Advance the user application

POSThttps://api.firstleeward.com/v0/users/:id/application

Advances the user KYC application. Only valid while the application is in a pending state. Which verification method applies is fixed by your project configuration rather than chosen per request, and determines the request you send. With no body (First Leeward-run verification), First Leeward returns a provider SDK token in nextAction for the client to complete and approval arrives later via webhook. For Sumsub Token Sharing, a share token is ingested and the user moves to IN_REVIEW; the final decision arrives on the same compliance webhook as Managed KYC. For a full verified data pack, the response nextAction lists the supporting documents to upload via POST /users/:id/application/documents. Send an Idempotency-Key to safely retry without re-consuming a single-use share token.

Authorizations

Authorizationstring · headerrequired

API key as Bearer token, e.g. Bearer YOUR_API_KEY

Headers

Leeward-Versionenum<string>required

API version (YYYY-MM-DD). Available option: 2026-09-18

Idempotency-Keystring

Unique key for safely retrying this request. Up to 255 characters; we recommend a UUIDv4. The first request executes and its response is cached; subsequent requests with the same key replay the cached response (24h retention).

Path Parameters

idstring<uuid>required

User ID

Body

application/json

Option 1 · Managed KYC
methodstringrequired
Option 2 · Sumsub Token Sharing
methodstringrequired
tokenstringrequired

Sumsub applicant share token

Option 3 · Universal KYC
methodstringrequired
providerobjectrequired

The verification the applicant completed

Show child attributes
namestringrequired

Name of the KYC provider that performed the verification

statusstringrequired

Overall verification outcome reported by the provider

Available options:APPROVEDREJECTEDWARNINGNOT_EXECUTED
dataobject[]required

Raw verification result payload from the provider

identityobjectrequired

Verified identity of the applicant

Show child attributes
firstNamestringrequired

Given name

middleNamestring

Middle name

lastNamestring

Family name

fullNamestringrequired

Full legal name as verified

dateOfBirthstring<date>required

Date of birth (YYYY-MM-DD)

nationalitystringrequired

Nationality

documentsobjectrequired

Metadata for the supporting documents uploaded separately

Show child attributes
idDocumentobjectrequired

Government-issued identity document

Show child attributes
typestringrequired

Identity document type

Available options:PASSPORTID_CARDDRIVERS_LICENCERESIDENCE_PERMIT
numberstringrequired

Document number as shown on the document

countrystringrequired

Country that issued the document

issuingDatestring<date>

Date the document was issued (YYYY-MM-DD), when available

expiryDatestring<date>

Date the document expires (YYYY-MM-DD), when applicable

proofOfAddressobjectrequired

Proof-of-address document

Show child attributes
typestringrequired

Proof-of-address document type

Available options:ID_CARDDRIVERS_LICENCERESIDENCE_PERMITUTILITY_BILLUTILITY_BILL2
numberstringrequired

Document number as shown on the document

countrystringrequired

Country that issued the document

issuingDatestring<date>

Date the document was issued (YYYY-MM-DD), when available

expiryDatestring<date>

Date the document expires (YYYY-MM-DD), when applicable

addressobjectrequired

Residential address of the applicant

Show child attributes
countrystringrequired

Country

postCodestring

Postal or ZIP code

streetstring

Street

townstring

Town or city

subStreetstring

Additional street line

statestring

State, province, or region

buildingNamestring

Building name

flatNumberstring

Flat, unit, or apartment number

buildingNumberstring

Building or house number

formattedAddressstringrequired

Full address as a single formatted line

livenessobjectrequired

Result of the applicant liveness check

Show child attributes
resultstringrequired

Liveness-check outcome

Available options:APPROVEDREJECTEDWARNINGNOT_EXECUTED
checkedAtstring<date-time>

When the liveness check was performed (ISO 8601). Required unless the check was not executed.

jurisdictionDetailsobject

Jurisdiction-specific KYC data required for certain BIN countries

Show child attributes
jurisdictionstringrequired
countryOfBirthstringrequired

Country of birth

economicActivitystringrequired

The applicant's occupation or economic activity

authorityIdIssuerstringrequired

Issuer of the government identity document

Available options:INESRE
uboAttestationbooleanrequired

Whether the applicant has attested their ultimate beneficial ownership status

phonestring

Contact phone number. Required for Mexican nationals.

emailstring<email>

Contact email address. Required for Mexican nationals.

taxIdstring

Mexican tax identifier (RFC). Required for Mexican nationals.

curpstring

Mexican population registry code (CURP). Required for Mexican nationals.

Option 4 · KYC Attestation
methodstringrequired
providerobjectrequired

The verification the applicant completed

Show child attributes
namestringrequired

Name of the KYC provider that performed the verification

recordIdstringrequired

Identifier of the verification record in the provider's system

identityobjectrequired

Verified identity of the applicant

Show child attributes
firstNamestringrequired

Given name

lastNamestringrequired

Family name

dateOfBirthstring<date>required

Date of birth (YYYY-MM-DD)

idDocumentobjectrequired

Government-issued identity document

Show child attributes
typestringrequired

Identity document type

Available options:PASSPORTID_CARDDRIVERS_LICENCE
numberstringrequired

Document number

countrystringrequired

Issuing country

addressobjectrequired

Residential address of the applicant

Show child attributes
line1stringrequired

Address line 1

line2stringrequired

Address line 2. Must not be empty; when the address has no second line, use the district, area, or building name.

citystringrequired

City

postCodestring

Postal or ZIP code

countrystringrequired

Country

Response

200Application state after advancing
providerstring

Deprecated: use nextAction.provider. Populated only when nextAction.type is PROVIDER_SDK.

sdkTokenstring

Deprecated: use nextAction.sdkToken. Populated only when nextAction.type is PROVIDER_SDK.

statusstringrequired

Current KYC application status

Available options:NOT_STARTEDAWAITING_DOCUMENTSIN_REVIEWAPPROVEDREJECTEDRETRY_REQUIRED
nextActionobject | nullrequired

Action the client must take next, or null if none remains

Show child attributes
Option 1 · Provider SDK
typestringrequired
providerstringrequired
Available options:SUMSUB
sdkTokenstringrequired

Token for initializing the provider verification widget

Option 2 · Document upload
typestringrequired
documentsobject[]required

Supporting documents to upload, each with its current upload state

Show child attributes
typestringrequired

Supporting document category

Available options:IDENTITYPROOF_OF_ADDRESSCURP
statusstringrequired

Review state of this document

Available options:PENDINGUPLOADEDRETRY_REQUIREDREJECTED
400Response for status 400
Option 1 · InvalidApplicationStatusError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 2 · SumsubTokenInvalidError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 3 · InvalidJurisdictionDataError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 4 · ApplicationSubmissionRejectedError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
403The requested verification method is not enabled for this project
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
404User not found
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
409Response for status 409
Option 1 · UserApplicationFinalizingError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 2 · SumsubTokenAlreadyUsedError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
422Response for status 422
Option 1 · SumsubApplicantNotApprovedError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 2 · SumsubApplicantIncompleteError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
Option 3 · SumsubTokenLevelMismatchError
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
503Service is temporarily unavailable. Please retry.
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired