Overview
The Customer Vault enables merchants to securely store customer payment information in a Level 1 PCI certified data facility without maintaining cardholder data locally. This addresses Payment Card Industry (PCI) Data Security Standard requirements and shifts liability to the gateway provider.Store payment data securely and initiate transactions using stored credentials without handling raw card data.
Benefits
PCI Compliance
Reduce PCI scope by not storing card data
Recurring Billing
Process automatic recurring payments
Quick Checkout
Enable one-click payments for returning customers
Multiple Payment Methods
Store cards, bank accounts, and digital wallets
API Endpoint
Core Operations
- Add Customer
- Update Customer
- Delete Customer
Create a new customer record in the vault.Response:
Adding Payment Methods
Credit/Debit Cards
ACH/Bank Accounts
With Collect.js Token
With Digital Wallets
Apple Pay:Auto-Generated IDs
If you don’t specify acustomer_vault_id, the system will auto-generate one:
Transacting with Stored Credentials
Once payment information is stored, initiate transactions using the customer vault ID:Sale Transaction
Authorization
Credit
Validation
Stored Credential Compliance
When storing payment credentials, implement the Credential on File (CoF) framework:1
Initial Transaction
First transaction must include
stored_credential_indicator: 'stored'2
Store Transaction ID
Save the
transactionid from the gateway response3
Subsequent Transactions
Use
stored_credential_indicator: 'used' with original transaction IDInitial Storage Example
Subsequent Transaction Example
Card brand matching is enforced between initial and subsequent transactions. You cannot use a Visa token to charge a Mastercard.
Customer Vault Variables
Required Fields
| Variable | Description |
|---|---|
security_key | Your API security key |
customer_vault | Action: add_customer, update_customer, delete_customer |
Payment Fields (Add/Update)
| Variable | Description | Format |
|---|---|---|
ccnumber | Credit card number | Numeric |
ccexp | Expiration date | MMYY |
cvv | Security code | Numeric |
checkname | Account holder name | String |
checkaba | Routing number | Numeric |
checkaccount | Account number | Numeric |
account_type | checking or savings | String |
payment_token | Collect.js token | String |
Billing Information
| Variable | Description |
|---|---|
first_name | Customer first name |
last_name | Customer last name |
company | Company name |
address1 | Street address line 1 |
address2 | Street address line 2 |
city | City |
state | State/province code |
zip | Postal code |
country | Country code |
phone | Phone number |
email | Email address |
Shipping Information
Prefix all address fields withshipping_:
Multiple Payment Methods
Store multiple payment methods per customer using billing IDs:Update Operations
Update Payment Method
Update Billing Information
Security Best Practices
Never Store CVV
Never Store CVV
CVV values cannot be stored per PCI DSS. Only submit during add/update operations.
Use HTTPS Only
Use HTTPS Only
Always use HTTPS for API requests. Never transmit payment data over HTTP.
Implement Access Controls
Implement Access Controls
Restrict access to customer vault operations:
- Separate API keys for vault operations
- Log all vault access
- Implement multi-factor authentication
Regular Audits
Regular Audits
Periodically review stored credentials:
- Remove inactive customers
- Update expired cards
- Verify data integrity
Error Handling
Common customer vault errors:| Error | Description | Resolution |
|---|---|---|
Invalid customer vault id | ID doesn’t exist | Verify ID or create new customer |
Duplicate customer vault id | ID already exists | Use different ID or update existing |
Invalid card number | Card number validation failed | Verify card number format |
Card expired | Expiration date in past | Update with valid expiration |

