Footprint's unified onboarding and vaulting platform makes it simple to migrate sensitive user data that lives inside your data stores to our secure, Nitro Enclave backed vaulting infrastructure. Whether you need to decrypt, securely proxy, search, or create user data -- you can use our unified Vaulting APIs to accomplish all of it. These APIs work identically for users that you've migrated and new users that are onboarding through Footprint's embedded KYC flows. Furthermore, Footprint supports watchlist checks, embedded components and more, all on migrated user data.

Prequisites

Please read our API Authentication guide.

Step 1: Create a new User Vault

For each user you are migrating into Footprint, create a new user vault using the POST /users API with the migrated data.

Footprint's vault supports several types of structured data: identity data, card holder data, documents like drivers licenses and passports, investment brokerage answers, and for everything else custom data (arbitrary key-value records). For structured data Footprint can validate that data is in the right format to ensure that you can reliably use this data in various applications and reporting/compliance needs. For unstructured data, you can store any other sensitive user data that may not fit the mold.

Example request

bash

curl https://api.onefootprint.com/users \
    -X POST \
    -u sk_test_CXUsbCR8j2kH6e5GeEl8eSBnQTIPCUaKpv:
    -d '{
            "id.first_name": "Jane",
            "id.last_name": "Doe",
            "id.dob": "1988-12-30",
            "id.ssn9": "12-121-1212",
            "id.address_line_1": "1 Penguin Pond",
            "id.city": "Polar Plunge",
            "id.state": "New York",
            "id.zip": "10014",
            "id.country": "USA",
            "id.phone_number":"+155555500",
            "card.primary.number":"4242224242424242",
            "card.primary.cvc": "4242",
            "card.primary.exp_month": "12",
            "card.primary.exp_year": "24",
            "document.drivers_license.front": "S94x6silUu0rpHq16aFIo8lo6C/GCRYqX4mDddUbD/4...",
            "document.drivers_license.back": "pTy0Xa5yAQ3aTFUw/qDUIcqYKgdmnij31UPgktrXYvo...",
            "custom.account_number": "42421212312",
            "custom.routing_number": "12121212121",
        }'

Example response

json

{
  "id": "fp_id_K0q6Eh6Rr3WOOfFBLPiHsr"
}

A successful response as above indicates the request data is properly formatted, the vault is created, and the data securely stored. Otherwise, an error will return with the data field that is improperly formatted and the vault will not be created.

See the API reference docs for details on how to use data identifiers and this API.

Step 2: Save the fp_id

Take special note of the fp_id_... value above -- this is the stable identifier for this user vault, this is the only identifier you'll need to store in your database or users table for this user vault. All vault data can be referenced with just this one identifier.

More guides and resources

Please find additional docs and guides for using Footprint vaults:

  1. API Reference for Vault
  2. PII Vault docs
  3. Vault Proxy Ingress