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).
Partner account must be configured to allow partner conducted KYC checks. This is subject to an agreement between Immersve and the partner. Ask Immersve support for more details.
Although Immersive still performs KYC checks on these details, we rely on the partner for verification of document scans and the cardholder's identity.
Once Immersve has received and checked the KYC information for an Individual, the supported region associated with the wallet of the individual cannot be changed.
In the event that an individual wished to go through KYC in another supported region, a new wallet would be required.
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.
When testing, to improve chances of a successful response, please provide "passall" as the middleName, and generate a random givenName, familyName, and dateOfBirth. See example below.
Be careful when setting the region as this cannot be changed. You will need to create a new wallet if this is incorrectly supplied.
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": "NZ", "claims": [ { "claimType": "DOB", "attributes": { "dateOfBirth": "'${date_of_birth}'", } }, { "claimType": "FULL_NAME", "attributes": { "honorific": "Mr", "givenName": "'${your_given_name}'", "middleName": "PASSALL", "familyName": "'${your_family_name}'" } }, { "claimType": "ADDRESS", "attributes": { "addressType": "RESIDENTIAL", "streetNumber": "73", "streetName": "Great Southern", "streetType": "ROAD", "suburb": "Auckland CBD", "town": "Auckland", "region": "Auckland", "state": "AKL", "postalCode": "6140" "country": "NZ", } } ], "evidence": [ { "evidenceType": "DRIVERS_LICENSE", "documentId": "80513", "country": "AU", "region": "VIC", "version": "P0001975" } ] }'
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 contain 'ok' status for the KYC prerequisite. However, if the check failed, the response will return "kyc_check_failed". 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": "NZ" }'
Example response
{ "prerequisites": [ { "stage": "kyc", "status": "action-required", "type": "kyc", "actionType": "submit_kyc_statement", "params": { "status": "check_in_progress" } } ]}