curl --request POST \
--url https://api.yapily.com/variable-recurring-payments/sweeping/consents \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data '
{
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"callback": "https://parameter-viewer.yapily.com/",
"controlParameters": {
"psuAuthenticationMethods": [
"SCA_NOT_REQUIRED"
],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "My Sweeping VRP",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
'import requests
url = "https://api.yapily.com/variable-recurring-payments/sweeping/consents"
payload = {
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"callback": "https://parameter-viewer.yapily.com/",
"controlParameters": {
"psuAuthenticationMethods": ["SCA_NOT_REQUIRED"],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "My Sweeping VRP",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json;charset=UTF-8"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify({
userUuid: '00000000-0000-0000-0000-000000000000',
institutionId: 'mock-sandbox',
callback: 'https://parameter-viewer.yapily.com/',
controlParameters: {
psuAuthenticationMethods: ['SCA_NOT_REQUIRED'],
maxAmountPerPayment: {amount: 10, currency: 'GBP'},
periodicLimits: [
{
frequency: 'MONTHLY',
alignment: 'CONSENT',
totalMaxAmount: {amount: 50, currency: 'GBP'}
}
]
},
initiationDetails: {
reference: 'My Sweeping VRP',
payee: {
name: 'Payee',
accountIdentifications: [
{type: 'ACCOUNT_NUMBER', identification: '12345678'},
{type: 'SORT_CODE', identification: '112233'}
]
},
payer: {
name: 'Payer',
accountIdentifications: [
{type: 'ACCOUNT_NUMBER', identification: '87654321'},
{type: 'SORT_CODE', identification: '332211'}
]
}
}
})
};
fetch('https://api.yapily.com/variable-recurring-payments/sweeping/consents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yapily.com/variable-recurring-payments/sweeping/consents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userUuid' => '00000000-0000-0000-0000-000000000000',
'institutionId' => 'mock-sandbox',
'callback' => 'https://parameter-viewer.yapily.com/',
'controlParameters' => [
'psuAuthenticationMethods' => [
'SCA_NOT_REQUIRED'
],
'maxAmountPerPayment' => [
'amount' => 10,
'currency' => 'GBP'
],
'periodicLimits' => [
[
'frequency' => 'MONTHLY',
'alignment' => 'CONSENT',
'totalMaxAmount' => [
'amount' => 50,
'currency' => 'GBP'
]
]
]
],
'initiationDetails' => [
'reference' => 'My Sweeping VRP',
'payee' => [
'name' => 'Payee',
'accountIdentifications' => [
[
'type' => 'ACCOUNT_NUMBER',
'identification' => '12345678'
],
[
'type' => 'SORT_CODE',
'identification' => '112233'
]
]
],
'payer' => [
'name' => 'Payer',
'accountIdentifications' => [
[
'type' => 'ACCOUNT_NUMBER',
'identification' => '87654321'
],
[
'type' => 'SORT_CODE',
'identification' => '332211'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json;charset=UTF-8"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yapily.com/variable-recurring-payments/sweeping/consents"
payload := strings.NewReader("{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json;charset=UTF-8")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yapily.com/variable-recurring-payments/sweeping/consents")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json;charset=UTF-8")
.body("{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yapily.com/variable-recurring-payments/sweeping/consents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json;charset=UTF-8'
request.body = "{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"meta": {
"tracingId": "12345678901234567890123456789012"
},
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"status": "AUTHORIZED",
"createdAt": "2026-01-01T00:00:00Z",
"authorizedAt": "2026-01-01T00:00:00.000Z",
"featureScope": [
"EXISTING_PAYMENTS_DETAILS",
"EXISTING_PAYMENT_INITIATION_DETAILS",
"CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING",
"VARIABLE_RECURRING_PAYMENT_FUNDS_CONFIRMATION",
"INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING"
],
"consentToken": "...",
"state": "...",
"institutionConsentId": "...",
"controlParameters": {
"psuAuthenticationMethods": [
"SCA_NOT_REQUIRED"
],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "Own Account Sweeping",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 401,
"status": "UNAUTHORIZED",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "CREDENTIALS",
"code": "CREDENTIALS_MISSING",
"message": "Authentication header not present"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 400,
"status": "BAD_REQUEST",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "BAD_REQUEST",
"code": "BAD_REQUEST",
"message": "The server could not understand the request due to invalid syntax"
}
]
}
}Create Sweeping VRP Authorisation
Initiate authorisation for a Sweeping VRP consent.
The response will contain an Authorisation URL and the associated Consent ID. The user will have to complete authorisation of the consent at their institution via Redirect Flows, after which you will be able to use the authorised consent to create payments.
Feature:
INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING
curl --request POST \
--url https://api.yapily.com/variable-recurring-payments/sweeping/consents \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data '
{
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"callback": "https://parameter-viewer.yapily.com/",
"controlParameters": {
"psuAuthenticationMethods": [
"SCA_NOT_REQUIRED"
],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "My Sweeping VRP",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
'import requests
url = "https://api.yapily.com/variable-recurring-payments/sweeping/consents"
payload = {
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"callback": "https://parameter-viewer.yapily.com/",
"controlParameters": {
"psuAuthenticationMethods": ["SCA_NOT_REQUIRED"],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "My Sweeping VRP",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json;charset=UTF-8"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify({
userUuid: '00000000-0000-0000-0000-000000000000',
institutionId: 'mock-sandbox',
callback: 'https://parameter-viewer.yapily.com/',
controlParameters: {
psuAuthenticationMethods: ['SCA_NOT_REQUIRED'],
maxAmountPerPayment: {amount: 10, currency: 'GBP'},
periodicLimits: [
{
frequency: 'MONTHLY',
alignment: 'CONSENT',
totalMaxAmount: {amount: 50, currency: 'GBP'}
}
]
},
initiationDetails: {
reference: 'My Sweeping VRP',
payee: {
name: 'Payee',
accountIdentifications: [
{type: 'ACCOUNT_NUMBER', identification: '12345678'},
{type: 'SORT_CODE', identification: '112233'}
]
},
payer: {
name: 'Payer',
accountIdentifications: [
{type: 'ACCOUNT_NUMBER', identification: '87654321'},
{type: 'SORT_CODE', identification: '332211'}
]
}
}
})
};
fetch('https://api.yapily.com/variable-recurring-payments/sweeping/consents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yapily.com/variable-recurring-payments/sweeping/consents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userUuid' => '00000000-0000-0000-0000-000000000000',
'institutionId' => 'mock-sandbox',
'callback' => 'https://parameter-viewer.yapily.com/',
'controlParameters' => [
'psuAuthenticationMethods' => [
'SCA_NOT_REQUIRED'
],
'maxAmountPerPayment' => [
'amount' => 10,
'currency' => 'GBP'
],
'periodicLimits' => [
[
'frequency' => 'MONTHLY',
'alignment' => 'CONSENT',
'totalMaxAmount' => [
'amount' => 50,
'currency' => 'GBP'
]
]
]
],
'initiationDetails' => [
'reference' => 'My Sweeping VRP',
'payee' => [
'name' => 'Payee',
'accountIdentifications' => [
[
'type' => 'ACCOUNT_NUMBER',
'identification' => '12345678'
],
[
'type' => 'SORT_CODE',
'identification' => '112233'
]
]
],
'payer' => [
'name' => 'Payer',
'accountIdentifications' => [
[
'type' => 'ACCOUNT_NUMBER',
'identification' => '87654321'
],
[
'type' => 'SORT_CODE',
'identification' => '332211'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json;charset=UTF-8"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yapily.com/variable-recurring-payments/sweeping/consents"
payload := strings.NewReader("{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json;charset=UTF-8")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yapily.com/variable-recurring-payments/sweeping/consents")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json;charset=UTF-8")
.body("{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yapily.com/variable-recurring-payments/sweeping/consents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json;charset=UTF-8'
request.body = "{\n \"userUuid\": \"00000000-0000-0000-0000-000000000000\",\n \"institutionId\": \"mock-sandbox\",\n \"callback\": \"https://parameter-viewer.yapily.com/\",\n \"controlParameters\": {\n \"psuAuthenticationMethods\": [\n \"SCA_NOT_REQUIRED\"\n ],\n \"maxAmountPerPayment\": {\n \"amount\": 10,\n \"currency\": \"GBP\"\n },\n \"periodicLimits\": [\n {\n \"frequency\": \"MONTHLY\",\n \"alignment\": \"CONSENT\",\n \"totalMaxAmount\": {\n \"amount\": 50,\n \"currency\": \"GBP\"\n }\n }\n ]\n },\n \"initiationDetails\": {\n \"reference\": \"My Sweeping VRP\",\n \"payee\": {\n \"name\": \"Payee\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"12345678\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"112233\"\n }\n ]\n },\n \"payer\": {\n \"name\": \"Payer\",\n \"accountIdentifications\": [\n {\n \"type\": \"ACCOUNT_NUMBER\",\n \"identification\": \"87654321\"\n },\n {\n \"type\": \"SORT_CODE\",\n \"identification\": \"332211\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"meta": {
"tracingId": "12345678901234567890123456789012"
},
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"userUuid": "00000000-0000-0000-0000-000000000000",
"institutionId": "mock-sandbox",
"status": "AUTHORIZED",
"createdAt": "2026-01-01T00:00:00Z",
"authorizedAt": "2026-01-01T00:00:00.000Z",
"featureScope": [
"EXISTING_PAYMENTS_DETAILS",
"EXISTING_PAYMENT_INITIATION_DETAILS",
"CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING",
"VARIABLE_RECURRING_PAYMENT_FUNDS_CONFIRMATION",
"INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING"
],
"consentToken": "...",
"state": "...",
"institutionConsentId": "...",
"controlParameters": {
"psuAuthenticationMethods": [
"SCA_NOT_REQUIRED"
],
"maxAmountPerPayment": {
"amount": 10,
"currency": "GBP"
},
"periodicLimits": [
{
"frequency": "MONTHLY",
"alignment": "CONSENT",
"totalMaxAmount": {
"amount": 50,
"currency": "GBP"
}
}
]
},
"initiationDetails": {
"reference": "Own Account Sweeping",
"payee": {
"name": "Payee",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "12345678"
},
{
"type": "SORT_CODE",
"identification": "112233"
}
]
},
"payer": {
"name": "Payer",
"accountIdentifications": [
{
"type": "ACCOUNT_NUMBER",
"identification": "87654321"
},
{
"type": "SORT_CODE",
"identification": "332211"
}
]
}
}
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 401,
"status": "UNAUTHORIZED",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "CREDENTIALS",
"code": "CREDENTIALS_MISSING",
"message": "Authentication header not present"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 400,
"status": "BAD_REQUEST",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "BAD_REQUEST",
"code": "BAD_REQUEST",
"message": "The server could not understand the request due to invalid syntax"
}
]
}
}Authorizations
Use HTTP Basic Authentication with your Application ID as username and Application Secret as password. Manage credentials in the Yapily Console. See Authentication for details.
Body
The Institution ID which will carry out authorisation.
The definition of VRP parameters.
Show child attributes
Show child attributes
The definition of the payer and payee.
Show child attributes
Show child attributes
Conditional. The Yapily User UUID. One of userUuid or applicationUserId must be present in the request.
Conditional. The Application User ID. One of userUuid or applicationUserId must be present in the request.
Optional. The server to redirect the user to after the user complete the authorisation at the Institution.
See Using a callback (Optional) for more information.
Optional. The server to redirect the user to after the user complete the authorisation at the Institution.
Show child attributes
Show child attributes
Any parameters that you may want to get forwarded in the callback request after the PSU is redirected.
Conditional. Set to true to receive a oneTimeToken instead of consentToken at the callback. This is used for additional security and can only be used when the callback is set.
See Using a One-Time Token for more information.
Conditional. Information needed to complete compliance checks. Mandatory for Yapily Connect customers.
Show child attributes
Show child attributes
Was this page helpful?