Skip to content

Partner Conducted KYC

In the Partner conducted KYC mode, the partner collects and verifies the KYC information from cardholders, which is then supplied to Immersive via API (name, date of birth, ID details, etc).

Although Immersive still performs KYC checks on these details, we rely on the partner for verification of document scans and the cardholder's identity.

Below, we've outlined the steps for completion of this verification process, assuming all necessary details, such as document scans and biometrics, have been collected and verified.

See the KYC API endpoint references.

Set up environment variables

  card_issuer_api_key="<your_card_issuer_api_key>"
  card_issuer_api_secret="<your_card_issuer_api_secret>"
  partner_account_id="<your_partner_account_id>"
  card_program_id="<your_card_program_id>"
  cardholder_account_id="<cardholder_account_id>"
  funding_source_id="<funding_source_id>"

Submit cardholder KYC statement

Submit KYC statement about the cardholder account.

  your_given_name=""
  your_family_name=""
  date_of_birth="" # YYYY-MM-DD

  curl -X PUT "https://test.immersve.com/api/accounts/${cardholder_account_id}/partner-kyc-statement" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "x-api-key: ${card_issuer_api_key}" \
    -H "x-api-secret: ${card_issuer_api_secret}" \
    --data '{
        "idempotencyKey": "some_random_key_thats_unique_for_each_request",
        "region": "NZL",
        "claims": [
            {
                "claimType": "FULL_NAME",
                "attributes": {
                    "givenName": "'${your_given_name}'",
                    "middleName": "PASSALL",
                    "honorific": "Mr",
                    "familyName": "'${your_family_name}'"
                }
            },
            {
                "claimType": "ADDRESS",
                "attributes": {
                    "addressType": "RESIDENTIAL",
                    "country": "NZL",
                    "streetNumber": "73",
                    "streetName": "Great Southern",
                    "streetType": "ROAD",
                    "suburb": "Auckland CBD",
                    "town": "Auckland",
                    "region": "Auckland",
                    "state": "AKL",
                    "postalCode": "6140"
                }
            },
            {
                "claimType": "DOB",
                "attributes": {
                    "dateOfBirth": "'${date_of_birth}'",
                }
            }
        ],
        "evidence": [
            {
                "evidenceType": "DRIVERS_LICENSE",
                "documentId": "80513",
                "country": "AUS",
                "region": "VIC"
                "version": "P0001975"
                "expiry": "2027-06-29"
            }
        ]
    }'

Poll spending prerequisites

Poll spending prerequisites endpoint. The initial call to the endpoint when there is a new KYC statement for the cardholder will create a new KYC check and the endpoint will return “check_in_progress” for the KYC prerequisite status.

The endpoint will keep returning “check_in_progress” until the check is completed.

Once the check is completed successfully, the response should no longer include KYC prerequisite. However, if the check failed, the response will return "kyc_check_failed" for the KYC prerequisite status. Check the KYC statement and submit it again or contact Immersve support.

Example request

  curl -X "https://test.immersve.com/api/spending-prerequisites" \
    -H "Content-Type: application/json" \
    -H "X-Api-Key: ${card_issuer_api_key}" \
    -H "X-Api-Secret: ${card_issuer_api_secret}" \
    -H "X-Account-Id: ${cardholder_account_id}" \
    --data '{
      "cardProgramId": "'${card_program_id}'",
      "fundingSourceId": "'${funding_source_id}'",
      "spendableAmount": 100,
      "spendableCurrency": "USD",
      "kycType": "partner-conducted",
      "kycRegion": "NZL"
    }'

Example response

  {
    "prerequisites": [
      {
        "type": "kyc",
        "params": {
          "status": "check_in_progress"
        }
      }
    ]
  }