A standalone vault is a user vault you create through the API for a user who did not go through a KYC or IDV onboarding with a Footprint SDK. Reach for it when you backfill existing users into Footprint and need to vault their PII directly.

Create the vault with POST /users.

bash
1curl https://api.onefootprint.com/users \
2    -X POST \
3    -u sk_test_CXUsbCR8j2kH6e5GeEl8eSBnQTIPCUaKpv:
json
1{
2  "id": "fp_id_K0q6Eh6Rr3WOOfFBLPiHsr"
3}

Save the returned id and associate it with the user in your database.

Initial data

To seed the vault at creation, pass the fields in the request body.

bash
1curl https://api.onefootprint.com/users \
2    -X POST \
3    -d '{
4            "id.first_name": "Jane",
5            "id.last_name": "Joe",
6            "id.dob": "1988-12-30",
7            "id.ssn9": "12-121-1212",
8            "custom.ach_account": "111122224444"
9        }' \
10    -u sk_test_CXUsbCR8j2kH6e5GeEl8eSBnQTIPCUaKpv:
json
1{
2  "id": "fp_id_K0q6Eh6Rr3WOOfFBLPiHsr"
3}

Idempotency ID

To retry POST /users without creating a second user, send an x-idempotency-id header. A repeat request with the same x-idempotency-id value is a no-op and returns the same fp_id.

When you create a vault for a user record you already hold, we recommend using that record's unique ID as the x-idempotency-id, so only one Footprint vault is ever created per user.

A request that carries x-idempotency-id cannot include initial data in the body.

bash
1curl https://api.onefootprint.com/users \
2    -X POST \
3    -H 'x-idempotency-id: my_user_id_1234'
4    -u sk_test_CXUsbCR8j2kH6e5GeEl8eSBnQTIPCUaKpv:
json
1{
2  "id": "fp_id_K0q6Eh6Rr3WOOfFBLPiHsr"
3}

Update a standalone user vault

Use the id from the create call to add or update fields at any time with PATCH /users/<fp_id>/vault.

bash
1curl https://api.onefootprint.com/users/fp_id_GSxJr68GAf5jUT3pdL9ndjf7TLkA3GCX/vault \
2    -X PATCH \
3    -u sk_test_CXUsbCR8j2kH6e5GeEl8eSBnQTIPCUaKpv: \
4    -d '{
5            "id.email": "jane@acmebank.com",
6            "custom.ach_account": "111122224444"
7        }'

Listing, decrypting, and updating work the same for a standalone vault as for any other user vault; the vault introduction shows each call.