Start a new verification process

The first step to verify a customer’s bank account is to make a request. We’ll ask for the following details:

  • The uniqueReference string, 1-36 characters that identify the shopper on the merchant side (required)
    • Note, this is a separate field to the uniquereference field found in our PIS API’s (hosted/embedded checkout), where here this field has a limitation of 18 characters. For the Verify product this field does have an increased allowance of characters up to 36.
  • A shopper reference string, 1-36 characters (optional)
  • Country code: two lowercase letters – in ISO-3166-2 format (optional)
  • Language code: two uppercase letters in ISO-639-1 format (optional)

If you want to have redirect URLs different to the ones set in the application in Fuzebox, use the custom URLs field (success, failure, cancellation).

View the Verify API docs

Verification request

Authenticate

The first thing you’ll need to do is to authenticate with the API, which will provide you with an access token to access the rest of the API. You’ll use this access token anywhere you’re required to supply a Bearer token in the Authorization header.

Find out more about API authentication

Location

  • Sandbox
  • Production
POST https://verify-sandbox.volt.io/verifications
POST https://verify.volt.io/verifications

Required headers

Header Description Example
Authorization Your request needs to be authorised by attaching your access token to the Authorisation header in the format Bearer: {access_token}. Bearer eyJ0eXAiOiJKV1QiLCJhbGciO ... F_n1hAeBoplzOfQ

Body

Schema: application/json
The following table explains the required details for the verification:

Name Description

uniqueReference
required

string  1-36 characters (a-z, A-z, 0-9, -)
36 characters-long string that is the unique identifier on the merchant site for the shopper verification request

shopper
optional

object
Contains only a reference field.  The shopper data helps us improve our service by identifying where attempts have been made by the same customer to verify their information with multiple banks before success.

language
optional

string
Two-letter language code according to ISO-639-1 (ex: ‘pl’)

country
optional

string
Two-letter country code according to ISO-3166-2 (ex: ‘PL’)

customUrls

object
Custom redirection urls, supported fields:
successRedirectUrl, failureRedirectUrl, cancelRedirectUrl
All are optional and should be valid https urls

Example request

{
   "uniqueReference": "4a1d6e521b1f82438a3abed461b58af91cda",
   "shopper": {
      "reference": "91403cd416a2c2451138a2a4f2d89dcbbc18"
   },
   "country": "GB",
   "language": "en",
   "customUrls": {
      "successRedirectUrl": "https://example.com/success",
      "failureRedirectUrl": "https://example.com/failure",
      "cancelRedirectUrl": "https://example.com/cancel"
   }
}

Responses

Once you’ve submitted your verification request, you’ll receive one of the following responses which will tell you whether it was accepted and, if not, the reason why we rejected it.

Find out how to test these responses

Successful response

201 Created

The verification process was created.  We returned a processId and checkoutUrl to you, which is where you should now redirect the customer to.

201 Created
{
   "processId": "e6d4c6e5-5efa-49e5-ae1b-ba440643acf3",
   "checkoutUrl": "http://checkout.example.com?auth=jwt.token&language=en&country=EN"
}

Unsuccessful responses

400 Bad request

We cannot accept the payload from the request you sent because the data is invalid or malformed. The response will contain a description of the actual problem.

401 Access denied

Your credentials were invalid. It may be that the token you’ve used has expired. You will need to re-authenticate and then resubmit this request with valid or updated credentials. This is usually because you have not supplied a valid authentication token.

403 Not authorised

Although your credentials are correct, your access to the API has been disabled or limited. Subsequent requests to this endpoint (even with valid data) will not be processed.  Please check with support@volt.io to check that Verify has been enabled for your account.

General payload structure for unsuccessful requests
{
   "exception": {
      "code": "Some-Internal-Error-Code",
      "message": "Some error exception description"
   }
}
Specific example for validation errors
{
   "exception": {
      "code": "Volt-Exception-Validation-ConstraintValidation",
      "message": "Validation exception",
      "errors": [
         {
            "property": "uniqueReference",
            "message": "This value is too long. It should have 36 characters or less."
         },
         {
            "property": "country",
            "message": "This value is not a valid country."
         }
      ]
   }
}