/kyc

Advanced KYC flow endpoint to kick off the KYC verification process for a registered user_handle.

After creating a user_handle with /register, begin the KYC verification process with this endpoint. Check results with /get_verification or /get_verifications. This endpoint supports both ECDSA and JWT, but we recommend using JWT. this endpoint is not SDK-supported.

Note that if you call /kyc and you get a status other than passed or failed (like documents_required) the verification will expire after 30 days if it's not updated. Verification status will transition to failed and this will count against the max (2 per entity) number of attempts.

🚧

Advanced KYC ONLY

Only use this endpoint if you are utilizing the new Advanced KYC. Otherwise, use /request_kyc.

Request

Authorization / Authentication

Apps using Access Token Authorization

Use a valid access token in an Authorization: Bearer request header.

See Auth Token Overview for more details.

NOTE: Though we recommend using JWT, you can use this endpoint with ECDSA.

POST /0.2/kyc HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
Authorization: Bearer [GENERATED JWT TOKEN HERE]

{
  "header": {
    "created": 1234567890, //required
    "app_handle": "<your app_handle>", //required
    "user_handle":"user_handle", //required
    "version": "0.2", 
    "reference": "<your unique id>"
  }, 
  "flow": <uuid of KYC flow>, //required
}

***

HTTP/1.1 202 OK

{
  "success": True,
  "reference": reference_id,
  "message": "KYC successfully requested using flow <uuid>",
  "verification_ids": [{
      "entity": <user_handle>, 
      "verification_id": <verification_uuid>
    }],
  "flow_requested": <uuid of KYCFlow>,
  "checks_requested": [
  <list of strings, for example address, birthdate, etc>
  ]
}

Request Attributes

KeyTypeDescription
headerJSON objectRequired.

Required keys:

created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.
app_handle - your app handle
user_handle - the user_handle to go through KYC

Optional keys:

reference: Can be any value for your own reference. If not provided, one will be assigned.
version: Cannot be null if key is present. Valid values: 0.2, v0.2, V0.2
flowstringRequired.

UUID of the desired KYC Flow to use. Can be found in the KYC Flow details in the Console.

Responses

Status CodeSuccess AttributeDescriptionerror_code
202true
400falseEnd user data has not been entered into Sila's system.

"Missing required verification data: []"
400falseIDV for this entity has failed twice within the past 30 days.

"{user_handle} has reached the maximum number of attempts for ID verification. Further attempts are not allowed at this time."
KYC_ATTEMPTS_EXCEEDED
403falseWhen a KYC Flow exists but hasn't been approved by Compliance.

"KYC Flow <request_uuid> is not yet approved for use."
KYC_FLOW_NOT_APPROVED
403falseA KYC application has already been submitted for an entity, within the past 15 min.

"There has already been a pending KYC request submitted within the last 15 min for the entity."
KYC_REQUEST_DUPLICATE_PENDING
403falseThere is already a passed identity verification within the last 30 days.

"There has already ben a passed identity verification within the last {window}."
RECENTLY_PASSED_ID_VERIFICATION
404falseA non-existent KYC Flow UUID was entered.

"KYC flow <request_uuid> not found."
KYC_FLOW_DNE