Skip to content

KYC Acceptance

Background and Timing

Purpose

To simplify the KYC process in Cabital. Partner can provide KYC materials in advance. Customers can skip the step of entering "basic information" and "upload ID documents" by themselves.

Mechanism

Whether the ordering of following events, system will trigger KYC Match automatically, match the partner and Cabital KYC materials, no need to call the KYC Match API again.

  • Partner provide the KYC materials in advance.
  • Customer complete the KYC successfully at Cabital.

Timing

When partner receive webhook callback status is INITIALIZED, partner can call this API to submit the customer's KYC materials to Cabital.

Warning

Once the request is successful, the customer's KYC materials can't change anymore, the following requests will not update the data.


POSThttps://connect.cabital.com/api/v1/accounts/{account_id}/kycinfo/submit

User Account Status

  • Linked
  • KYC Pass

Request Path Parameters

Parameter Required Description
account_id Yes Customer account ID provided by Cabital.

Request Body Parameters

Content Type: multipart/form-data

Parameter Required Type Description
metadata Yes object Customer's KYC materials, please reference metadata structure.
files No file The identity document with front and back sides.
  • The system recognizes the front and back according to the file order: the first one is front, the second one is back, and the rest of the files will be ignored.
  • File formats only accept jpg, png or webp .

metadata structure

Parameter Required Type Description
idDocType Yes string ID document type, only support following types:
  • ID_CARD: ID card
  • PASSPORT: Passport
  • DRIVER_LICENSE: Driver license
  • RESIDENCE_PERMIT: Residence permit
  • OTHER: Other
idIssuingCountry Yes string ID document issuing three-letter country code ISO 3166-1
number Yes string ID number
dob Yes string Date of birth, format: YYYY-MM-DD
firstName Yes string First name
lastName Yes string Last name
issuedDate No string ID issue date, format: YYYY-MM-DD
validUntil No string ID valid date, format: YYYY-MM-DD
middleName No string Middle name
legalName No string Legal name
placeOfBirth No string Place of birth
resident No object Residence information, reference resident structure
additionalInfo No object Additional information

resident structure

Parameter Type Description
postalCode string Postal code
country string Three-letter country code ISO 3166-1
state string State
city string City
streetLine1 string Street line 1
streetLine2 string Street line 2

Response Parameters

Parameter Type Description
Metadata object Customer's KYC materials, please reference metadata structure

Example

Request Data

curl -X POST 'https://connect.cabital.com/api/v1/accounts/7d1d96fc-ae29-496c-a474-c37089f1b6c7/kycinfo/submit' \
--form 'metadata="{
    \"idDocType\": \"ID_CARD\",
    \"idIssuingCountry\": \"TWN\",
    \"number\": \"A164163070\",
    \"dob\": \"1987-07-30\",
    \"issuedDate\": \"2022-07-01\",
    \"validUntil\": \"2023-12-31\",
    \"firstName\": \"John\",
    \"middleName\": \"Michael\",
    \"lastName\": \"Doe\",
    \"placeOfBirth\": \"Taipei\",
    \"resident\": {
      \"postalCode\": \"10601\",
      \"country\": \"Taiwan\",
      \"city\": \"Taipei city\",
      \"streetLine1\": \"Street line 1\",
      \"streetLine2\": \"Street line 2\"
    },
    \"additionalInfo\": { \"job\": \"engineer\" }
  }"

Response Data (Success 201 Created)

{
  "Metadata": {
    "idDocType": "ID_CARD",
    "idIssuingCountry": "TWN",
    "number": "A164163070",
    "dob": "1987-07-30",
    "issuedDate": "2022-07-01",
    "validUntil": "2023-12-31",
    "firstName": "John",
    "middleName": "Michael",
    "lastName": "Doe",
    "placeOfBirth": "Taipei",
    "resident": {
      "postalCode": "10601",
      "country": "Taiwan",
      "city": "Taipei city",
      "streetLine1": "Street line 1",
      "streetLine2": "Street line 2"
    },
    "additionalInfo": { "job": "engineer" }
  }
}

Response Data (Failed 400 Bad Request)

1
2
3
4
{
  "code":"PA044",
  "message":"Account not found."
}