Payments only integration
Learn how to integrate Signup+ with the payments only flow.
There are three stages to integrating Signup+ with the payments only flow:
- Create a payment
id
and enable scope - Generate an access token
- Retrieve user data with the payment
id
Environments
Ensure that you use the same environment for all of your requests to TrueLayer APIs.
- If you are in the sandbox environment, your requests should use
truelayer-sandbox.com
.- If you are in the live environment, your requests should use
truelayer.com
.

Starting from the PSU, How each step of the payments only integration flow is related.
Create a payment id
and enable the signupplus
scope
id
and enable the signupplus
scopeThe payments only flow uses a payment id
to retrieve customer data for signup. Ensure that the signupplus
scope is enabled.
Integrate the Payments API v3
Before you send API requests to Signup+, you need to integrate with the Payments API v3.
See the Payments API v3 documentation or the payments quickstart guide for more about how to integrate.
Hosted Payment Page
If you use the hosted payment page for your payment, you need to add
signup=true
as a hash parameter to the URL, like in this example:https://payment.truelayer-sandbox.com/payments#signup=true&payment_id=6755dacf-7dd8-4577-ba11-667b6aca8474&resource_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRfaWQiOiJwZW5ueWRldi1lNTkzOGEiLCJqdGkiOiI2NzU1ZGFjZi03ZGQ4LTQ1NzctYmExMS02NjdiNmFjYTg0YmYiOjE2MzQ2Mzk1NDQsImV4cCI6MTYzNDY0MDQ0NCwiaXNzIjoiaHR0cHM6Ly9hcGkmRldiIsImF1ZCI6Imh0dHBzOi8vYXBpLnQ3ci5kZXYifQ.vlEvoSdFv8g7t21RlXYyus01uEZlalK89P4Ii7Avl_8&return_uri=http://localhost:3000/redirect ```
Make a payment
Create a payment using the API. A payment id
is returned in the 201 response if successful.
Remember to use the same environment (sandbox or live) for both your Payments and Signup+ requests.
Enable the signupplus
scope
signupplus
scopeOnce you have created your payments application, ensure that your client_id
has the signupplus
scope enabled. To do this, go to Console > Data API > Auth link builder > Product Permissions.
The signupplus
scope is available by default in the sandbox environment. To use this scope in the live environment, contact Support.
You must use the same client_id
for Signup+ that you use for payments.
Generate an access token
In order to use the Signup+ API, you need an access token. You can generate a token using the POST request below. Ensure you replace "your-client-id"
and "your-client-secret"
with the relevant keys.
export CLIENT_ID="your-client-id"
export CLIENT_SECRET="your-client-secret"
curl --location --request POST 'https://auth.truelayer.com/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=$CLIENT_ID' \
--data-urlencode 'client_secret=$CLIENT_SECRET' \
--data-urlencode 'scope=signupplus'
You can also use the Signup+ Postman collection to test API requests, including the request to generate an access token.
Get user data with the payment id
id
Now that you've integrated the Payments API v3, configured your scopes, and obtained an access token, you can test the Signup+ API.
- Create a payment using the Payments API v3, and then complete it. It should have a
status
ofsettled
.
Once the payment issettled
, make a note of the paymentid
. This is different from the userid
— make sure to store the right value. - Send your request using your
access_token
as a bearer authorization header. - Configure the URL below with the following changes:
- Substitute
{users-payment-id}
with theid
from the previous step. - Adjust the URL to start with either
api.truelayer.com
orapi.truelayer-sandbox.com
depending on your environment.
- Substitute
https://api.truelayer.com/signup-plus/payments?payment_id={users-payment-id}
Once you've configured the URL, use it to make a GET request. If your request is successful, you will receive a response like this:
{
"title": "Mr",
"first_name": "Wallace",
"last_name": "Wensleydale",
"date_of_birth": "07/08/1959",
"address": {
"address_line1": "62 West Wallaby Street",
"city": "Wigan",
"state": "Lancashire",
"zip": "L18 9HA",
"country_code": "GB"
},
"account_details": {
"sort_code": "{SORTCODE}",
"account_number": "{ACCOUNTNUMBER}"
}
}
Updated 3 days ago