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.

You can also provide through the object meta: meta={"abc":"123"}. Thiss will be stored in our servers and we will provide it back to you so you can reference it when is needed. It can be for example your internal user id.

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/ Auth Header X-Company-App-Temporary-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:


  {
    "country": "ESP",
    "city": "BARCELONA",
    "email": "8d481b57-37b3-4553-9797-40e845a19b92@siltapp.com",
    "id": "08cb1e24-25df-456e-b07b-db7f2fb929fe",
    "nationality": "ESP",
    "last_name": "PEREZ MARTI",
    "sex": "M",
    "first_name": "MARC",
    "address": "C. ESCIPION 22BIS ENT 04",
    "birth_date": "1992-09-18",
    "company_app_meta": null,
    "selfie": {
        "picture_validation_status": "SUCCESS",
        "created_at": "2021-10-25T08:00:16.986789+00:00",
        "file_url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/d5e1a040-11b3-47c1-a6b8-f04be025a500.jpg?AWSAccessKeyId=AKIAYUXNO2AH56LUSVWR&Signature=dNpBcWeru8hwVrnVbwOvN0CThOg%3D&Expires=1635149204",
        "file_type": "VERIFICATION_SELFIE"
    },
    "national_id": {
        "country": "ESP",
        "city": "BARCELONA",
        "created_at": "2021-10-25T08:00:22.614666+00:00",
        "id": "b1d3a4cd-6752-4f61-8b50-c1046295b447",
        "document_number": "47924637C",
        "expiration_date": "2023-08-02",
        "nationality": "ESP",
        "issue_date": null,
        "last_name": "PEREZ MARTI",
        "license_types": null,
        "sex": "M",
        "first_name": "MARC",
        "address": "C. ESCIPION 22BIS ENT 04",
        "updated_at": "2021-10-25T08:00:22.712704+00:00",
        "birth_date": "1992-09-18",
        "files": [
            {
                "picture_validation_status": "SUCCESS",
                "created_at": "2021-10-25T08:00:05.878820+00:00",
                "file_url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/ff24ad96-f96b-48f6-a115-1bc2447ca798.jpg?AWSAccessKeyId=AKIAYUXNO2AH56LUSVWR&Signature=DPXnGrPjivqmfG1niOdyE%2FCGhiQ%3D&Expires=1635149204",
                "file_type": "NATIONAL_ID_BACK"
            },
            {
                "picture_validation_status": "SUCCESS",
                "created_at": "2021-10-25T07:59:39.698263+00:00",
                "file_url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/7834c0e8-192c-43b3-9f01-d82e784a3ac7.jpg?AWSAccessKeyId=AKIAYUXNO2AH56LUSVWR&Signature=fsznyQILyUJduOQwM6%2F7cP1v3X8%3D&Expires=1635149204",
                "file_type": "NATIONAL_ID_FRONT"
            }
        ]
    },
    "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, for better UX) Backend: Webhook to get notifications after user status update

When the status of a document of a user is created or updated, we can notify you to your Backend with a webhook pointing to the endpoint you provide us.

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 you have changed the status of a document 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:


    {
      "processing_attempt": {
        "owner_company_app_id": "1",
        "status": "SUCCESS",
        "created_at": "2021-10-08T14:05:27.021579+00:00",
        "updated_at": "2021-10-08T14:05:31.137874+00:00",
        "manual_review_status": null,
        "owner_user": {
          "city": null,
          "national_id_id": null,
          "driving_license_id": null,
          "nationality": null,
          "birth_date": null,
          "passport_id": null,
          "email": "4af265ab-af27-43e8-b936-95e27dc377eb@siltapp.com",
          "first_name": null,
          "last_name": null,
          "id": "c30fd54c-1e1f-40a5-9fcb-5a7446242dc9",
          "sex": null,
          "country": null,
          "address": null
        },
        "core_module_executions": [
          {
            "status": "SUCCESS",
            "errors": [],
            "output": {
              "sex": "M",
              "city": "BARCELONA",
              "name": "MARC",
              "number": "44556677A",
              "address": "PLAZA CATALUÑA 1",
              "country": "ESP",
              "surname": "PEREZ MARTI",
              "birth_date": "1970-09-18",
              "issue_date": null,
              "nationality": "ESP",
              "license_types": null,
              "expiration_date": "2025-12-25"
            },
            "type": "OCR"
          },
          {
            "status": "SUCCESS",
            "errors": [],
            "output": null,
            "type": "FACE_MATCHER"
          }
        ],
        "document_type": "NATIONAL_ID",
        "id": "ba36b6c0-41ce-45c6-8015-4cc69c069de0",
        "type": "USER_DOCUMENT_VERIFICATION"
      },
      "files": [
        {
          "type": "VERIFICATION_SELFIE",
          "url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/1a2b3c3d-7ea4-4243-9e71-7a883629e303.jpg?AWSAccessKeyId=AKIAY...&Signature=TRB43...&Expires=1633702231"
        },
        {
          "type": "NATIONAL_ID_BACK",
          "url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/1a2b3c3d-a7ec-472f-9136-86d6a47ce4e6.jpg?AWSAccessKeyId=AKIAYU...&Signature=5J3xuCZm...&Expires=1633702231"
        },
        {
          "type": "NATIONAL_ID_FRONT",
          "url": "https://pro-silt-resources.s3.amazonaws.com/resource-files/1a2b3c3d-57b6-4d7c-a372-41be6c5df33a.jpg?AWSAccessKeyId=AKIAYUXN...&Signature=Zu8lquS5Y...&Expires=1633702231"
        }
      ],
      "user_meta": {"abc":"123"}
    }