Yapily Hosted Pages API
Yapily-hosted UI flows for payment initiation and consent capture, including Pay By Link, single and bulk payments, VRP consent, and AIS consent capture — so customers don't have to build their own consent UI.
Yapily-hosted UI flows for payment initiation and consent capture, including Pay By Link, single and bulk payments, VRP consent, and AIS consent capture — so customers don't have to build their own consent UI.
openapi: 3.0.1
info:
title: Yapily Hosted Pages API
description: Hosted Payment Pages and Hosted Consent Pages endpoints providing Yapily-managed UI flows for payments and
data access without building your own consent UI.
version: 12.4.0
contact:
name: Yapily Support
url: https://docs.yapily.com/resources/support
email: support@yapily.com
servers:
- url: https://api.yapily.com
security:
- basicAuth: []
tags:
- description: Hosted Payment Pages endpoints for payments products
name: Hosted Payment Pages
- description: Hosted Consent Pages endpoints for data products
name: Hosted Consent Pages
paths:
/hosted/consent-requests:
post:
description: Used to initiate a consent request using Yapily Hosted Pages.
x-beta: true
operationId: createHostedConsentRequest
parameters:
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
content:
application/json;charset=UTF-8:
examples:
Create Hosted Consent Request:
$ref: '#/components/examples/create-hosted-consent-request'
schema:
$ref: '#/components/schemas/CreateHostedConsentRequest'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
examples:
Create Hosted Consent Request Response:
$ref: '#/components/examples/create-hosted-consent-response'
schema:
$ref: '#/components/schemas/ApiResponseOfCreateHostedConsentRequest'
description: Created
'400':
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized. Credentials are missing or invalid
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
default:
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Create Hosted Consent Request
tags:
- Hosted Consent Pages
x-mint:
content: '<Info>Learn more: [Hosted Consent Pages](/tools-and-services/hosted-pages/overview)</Info>'
/hosted/consent-requests/{consentRequestId}:
get:
description: Used to get details of a hosted consent request
x-beta: true
operationId: getHostedConsentRequest
parameters:
- description: Unique Identifier of the consent request
in: path
name: consentRequestId
required: true
schema:
type: string
- $ref: '#/components/parameters/SubAppHeader'
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Get Hosted Consent Request Response:
$ref: '#/components/examples/get-hosted-consent-response'
schema:
$ref: '#/components/schemas/ApiResponseOfGetHostedConsentRequest'
description: Ok
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized
'404':
content:
application/json;charset=UTF-8:
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Not Found
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
default:
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Get Hosted Consent Request
tags:
- Hosted Consent Pages
/hosted/payment-requests:
post:
description: Used to initiate a payment request using Yapily Hosted Pages.
x-beta: true
operationId: createHostedPaymentRequest
parameters:
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
content:
application/json;charset=UTF-8:
examples:
Create Hosted Payment Request:
$ref: '#/components/examples/create-hosted-payment-request'
schema:
$ref: '#/components/schemas/CreateHostedPaymentRequest'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
examples:
Create Hosted Payment Request Response:
$ref: '#/components/examples/create-hosted-payment-request-response'
schema:
$ref: '#/components/schemas/ApiResponseOfCreateHostedPaymentRequest'
description: Created
'400':
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized. Credentials are missing or invalid
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
default:
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Create Hosted Payment Request
tags:
- Hosted Payment Pages
x-mint:
content: '<Info>Learn more: [Hosted Payment Pages](/tools-and-services/hosted-pages/overview)</Info>'
/hosted/payment-requests/links:
post:
description: Used to created a long lived payment request for Pay By Link
x-beta: true
operationId: createHostedPaymentRequestLink
requestBody:
content:
application/json;charset=UTF-8:
examples:
Create Hosted Payment Request:
$ref: '#/components/examples/create-hosted-payment-request-link'
schema:
$ref: '#/components/schemas/CreateHostedPaymentRequestLink'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
examples:
Create Hosted Payment Request Response:
$ref: '#/components/examples/create-hosted-payment-request-link-response'
schema:
$ref: '#/components/schemas/ApiResponseOfCreateHostedPaymentRequestLink'
description: Created
'400':
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized. Credentials are missing or invalid
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
default:
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Create Pay by Link
tags:
- Hosted Payment Pages
x-mint:
content: '<Info>Learn more: [Pay By Link](/tools-and-services/pay-by-link/overview)</Info>'
/hosted/payment-requests/{paymentRequestId}:
get:
description: Used to get details of a payment request
x-beta: true
operationId: getHostedPaymentRequest
parameters:
- description: Unique Identifier of the payment request
in: path
name: paymentRequestId
required: true
schema:
type: string
- $ref: '#/components/parameters/SubAppHeader'
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Get Hosted Payment Request Response:
$ref: '#/components/examples/get-hosted-payment-request-response'
schema:
$ref: '#/components/schemas/ApiResponseOfGetHostedPaymentRequest'
description: Ok
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized
'404':
content:
application/json;charset=UTF-8:
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Not Found
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
default:
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Get Hosted Payment Request
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests:
post:
description: Used to initiate a VRP consent / mandate request through Yapily Hosted Pages
operationId: createHostedVRPConsentRequest
x-beta: true
parameters:
- description: __Mandatory__. The unique identifier of the sub application the request is being submitted on behalf
of (e.g. an underlying merchant)
in: header
name: sub-application
required: true
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/CreateHostedVRPConsentRequest'
examples:
Create Hosted VRP Consent Request:
$ref: '#/components/examples/create-hosted-vrp-consent-request'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfCreateHostedVRPConsentRequest'
examples:
Create Hosted VRP Consent Response:
$ref: '#/components/examples/create-hosted-vrp-consent-response'
description: Created
'400':
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized. Credentials are missing or invalid
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
summary: Create Vrp Consent
tags:
- Hosted Payment Pages
get:
description: Used to get all VRP consent requests initiated through Yapily Hosted Pages
operationId: getHostedVRPConsentRequests
x-beta: true
parameters:
- description: __Mandatory__. The unique identifier of the sub application the request is being submitted on behalf
of (e.g. an underlying merchant)
in: header
name: sub-application
required: true
schema:
type: string
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfGetHostedVRPConsentsRequest'
examples:
Get Hosted VRP Consents Response:
$ref: '#/components/examples/get-hosted-vrp-consents-response'
description: Ok
'400':
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized. Credentials are missing or invalid
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
summary: Get Hosted Vrp Consent Requests
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests/{consentRequestId}:
get:
description: Used to get details of a VRP Consent Request
operationId: getHostedVrpConsentRequest
x-beta: true
parameters:
- description: The unique identifier of the sub application the request is being submitted on behalf of (e.g. an underlying
merchant)
in: header
name: sub-application
schema:
type: string
- description: Unique Identifier of the Consent Request
in: path
name: consentRequestId
required: true
schema:
type: string
format: uuid
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfGetHostedVRPConsentRequest'
examples:
Get Hosted VRP Consent Response:
$ref: '#/components/examples/get-hosted-vrp-consent-response'
description: Ok
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized
'404':
content:
application/json;charset=UTF-8:
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Not Found
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
summary: Get Hosted Vrp Consent Request
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests/{consentRequestId}/revoke:
post:
description: Revoke Hosted VRP Consent Request
operationId: revokeHostedConsentRequest
x-beta: true
parameters:
- description: The unique identifier of the sub application the request is being submitted on behalf of (e.g. an underlying
merchant)
in: header
name: sub-application
schema:
type: string
- description: Unique Identifier of the Consent Request
in: path
name: consentRequestId
required: true
schema:
type: string
format: uuid
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfRevokeHostedVRPConsentRequest'
examples:
Revoke Hosted VRP Consent Response:
$ref: '#/components/examples/revoke-hosted-vrp-consent-response'
description: Ok
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized
'404':
content:
application/json;charset=UTF-8:
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Not Found
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
summary: Revoke Hosted Vrp Consent Request
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests/{consentRequestId}/payments:
post:
description: Creates a Variable Recurring Payment
operationId: createHostedVrpPayment
x-beta: true
parameters:
- description: Unique Identifier of the Consent Request
in: path
name: consentRequestId
required: true
schema:
type: string
format: uuid
- description: __Mandatory__. The `consent-token` containing the user's authorisation to make the request.
example: '{consentToken}'
in: header
name: consent-token
required: true
schema:
type: string
- description: The unique identifier of the sub application the request is being submitted on behalf of (e.g. an underlying
merchant)
in: header
name: sub-application
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8:
examples:
Hosted VRP Payment Request:
$ref: '#/components/examples/create-hosted-vrp-payment-request'
schema:
$ref: '#/components/schemas/CreateHostedVRPPaymentRequest'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfCreateHostedVRPPaymentRequest'
examples:
Hosted VRP Payment Response:
$ref: '#/components/examples/create-hosted-vrp-payment-response'
description: Created
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
default:
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Create Vrp Payment
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests/{consentRequestId}/payments/{paymentId}:
get:
description: Used to get details of a VRP Payment
operationId: getHostedVRPPaymentRequest
x-beta: true
parameters:
- description: Unique Identifier of the Consent Request
in: path
name: consentRequestId
required: true
schema:
type: string
format: uuid
- description: Unique Identifier of the Consent Request
in: path
name: paymentId
required: true
schema:
type: string
- description: The unique identifier of the sub application the request is being submitted on behalf of (e.g. an underlying
merchant)
in: header
name: sub-application
schema:
type: string
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfGetHostedVRPPaymentRequest'
examples:
UK Domestic VRP Payment Example Response:
$ref: '#/components/examples/get-hosted-vrp-payment-response'
description: Ok
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unauthorized
'404':
content:
application/json;charset=UTF-8:
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Not Found
'500':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Unexpected Error
summary: Get Vrp Payment
tags:
- Hosted Payment Pages
/hosted/vrp/consent-requests/{consentRequestId}/funds-confirmation:
post:
description: "Confirms whether there are available funds on the Payer account to execute a Variable Recurring Payment\
\ after obtaining the user's authorisation. \n\nFeatures:\n\n- `VARIABLE_RECURRING_PAYMENT_FUNDS_CONFIRMATION`"
operationId: createHostedVrpFundsConfirmation
x-beta: true
parameters:
- description: Unique Identifier of the Consent Request
in: path
name: consentRequestId
required: true
schema:
type: string
format: uuid
- description: __Mandatory__. The `consent-token` containing the user's authorisation to make the request.
example: '{consentToken}'
in: header
name: consent-token
required: true
schema:
type: string
- description: The unique identifier of the sub application the request is being submitted on behalf of (e.g. an underlying
merchant)
in: header
name: sub-application
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8:
examples:
Hosted VRP Payment Request:
$ref: '#/components/examples/create-hosted-vrp-fund-confirmation'
schema:
$ref: '#/components/schemas/VrpFundsConfirmationRequest'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseOfVrpFundsConfirmationResponse'
examples:
Hosted VRP Payment Response:
$ref: '#/components/examples/create-hosted-vrp-fund-confirmation-response'
description: Created
'401':
content:
application/json;charset=UTF-8:
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
default:
content:
application/json;charset=UTF-8:
examples:
400 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Check Funds Availability
tags:
- Hosted Payment Pages
components:
schemas:
AccountIdentification:
title: Account Identifications
required:
- type
- identification
type: object
properties:
type:
$ref: '#/components/schemas/AccountIdentificationType'
identification:
title: Account Identification
type: string
description: "__Mandatory__. The value associated with the account identification type.\n\n See [Account Identification\
\ Combinations](/payments/payment-resources/intro-to-payment-execution#account-identifications-combinations) for\
\ more information on the format of the values."
example: '401016'
AccountIdentificationResponse:
title: Account Identifications
type: object
properties:
type:
$ref: '#/components/schemas/AccountIdentificationTypeResponse'
identification:
title: Account Identification
type: string
description: "The value associated with the account identification type.\n\n See [Account Identification Combinations](/payments/payment-resources/intro-to-payment-execution#account-identifications-combinations)\
\ for more information on the format of the values."
example: '401016'
AccountIdentificationType:
title: Account Identification Type
type: string
description: "__Mandatory__. Used to describe the format of the account.\n\n See [Account Identification Combinations](/payments/payment-resources/intro-to-payment-execution#account-identifications-combinations)\
\ for more information on when to specify each type."
example: SORT_CODE
enum:
- SORT_CODE
- ACCOUNT_NUMBER
- IBAN
- BBAN
- BIC
- PAN
- MASKED_PAN
- MSISDN
- BSB
- NCC
- ABA
- ABA_WIRE
- ABA_ACH
- EMAIL
- ROLL_NUMBER
- BLZ
- IFS
- CLABE
- CTN
- BRANCH_CODE
- VIRTUAL_ACCOUNT_ID
AccountIdentificationTypeResponse:
title: Account Identification Type
type: string
description: "Used to describe the format of the account.\n\n See [Account Identification Combinations](/payments/payment-resources/intro-to-payment-execution#account-identifications-combinations)\
\ for more information."
example: SORT_CODE
enum:
- SORT_CODE
- ACCOUNT_NUMBER
- IBAN
- BBAN
- BIC
- PAN
- MASKED_PAN
- MSISDN
- BSB
- NCC
- ABA
- ABA_WIRE
- ABA_ACH
- EMAIL
- ROLL_NUMBER
- BLZ
- IFS
- CLABE
- CTN
- BRANCH_CODE
- VIRTUAL_ACCOUNT_ID
Address:
title: Address Details
type: object
properties:
addressLines:
title: Address Lines
type: array
description: __Optional__. The address line of the address
example:
- Ardenham Court
items:
type: string
streetName:
title: Street
type: string
description: __Optional__. The street name of the address
example: Oxford Road
buildingNumber:
title: Building Number
type: string
description: __Optional__. The building number of the address
example: '45'
postCode:
title: Post Code
type: string
description: __Optional__. The post code of the address
example: HP19 3EQ
townName:
title: Town
type: string
description: __Optional__. The town name of the address
example: Aylesbury
county:
title: County
type: array
description: __Optional__. The list of counties for the address
example:
- Buckinghamshire
items:
type: string
country:
title: Country
type: string
description: "__Conditional__. The 2-letter country code for the address. \n\nAn `Institution` may require you to\
\ specify the `country` when used in the context of the `Payee` to be able to make a payment"
example: GB
department:
title: Department
type: string
description: __Optional__. The department for the address
example: Unit 2
subDepartment:
title: Sub-Department
type: string
description: __Optional__. The sub-department for the address
# --- truncated at 32 KB (145 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yapily/refs/heads/main/openapi/yapily-hosted-pages-api-openapi.yml