Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Lloyds Banking Group Variable Recurring Payments API

OBIE Variable Recurring Payments (VRP) profile API enabling consent-based recurring payments under a customer-agreed mandate, including sweeping between a customer's own accounts. FAPI-secured (OAuth2/OIDC, mTLS, PSD2 SCA); requires developer-portal onboarding. Spec provenance is the shared OBIE VRP standard, not a Lloyds-proprietary contract.

Lloyds Banking Group Variable Recurring Payments API is one of 6 APIs that Lloyds Banking Group publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Variable Recurring Payments, VRP, and Payments. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 9 operations across 6 paths, organized into 2 resource areas, and defines 83 schemas. It is described by OpenAPI 3.0.0, at version 4.0.1.

Requests are made against a single base URL, /open-banking/v4.0/pisp.

9 operations 6 paths 83 schemas 1 DELETE3 GET1 PATCH3 POST1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
4.0.1
Base URL
https://api.lloydsbank.com/open-banking/v3.1
Authentication
OAuth 2.0, OAuth 2.0
Terms of Service
Resource Areas
2

Authentication & Security 2

Lloyds Banking Group Variable Recurring Payments API declares 2 security schemes for authenticating requests. It supports OAuth 2.0 (TPPOAuth2Security) using the clientCredentials flow, exposing 1 scope. It supports OAuth 2.0 (PSUOAuth2Security) using the authorizationCode flow, exposing 1 scope.

  • TPPOAuth2Security — TPP client credential authorisation flow with the ASPSP
  • PSUOAuth2Security — OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU

Paths & Operations 9

Across 6 paths, the API surfaces 9 operations — 1 DELETE, 3 GET, 1 PATCH, 3 POST, 1 PUT. They span 2 resource areas: Domestic VRP Consents, Domestic VRPs. Each is listed below with its method, path, parameters, and response codes.

Domestic VRP Consents 6
POST
/domestic-vrp-consents
Create a domestic VRP consent
domesticVrpConsentsPost 8 params body → 201400401403405406409415
GET
/domestic-vrp-consents/{ConsentId}
Get a Domestic VRP Consent
domesticVrpConsentsGet 7 params → 200400401403405406415429
DELETE
/domestic-vrp-consents/{ConsentId}
Delete a Domestic VRP Consent
domesticVrpConsentsDelete 7 params → 204400401403405406415429
PUT
/domestic-vrp-consents/{ConsentId}
Replace an existing domestic VRP consent
domesticVrpConsentsPut 9 params body → 200400401403405406409415
PATCH
/domestic-vrp-consents/{ConsentId}
Update an existing domestic VRP consent
domesticVrpConsentsPatch 9 params body → 200400401403405406409415
POST
/domestic-vrp-consents/{ConsentId}/funds-confirmation
Confirm Funds Availability for a Domestic VRP
domesticVrpConsentsFundsConfirmation 8 params body → 201400401403405406415429
Domestic VRPs 3
POST
/domestic-vrps
Initiate a Domestic VRP
domesticVrpPost 9 params body → 201400401403405406409415
GET
/domestic-vrps/{DomesticVRPId}
Get a Domestic VRP
domesticVrpGet 7 params → 200400401403405406415429
GET
/domestic-vrps/{DomesticVRPId}/payment-details
Get details of a Domestic VRP Payment
domesticVrpPaymentDetailsGet 7 params → 200400401403405406415429

Schemas 83

The contract defines 83 schemas that model the data the API accepts and returns. The most detailed are OBPostalAddress7 (18 properties), OBDomesticVRPInstruction (9 properties), OBRisk1 (9 properties), OBDomesticVRPControlParameters (8 properties). Each schema is shown below with its type and property counts.

OBDomesticRefundAccount1
object
Unambiguous identification of the refund account to which a refund will be made as a result of the transaction.
1 property 1 required
SecondaryIdentification
string
This is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally ident…
OBUltimateCreditor1
object
Ultimate party to which an amount of money is due.
5 properties
OBUltimateDebtor1
object
Ultimate party that owes an amount of money to the (ultimate) creditor.
5 properties
OBBranchAndFinancialInstitutionIdentification6_0
object
Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on t…
5 properties
LEI
string
Legal entity identification as an alternate identification for a party. Legal Entity Identifier is a code allocated to a party as described in ISO 17442 "Finan…
Name_1
string
Name by which an agent is known and which is usually used to identify that agent.
Identification_0
string
Identification assigned by an institution to identify an account. This identification is known by the account owner.
Identification_1
string
Unique and unambiguous identification of the servicing institution.
OBProxy1
object
Specifies an alternate assumed name for the identification of the account.
3 properties 2 required
ExternalProxyAccountType1Code
string
Specifies the external proxy account type code, as published in the proxy account type external code set. For a full list of values see ExternalProxyAccountTyp…
OBError1
object
4 properties 1 required
OBErrorResponse1
object
An array of detail error codes, and messages, and URLs to documentation to help remediation.
4 properties 1 required
OBExternalStatusReason1Code
string
Low level textual error code, for all enum values see OBExternalStatusReason1Code in OBInternalCodeSet [here](https://github.com/OpenBankingUK/ExternalInternal…
OBDomesticVRPConsentResponse
object
4 properties 2 required
OBInternalConsentStatus1Code
string
Specifies the status of consent resource in code form. Only AWAU and RJCT can be returned on initial submission. For a full list of values see OBInternalConsen…
OBDomesticVRPConsentRequest
object
2 properties 2 required
OBDomesticVRPControlParameters
object
8 properties 4 required
OBDomesticVRPInitiation
object
7 properties
OBCashAccountDebtorWithName
object
5 properties 2 required
OBCashAccountCreditor3
object
5 properties 3 required
OBBranchAndFinancialInstitutionIdentification6
object
5 properties
OBDomesticVRPRequest
object
2 properties 2 required
OBDomesticVRPResponse
object
4 properties 2 required
OBDomesticVRPDetails
object
1 property 1 required
OBVRPFundsConfirmationRequest
object
The OBVRPFundsConfirmationRequest object must be used to request funds availability for a specific amount in the Debtor Account included in the VRP consents.
1 property 1 required
OBVRPFundsConfirmationResponse
object
The confirmation of funds response contains the result of a funds availability check.
1 property 1 required
OBPAFundsAvailableResult1
object
Availability result, clearly indicating the availability of funds given the Amount in the request.
2 properties 2 required
ExternalCategoryPurpose1Code
string
Enumeration of codes that outlines the type of purpose behind a transaction, payment or risk. For a full list of values refer to ExternalCategoryPurpose1Code i…
OBCharge2
object
1 property 3 required
OBExternalStatus2Code
string
OBInternalChargeBearerType1Code
string
Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
OBDomesticVRPInstruction
object
9 properties 4 required
OBExternalCreditorReferenceType1Code
string
Specifies the type of creditor reference as published in an external creditor reference type code set. External code sets can be downloaded from www.iso20022.o…
ExternalDocumentType1Code
string
Specifies the document type as published in an external document type code list. For a full list of values refer to ExternalDocumentType1Code in ISOExternalCod…
OBReferredDocumentInformation
object
5 properties
OBVRPRemittanceInformation
object
Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' rec…
5 properties
OBRemittanceInformation2
object
Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' rec…
2 properties
OBRemittanceInformationStructured
object
7 properties
ExternalCreditorReferenceType1Code
string
Specifies the amount type, as published in an external referred amount code set. For a full list of values refer to ExternalCreditorReferenceType1Code in ISOEx…
OBInternalAccountIdentification4Code
string
Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to OBInternalAccountIdentification4Code in…
OBInternalFinancialInstitutionIdentification4Code
string
Name of the identification scheme, in a coded form as published in an external list.
OBExternalAccountType1Code
string
Specifies the type of account (personal or business).
OBInternalExtendedAccountType1Code
string
Specifies the extended type of account if known. For a full set of values refer to OBInternalExtendedAccountType1Code in OBInternalCodeSet [here](https://githu…
OBInternalLocalInstrument1Code
string
User community specific instrument. Usage: This element is used to specify a local instrument, local clearing option and/or further qualify the service or serv…
OBActiveOrHistoricCurrencyAndAmount
object
2 properties 2 required
ActiveOrHistoricCurrencyCode
string
A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international st…
OBActiveCurrencyAndAmount_SimpleType
string
A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
OBInternalPaymentChargeType1Code
string
OBExternalPurpose1Code
string
For a full set of values refer to ExternalPurpose1Code in ISOExternalCodeSet [here](https://github.com/OpenBankingUK/ExternalInternalCodeSets)
ISODateTime
string
All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below:…
OBPaymentStatusReason
object
2 properties
OBPostalAddress7
object
Information that locates and identifies a specific address, as defined by postal services.
18 properties
OBAddressTypeCode
string
Identifies the nature of the postal address.
OBAddressType2Code
string
Identifies the nature of the postal address. For a full set of codes see OBAddressType2Code in OBInternalCodeSet [here](https://github.com/OpenBankingUK/Extern…
OBRegulatoryAuthority2
object
Entity requiring the regulatory reporting information.
2 properties
OBRegulatoryReporting1
object
Information needed due to regulatory and statutory requirements
3 properties
OBStatusReason
object
3 properties
OBStructuredRegulatoryReporting3
object
Set of elements used to provide details on the regulatory reporting information.
5 properties
Department
string
Identification of a division of a large organisation or building.
SubDepartment
string
Identification of a sub-division of a large organisation or building.
StreetName
string
Name of a street or thoroughfare.
BuildingName
string
Name of a referenced building.
BuildingNumber
string
Number that identifies the position of a building on a street.
CareOf
string
The 'care of' address is used whenever sending mail to a person or organisation who does not actually live or work at the address. They will receive the mail f…
DistrictName
string
Number that of the regional area, known as a district, which forms part of an address
Floor
string
Number that identifies the level within a building
PostBox
string
Information that locates and identifies a box in a post office assigned to a person or organization, where letters for them are kept until called for.
PostCode
string
Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
Room
string
Information that locates and identifies a room to form part of an address
UnitNumber
string
Number that identifies the unit of a specific address .
TownName
string
Name of a built-up area, with defined boundaries, and a local government.
CountrySubDivision
string
Identifies a subdivision of a country such as state, region, county.
CountryCode
string
Nation with its own government.
OBVRPStatusReasonCode
string
Reason Code provided for the status of a VRP. To be documented in the Developer Portal.
OBVRPConsentType
string
OBVRPAuthenticationMethods
string
OBVRPInteractionTypes
string
Indicates interaction type, currently if customer is present or not present. If not provided the default is OffSession (customer is not present) when the indiv…
OBRisk1
object
The Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Payments.
9 properties
Links
object
Links relevant to the payload
5 properties 1 required
Meta
object
Meta Data relevant to the payload. At present no fields are used for VRP.
ExternalPaymentTransactionStatus1Code
string
The current status of the payment resource. For a full list of values see ExternalPaymentTransactionStatus1Code in OBInternalCodeSet [here](https://github.com/…
ExternalPaymentTransactionStatus5Code
string
Specifies the status of the payment information group. For a full list of values refer to ExternalPaymentTransactionStatus5Code in OBInternalCodeSet [here](htt…

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

obie-vrp-openapi.yaml Raw ↑

Other APIs Lloyds Banking Group publishes across the network.

Lloyds Banking Group Open Data API
Lloyds Banking Group Account and Transaction Information API
Lloyds Banking Group Payment Initiation API
Lloyds Banking Group Confirmation of Funds API
Lloyds Banking Group Event Notifications API