SDK INTEGRATION

1. Email us: Get your company app Id

Request your company_app_id to the Silt Team at the email address customers@getsilt.com. This Id is unique for you, and it will be the same that the one required in the API integration flow.

2. Frontend: Add SDK on mobile with company app id

iOS
Android
Web

iOS: https://github.com/getsilt/ios-sdk

What happens next on Native Apps integration: On-click mobile sdk will open a webview using the company app id. Once verified the webview will close and return the silt_user_id and a company_app_token. You can see more info in the examples provided in the SDK code.

3. Frontend: Send silt_user_id & company_app_token to your BE

Make the POST request to your own backend described in step 4. This request requires as parameters silt_user_id & company_app_token.

4. Backend: Create an endpoint to receive silt_user_id & company_app_token from your FE

Create a backend endpoint to receive the silt_user_id and company_app_token (as described in step 3). After receiving this, you have the data required to ask the info of that user to Silt's backend as described in step 5.

5. Backend: Check user's verification status to Silt

Use company_app_token against Silt's backend to the endpoint

GET /v1/users/{silt_user_id}/status/?token={company_app_token}

Check status: SUCCESS | MANUAL_REVIEW | PENDING | ERROR to know if a user is verified or not. Use the national_id | passport | driving_license objects to retreive the data extracted from the documents.

200 Response:


    {
      "address": "PLAÇA CATALUNYA 1",
      "birth_date": "1988-09-18",
      "city": "BARCELONA",
      "last_name": "PEREZ MARTI",
      "nationality": "ESP",
      "email": "4af265ab-af27-43e8-b936-95e27dc377eb@siltapp.com",
      "first_name": "MARC",
      "country": "ESP",
      "id": user id uuid typed,
      "sex": "M",
      "company_app_meta": null,
      "national_id": {
          "country": "ESP",
          "birth_date": "1992-09-18",
          "address": "C. ESCIPION 22BIS ENT 04",
          "document_number": "44556677A",
          "city": "BARCELONA",
          "expiration_date": "2023-08-02",
          "last_name": "PEREZ MARTI",
          "nationality": "ESP",
          "created_at": "2021-10-08T14:05:31.610165+00:00",
          "first_name": "MARC",
          "issue_date": null,
          "id": document id uuid typed,
          "updated_at": "2021-10-08T14:05:31.623141+00:00",
          "sex": "M",
          "license_types": null
      },
      "driving_license": null,
      "passport": null,
      "missing_verified_documents": [],
      "status": "SUCCESS"
    }
      

You are not required to store any of these, just what suits you best.

6. (Optional, only if needed) Frontend/Backend: Get document files temporary URLs

This endpoint will return temporary accessible urls to retrieve the pictures and videos of the document.

Use company_app_token and document id(retrieved in the response of step 5)
against Silt's backend endpoint:

GET /v1/documents/{document_id}/files/`?token={company_app_token}

200 Response:


    {
      file_front: https://...,
      file_back: https://...,
      file_verification: https://... (this could be a video if you are using video verification)
    }
  

7. (Optional, for better UX) Backend: Webhook to get notifications after manual reviews

Some cases (less than 5%) require a manual verification. For obvious reasons, we cannot verify users instantly this way. We inform the user by email once we have finished the verification verification, but you can also be notified once this happens. When an expert in Silt has changed the status of a document of a user from Manual review PENDING to ERROR or SUCCESS we could make a POST request to the endpoint you provide us. You will only need to create a POST endpoint that our backend will call with this body:


    { 
      "token": tmp_token.token, 
      "user_id": obj.owner_id,
      "manual_review_status": obj.manual_review_status 
    }