Generate a link via the Volt API
Payment links can be requested from either the Sandbox or Production environments. We recommend starting with Sandbox, where you can choose one of the model or mock banks and test the end-to-end process without making real payments:
Authentication
Pay by Link uses Volt’s REST API. See the authentication section of our developer documentation for details on how to obtain a token to access the Pay by Link endpoint.
Request body
- For EU and UK checkouts
- For AU checkout
This endpoint takes exactly the same request structure as Request payment – Request body | Volt Developer Hub. Please refer to this section of the developer documentation for further information.
{
"currencyCode": "EUR",
"amount": 100,
"type": "BILL",
"uniqueReference": "YourUniqueReference",
"payer": {
"reference": "payerreference"
},
"validityPeriod": 1440
}
Example successful response
{
"id": "d70cf67a-a4b2-449e-af9b-572e03609917",
"checkoutUrl": "http://checkout.volt.io/d70cf67a-a4b2-449e-af9b-572e03609917?auth=jwtToken"
}
The response contains two attributes:
id |
This is a UUID we’ve generated for your payment request |
checkoutUrl |
This is the link to the checkout that should be passed to your customer |
This endpoint takes exactly the same request structure as Request payment – Request body | Volt Developer Hub. Please refer to the specific AU section of the developer documentation for further information.
{
"currencyCode": "AUD",
"amount": 100,
"type": "OTHER",
"uniqueReference": "YourUniqueReference",
"additionalDescription": "Purchase for new shoes at Shoes.com - brand ABC",
"shopper": {
"reference": "payerreference",
"firstName": "Firstname",
"lastName": "Lastname"
},
"validityPeriod": 1440
}
Example successful response
{
"id": "d70cf67a-a4b2-449e-af9b-572e03609917",
"checkoutUrl": "http://checkout.volt.io/d70cf67a-a4b2-449e-af9b-572e03609917?auth=jwtToken"
}
The response contains three attributes:
id |
This is a UUID we’ve generated for your payment request |
checkoutUrl |
This is the link to the checkout that should be passed to your customer |
Validity period of links
Setting a custom expiration time for your Pay By Link with the validityPeriod
parameter is mandatory. Enter the desired validity in minutes. For instance, to make the link valid for 1 day, set validityPeriod
to 1440 (24 hours * 60 minutes).
Minimum validity period
The minimum validity period we recommend is 5 min for Pix payments in Brazil and 30 minutes for Open Banking payments in the EU or UK.
Status codes
Other status codes you could receive, for unsuccessful requests, are detailed in Request a Payment – Response
Testing your Pay by Link
In Sandbox mode, you should be able to test your Pay by Link by selecting one of our mock banks in the checkout. We recommend you test for all relevant payment statuses to ensure that your system can cope with both successful and failed outcomes.