To maintain PCI compliance, you need to tokenize the card while collecting the contact's full card information including card number, expiry and CVV. We have partnered with VGS to bring this functionality to you.
There are two steps involved in showing the full card information:
- Step 1: Create a Debit Card Token
- Step 2: Update the Contact (with debit card info) using the Token
- Step 3: Send a Debit Push Payment
Testing:
In the TEST environment, you can use one of the test cards from this document that is enabled for debit push.
Step 1: Create a Debit Card Token
ENDPOINT
- POST /v1/contact/{{contactId}}/debitcard/token
RESPONSE
- {
- "id": "con-cf2e03cc-7fd1-4262-a5de-29e12d207f7d",
- "debitCardToken": "contact-debit-card-test-900241cd-b3a0-4614-9811-0cbc90a9811d"
- }
Step 2: Update the Contact (with debit card info) using the Token
To add the debit card info to the contact, you will need to implement the VGS collect sample code in your client. The sample code is available in our public repositories on GitHub:
- Web apps: vgs-collect-web
- iOS apps: vgs-collect-ios
- Android apps: vgs-collect-android
- VGS Collect React Native & Flutter: https://www.verygoodsecurity.com/docs/vgs-collect/cross-platform-development/
Note: Do not include the sd-api-key and sd-person-id in the header. Include sd-debitcard-token (it is the token that you receive in Step 1. Token is valid for 5 minutes and can be used only once.
Org and Vault IDs
The VGS org and vault ID's are required for implementing the sample code, and you will find these in the Solid Dashboard > Developer > API key screen.
Step 3: Send a Debit Push payment
ENDPOINT
- POST /v1/send/debitpush
REQUEST
- {
- "accountId": "{{accountId}}",
- "contactId": "{{contactId}}",
- "amount": "10.00",
- "description": "your description text"
- }
RESPONSE
- {
- "id": "tra-8fc2ba86-41b4-4dd5-8b03-ad82919016bf",
- "accountId": "acc-9eb9d71e-1656-4f68-8ed9-06b78ba34566",
- "contactId": "con-cf2e03cc-7fd1-4262-a5de-29e12d207f7d",
- "name": "Bright Light LLC",
- "accountNumber": "",
- "routingNumber": "",
- "address": {
- "addressType": "",
- "line1": "",
- "line2": "",
- "city": "",
- "state": "",
- "country": "",
- "postalCode": ""
- },
- "amount": "2.00",
- "status": "completed",
- "description": "Send DebitPush",
- "txnType": "debit",
- "transferType": "debitCard",
- "transferSubType": "originated",
- "createdAt": "2022-03-01T01:57:49Z",
- "modifiedAt": "2022-03-01T01:57:49Z",
- "transferredAt": "2022-03-01T01:57:49Z",
- "accountType": "",
- "iban": "",
- "valid": "",
- "parentTransferId": "",
- "reviewCode": "",
- "reviewMessage": "",
- "type": "",
- "metadata": null,
- "title": ""
- }