Yapily Platform API
Manage Applications, Users, Webhooks, Notifications, and Constraints that govern how downstream AIS/PIS interactions operate on the Yapily Open Banking platform.
Manage Applications, Users, Webhooks, Notifications, and Constraints that govern how downstream AIS/PIS interactions operate on the Yapily Open Banking platform.
openapi: 3.0.1
info:
title: Yapily Platform API
description: Manage Applications, Users, Application Management, Constraints, and Webhooks for the Yapily Open Banking platform.
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: The `Application` is the base entity that is used to interact with the API and contains a collection of `Institution`
objects. You can have multiple Applications associated with your account e.g. a production application with live access
to each `Institution` and a development application with access to sandboxes.
name: Application
- description: Application Management endpoints help with creating and managing client sub-applications.
name: Application Management
- description: The Users endpoints are used to manage each user (otherwise known as the PSU) in Yapily. Each user belongs
to an Application and as a consequence, so do each `Consent` created for a particular `User`.
name: Users
- description: The constraints endpoints can be used to retrieve institution specific data requirements and rules that will
apply when performing other operations.
name: Constraints
- description: Webhook endpoints
name: Webhooks
- description: "The Notifications endpoints provide an interactive way for user to receive notifications according to different\
\ event-types. This feature is currently in private beta. Please reach out if you require access. \n\n"
name: Notifications
paths:
/users:
get:
description: Retrieves all users created in your application for a specified applicationUserId using the filter[applicationUserId]
query parameter. If filter[applicationUserId] is not provided, the response will include up to 50,000 users.
operationId: getUsers
parameters:
- description: __Optional__. Filter records based on the list of `applicationUserId` users provided.
in: query
name: filter[applicationUserId]
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Example Response:
$ref: '#/components/examples/users_example-response'
schema:
type: array
items:
$ref: '#/components/schemas/ApplicationUser'
description: Ok
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 Users
tags:
- Users
post:
description: Create a new user in your application
operationId: addUser
requestBody:
content:
application/json;charset=UTF-8:
examples:
Create User Example Request:
$ref: '#/components/examples/create-user-example-request'
schema:
$ref: '#/components/schemas/NewApplicationUser'
required: true
responses:
'201':
content:
application/json;charset=UTF-8:
examples:
Example Response:
$ref: '#/components/examples/create-user_example-response'
schema:
$ref: '#/components/schemas/ApplicationUser'
description: Created
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 User
tags:
- Users
/users/{userUuid}:
patch:
description: Update the users information
operationId: patchUser
parameters:
- description: __Mandatory__. The Yapily generated UUID for the user.
in: path
name: userUuid
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/ApplicationUserPatchRequest'
responses:
'201':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApplicationUser'
description: Created
default:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Error Response
summary: Update User
tags:
- Users
delete:
description: Delete a user from your application along with any sub-resources (including consent resources on institution
APIs if they exist)
operationId: deleteUser
parameters:
- description: __Mandatory__. The Yapily generated UUID for the user.
in: path
name: userUuid
required: true
schema:
type: string
format: uuid
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Example Response:
$ref: '#/components/examples/delete-user_example-response'
schema:
$ref: '#/components/schemas/ApiResponseOfUserDeleteResponse'
description: Ok
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: Delete User
tags:
- Users
get:
description: Get a specific user using the user UUID
operationId: getUser
parameters:
- description: __Mandatory__. The Yapily generated UUID for the user.
in: path
name: userUuid
required: true
schema:
type: string
format: uuid
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Example Response:
$ref: '#/components/examples/user_example-response'
schema:
$ref: '#/components/schemas/ApplicationUser'
description: Ok
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 User
tags:
- Users
/notifications/event-subscriptions:
post:
tags:
- Notifications
summary: Create Event Subscription
description: Used to subscribe to notifications relating to a specified event type.
operationId: createEventSubscription
x-beta: true
parameters:
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscriptionRequest'
responses:
'201':
description: Event subscription created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseOfEventSubscriptionResponse'
'400':
description: Bad request for missing required properties
'401':
description: Unauthorized
'409':
description: Event subscription already exist for the application
x-mint:
content: '<Info>Learn more: [Webhooks & Notifications](/tools-and-services/webhooks/introduction)</Info>'
get:
tags:
- Notifications
summary: Get Event Subscriptions
description: Get all event subscriptions that your application is subscribed to
operationId: getEventSubscriptions
x-beta: true
parameters:
- description: The sub-application ID for which all event subscriptions will be returned
in: header
name: sub-application
required: false
schema:
type: string
format: uuid
responses:
'200':
description: Event subscriptions for the application
content:
application/json:
schema:
$ref: '#/components/schemas/ApiListResponseOfEventSubscriptionResponse'
'401':
description: Unauthorized
/notifications/event-subscriptions/{eventTypeId}:
get:
tags:
- Notifications
summary: Get Event Subscription
description: Used to get details of your subscription to a specified event type.
operationId: getEventSubscriptionById
x-beta: true
parameters:
- $ref: '#/components/parameters/EventTypeId'
- $ref: '#/components/parameters/SubAppHeader'
responses:
'200':
description: Event subscription data found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseOfEventSubscriptionResponse'
'401':
description: Unauthorized
'404':
description: Event subscription not found
delete:
tags:
- Notifications
summary: Delete Event Subscription
description: Used to unsubscribe to notifications relating to a specified event type.
operationId: deleteEventSubscriptionById
x-beta: true
parameters:
- $ref: '#/components/parameters/EventTypeId'
- description: The sub-application ID for which event type will be deleted
in: header
name: sub-application
required: false
schema:
type: string
format: uuid
responses:
'200':
description: Event subscription deleted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseOfEventSubscriptionDeleteResponse'
'401':
description: Unauthorized
'404':
description: Event subscription not found
/institutions/constraints/payments:
get:
description: Retrieve institution specific constraints for payment authorisation and submission requests
operationId: getPaymentConstraintsRulesByInstitution
x-beta: true
parameters:
- description: Unique Id(s) of the `Institution`(s) to retrieve the Payment Constraints for. Multiple institutionIds
need to be separated by `,`
name: institutionIds
required: true
in: query
schema:
type: array
items:
type: string
- description: Country code of the `Institution`(s). Ensure that the country code matches the respective institutionIds;
any mismatch will result in an HTTP 404 error response.
in: query
name: institutionCountryCode
required: true
schema:
type: string
- description: Type of payment to retrieve payment constraints for
in: query
name: paymentType
required: true
schema:
type: string
enum:
- DOMESTIC_PAYMENT
- DOMESTIC_INSTANT_PAYMENT
- DOMESTIC_VARIABLE_RECURRING_PAYMENT
- DOMESTIC_SCHEDULED_PAYMENT
- DOMESTIC_PERIODIC_PAYMENT
- INTERNATIONAL_PAYMENT
- INTERNATIONAL_SCHEDULED_PAYMENT
- INTERNATIONAL_PERIODIC_PAYMENT
- description: The path on the API that is associated with the operation for which constraints are to be retrieved
in: query
name: endpointPath
required: false
schema:
type: string
- description: The HTTP method that is associated with the operation for which constraints are to be retrieved
in: query
name: endpointMethod
required: false
schema:
type: string
enum:
- POST
- PATCH
- PUT
- GET
- DELETE
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiListResponseOfPaymentConstraints'
description: Ok
'400':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request.
'401':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Either authentication credentials were not supplied, or they were invalid.
'404':
content:
application/json;charset=UTF-8:
examples:
500 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 Payment Constraints Rules
tags:
- Constraints
x-mint:
content: '<Info>Learn more: [Payment Constraints](/payments/payment-resources/payment-constraints) for institution-specific
requirements</Info>'
/institutions/constraints/data:
get:
description: Get Data Constraints Rules against an Institution for Account Authorisation requests
operationId: getAccountConstraintsRulesByInstitution
x-beta: true
parameters:
- description: Unique Id(s) of the `Institution`(s) to retrieve the Data Constraints for. Multiple institutionIds need
to be separated by `,`
name: institutionIds
required: true
in: query
schema:
type: array
items:
type: string
- description: Country code of the `Institution`(s). Ensure that the country code matches the respective institutionIds;
any mismatch will result in an HTTP 404 error response.
in: query
name: institutionCountryCode
required: true
schema:
type: string
- description: The path on the API that is associated with the operation for which constraints are to be retrieved
in: query
name: endpointPath
required: false
schema:
type: string
- description: The HTTP method that is associated with the operation for which constraints are to be retrieved
in: query
name: endpointMethod
required: false
schema:
type: string
enum:
- POST
- PATCH
- PUT
- GET
- DELETE
responses:
'200':
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiListResponseOfDataConstraints'
description: Ok
'400':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/400-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Bad Request.
'401':
content:
application/json;charset=UTF-8:
examples:
500 Error Response:
$ref: '#/components/examples/401-error-response'
schema:
$ref: '#/components/schemas/ApiResponseError'
description: Either authentication credentials were not supplied, or they were invalid.
'404':
content:
application/json;charset=UTF-8:
examples:
500 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 Data Constraints Rules
tags:
- Constraints
/applications:
post:
description: Creates a sub-application under the given root application id provided in the authentication token. The
sub-application can use the root's credentials to call the API
summary: Creates a Sub-application for the Root Application Id Provided in the Authentication Token
x-beta: true
operationId: createSubApplication
requestBody:
description: The sub-application to create
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationRequest'
examples:
Create Sub-application Request:
$ref: '#/components/examples/application-request'
responses:
'201':
content:
application/json;charset=UTF-8:
examples:
Create Sub-application Response:
$ref: '#/components/examples/application-response'
schema:
$ref: '#/components/schemas/ApiResponseOfApplicationResponse'
description: Sub-application was successfully created
'400':
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/application-error-response-code-400'
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
description: There are validation errors
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'404':
description: Application with given root id not found.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
tags:
- Application Management
x-mint:
content: '<Info>Learn more: [Application Management](/getting-started/application-management)</Info>'
get:
description: Retrieves sub-applications for the root application provided in the authentication token. If a sub-application
is provided in the authentication token, it will return an empty list.
summary: Retrieve Sub-applications for the Root Application Provided in the Authentication Token.
x-beta: true
operationId: searchApplications
parameters:
- $ref: '#/components/parameters/SearchApplicationsParameters'
responses:
'200':
description: The sub-applications that are returned as part of the search results.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiListOfApplicationResponse'
examples:
Get Applications Response:
$ref: '#/components/examples/application-responses'
'400':
description: There are validation errors
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
tags:
- Application Management
/applications/{applicationId}:
get:
description: Retrieves an application by the id provided in the path
x-beta: true
operationId: getApplicationById
parameters:
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
description: The id of the application being fetched
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Get Application By Id Response:
$ref: '#/components/examples/application-response'
schema:
$ref: '#/components/schemas/ApiResponseOfApplicationResponse'
description: Application was successfully fetched
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'404':
description: Application with given id not found.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
tags:
- Application Management
summary: Get Application Details
put:
description: Updates the application properties for the application with the given ID in the path
x-beta: true
operationId: updateApplication
parameters:
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
description: The id of the application being updated
requestBody:
description: The application to update
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationRequest'
examples:
Update Application Request:
$ref: '#/components/examples/application-request'
responses:
'200':
content:
application/json;charset=UTF-8:
examples:
Update Application Response:
$ref: '#/components/examples/application-response'
schema:
$ref: '#/components/schemas/ApiResponseOfApplicationResponse'
description: Application was successfully updated
'400':
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/application-error-response-code-400'
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
description: There are validation errors
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
tags:
- Application Management
summary: Update an Application
delete:
description: Deletes the application with the given ID in the path
x-beta: true
operationId: deleteApplication
parameters:
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
description: The id of the application being deleted
responses:
'204':
description: Application was successfully deleted
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/error-response-code-401'
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'404':
description: Application with given id not found.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
tags:
- Application Management
summary: Delete an Application
/applications/{applicationId}/vrp:
post:
description: Create application vrp configuration
summary: Create Application Vrp Configuration by Application Id
x-beta: true
operationId: createApplicationVRPConfigurationByApplicationId
parameters:
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
description: The id of the application that vrp configuration being created for
requestBody:
description: The vrp configuration to create
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VrpConfiguration'
responses:
'201':
description: Application vrp configuration was successfully created
'400':
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/application-error-response-code-400'
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
description: There are validation errors
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
examples:
403 Error Response:
$ref: '#/components/examples/403-error-response'
'404':
description: VRP Configuration with given application id not found.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
examples:
404 Error Response:
$ref: '#/components/examples/404-error-response'
'500':
description: An unexpected error occurred.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
examples:
500 Error Response:
$ref: '#/components/examples/500-error-response'
tags:
- Application Management
put:
description: Update application vrp configuration
summary: Update Application Vrp Configuration by Application Id
x-beta: true
operationId: updateApplicationVRPConfigurationByApplicationId
parameters:
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
description: The id of the application that vrp configuration being created for
requestBody:
description: The vrp configuration to create
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VrpConfiguration'
responses:
'201':
description: Application vrp configuration was successfully updated
'400':
content:
application/json;charset=UTF-8:
examples:
Error Response:
$ref: '#/components/examples/application-error-response-code-400'
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
description: There are validation errors
'401':
description: Either authentication credentials were not supplied, or they were invalid.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
examples:
401 Error Response:
$ref: '#/components/examples/401-error-response'
'403':
description: Forbidden from accessing the requested Application.
content:
application/json;charset=UTF-8:
# --- truncated at 32 KB (253 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yapily/refs/heads/main/openapi/yapily-platform-api-openapi.yml