Enable the payments product in the TrueLayer Console and ensure your application has the payments scope; obtain a client_credentials access token by posting to the token endpoint with grant_type=client_credentials.
Create a payment by POSTing to the payments API endpoint with a JSON body specifying amount_in_minor (pence/cents), currency, payment_method (bank_transfer), beneficiary details (account number and sort code or IBAN), and a unique idempotency_key header.
Receive the payment_id and a resource_token from the creation response; use the resource_token (not your main access token) to initialise the TrueLayer Payments hosted UI or direct payment flow.
Redirect or embed the TrueLayer hosted payment page passing the resource_token so the user can select their bank and authorise the payment via SCA.
After the user completes authorisation, they are redirected to your return_uri; retrieve the final payment status by polling GET /payments/{payment_id} using your client_credentials token until status is 'executed' or a terminal failure state.
Subscribe to payment webhooks to receive asynchronous status updates (e.g., authorized, executed, failed) rather than relying solely on polling.
Known gotchas
The resource_token is short-lived and single-use for the hosted UI; never reuse it or expose it in URLs that might be logged.
SCA (Strong Customer Authentication) is mandatory for PIS in the UK/EU; your flow must redirect users to their bank app or online banking — there is no way to skip this step.
Payment settlement to your beneficiary account can take minutes to hours depending on the scheme (Faster Payments vs SEPA); do not provision services instantly based solely on an 'authorized' status — wait for 'executed'.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp