Vault
The payFURL Vault allows you securely vault credit card details with payFURL to use across multiple payment providers or to reduce your PCI compliance scope.
There are a few different ways you can use our Vault:
- Use the vault with providers
- Use the vault independently
When you use the vault with providers, the payment details will be tokenised with payment provider as well as saved to the payFURL vault.
Automatically expiring vault items
Any time a vault item is created, you can set up the vault items to automatically expire. You can pass a parameter to set the vault item to expire after a number of seconds or on a specific date. You cannot specify both seconds to expire and a date.
To set the vault item to expiry in seconds, pass ExpireSeconds or VaultExpireSeconds (depending on which method you're using to create the vault).
To set the vault item to expiry at a specific date, pass ExpireDate or VaultExpireDate (depending on which method you're using to create the vault).
Using the Ccv
In order to meet PCI requirements, the Ccv is removed the first time an payment occurs for the vaulted card or after a short delay (whichever comes first).
Using the vault with providers
When you use the vault with a provider, payment details are saved in our vault as well as tokenised with a gateway.

Using the vault independently

Using the vault with providers
Any time you tokenise a card, create a customer with a card or a payment method with a vault.
The vault will store just the PCI date (ie card number and possibly the Ccv). Other payment information (eg Expiry Date) are stored with the payment method. You can create a new payment method from a vault by providing providerId, paymentMethodId, ccv.
Creating a vault item
A vault item can be created in most situations where a card number is provided, including:
To create with a customer while vaulting the card:
- C#
- curl
- PHP
var customer = new NewCustomerCard
{
ProviderId = "a26c371f-94f6-40da-add2-28ec8e9da8ed",
PaymentInformation = new CardRequestInformation
{
CardNumber = "4111111111111111",
ExpiryDate = "12/22",
Ccv = "123"
},
VaultCard = true
};
var svc = new payfurl.sdk.Customer();
svc.CreateWithCard(customer);
curl -d '{"ProviderId":"a26c371f94f640daadd228ec8e9da8ed", "PaymentInformation" : {"CardNumber" : "4111111111111111", "ExpiryDate" : "12/22", "Ccv" : "123"}, "VaultCard" : true}' \
-H "Content-Type: application/json" \
-H "x-secretkey: <secret_key>" \
-X POST https://sandbox-api.payfurl.com/customer/card
<?
$svc = new Customer();
$result = $svc->CreateWithCard([
"ProviderId" => "a26c371f94f640daadd228ec8e9da8ed",
"CardNumber" => "4111111111111111",
"ExpiryDate" => "12/22",
"Ccv" => "123",
"VaultCard" : true]);
?>
Switching to a different provider
To create with a payment method with an existing vaulted card:
- C#
- curl
- PHP
var newPaymentMethod = new NewPaymentMethodVault
{
ProviderId = "a26c371f-94f6-40da-add2-28ec8e9da8ed",
PaymentMethodId = "<payment_method_id>"
};
var svc = new payfurl.sdk.PaymentMethod();
var result = svc.CreatePaymentMethodWithVault(newPaymentMethod);
curl -d '{"ProviderId":"a26c371f94f640daadd228ec8e9da8ed", "PaymentMethodId" : "<payment_method_id>"}' \
-H "Content-Type: application/json" \
-H "x-secretkey: <secret_key>" \
-X POST https://sandbox-api.payfurl.com/payment_method/vault
<?
$svc = new PaymentMethod();
$result = $svc->CreatePaymentMethodWithVault([
"ProviderId" => "a26c371f94f640daadd228ec8e9da8ed",
"PaymentMethodId" => "<payment_method_id>"]);
?>
Using the vault independently
When creating a vault item, the Ccv is optional.
You can also set the vault item to expire by proving either ExpireDate (date and time) or ExpireSeconds. You can only provide one of these two items.
Creating a vault item
- C#
- curl
- PHP
var newVault = new NewVault
{
CardNumber = "4111111111111111",
Ccv = "123"
};
var svc = new payfurl.sdk.Vault();
return svc.Create(newVault);
curl -d '{"CardNumber" : "4111111111111111", "Ccv" : "123"}' \
-H "Content-Type: application/json" \
-H "x-secretkey: <secret_key>" \
-X POST https://sandbox-api.payfurl.com/vault
<?
$svc = new Vault();
$result = $svc->Create([
"CardNumber" => "4111111111111111",
"Ccv" => "123"]);
?>
Retrieving a vault item
To retrieve an item from the vault
- C#
- curl
- PHP
var svc = new payfurl.sdk.Vault();
return svc.Single("<vault_id>");
curl -H "Content-Type: application/json" \
-H "x-secretkey: <secret_key>" \
-X GET https://sandbox-api.payfurl.com/vault/<vault_id>
<?
$svc = new Vault();
$result = $svc->Single("<vault_id>");
?>
Delete a vault item
You can also remove a vault item, rather than waiting for it to expire
- C#
- curl
- PHP
var svc = new payfurl.sdk.Vault();
return svc.Delete("<vault_id>");
curl -H "Content-Type: application/json" \
-H "x-secretkey: <secret_key>" \
-X DELETE https://sandbox-api.payfurl.com/vault/<vault_id>
<?
$svc = new Vault();
$result = $svc->Delete("<vault_id>");
?>