openapi: 3.0.1
info:
title: Yapily Beneficiaries API
description: Application and User Beneficiaries endpoints for managing reusable payment counterparties.
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: Application Beneficiaries Endpoints
name: Application Beneficiaries
- description: User Beneficiaries Endpoints
name: User Beneficiaries
paths:
/applications/{applicationId}/beneficiaries:
post:
tags:
- Application Beneficiaries
operationId: createApplicationBeneficiary
summary: Create Application Beneficiary
description: Creation of beneficiaries for a given application.
parameters:
- $ref: '#/components/parameters/ApplicationIdPath'
requestBody:
required: true
description: The beneficiary to be created.
content:
application/json:
schema:
type: object
description: Application beneficiary details.
required:
- name
- accountIdentifier
properties:
name:
type: string
description: beneficiary name
example: John Doe
accountIdentifier:
$ref: '#/components/schemas/AccountIdentifier'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationBeneficiaryResponse'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'409':
description: Conflict
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
x-mint:
content: 'Learn more: [Verification of Payee](/payments/payment-resources/verification-of-payee)'
get:
tags:
- Application Beneficiaries
operationId: getApplicationBeneficiaries
summary: Get All Application Beneficiaries
description: Get all application beneficiaries from an application.
parameters:
- $ref: '#/components/parameters/ApplicationIdPath'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
description: Application beneficiary paginated response.
properties:
meta:
$ref: '#/components/schemas/ResponseListMeta'
data:
type: array
items:
$ref: '#/components/schemas/ApplicationBeneficiaryData'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
/applications/{applicationId}/beneficiaries/{beneficiaryId}:
get:
tags:
- Application Beneficiaries
operationId: getApplicationBeneficiaryById
summary: Get Application Beneficiary by Id
description: Get user beneficiary by id.
parameters:
- $ref: '#/components/parameters/ApplicationIdPath'
- $ref: '#/components/parameters/BeneficiaryIdPath'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationBeneficiaryResponse'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
delete:
tags:
- Application Beneficiaries
operationId: deleteApplicationBeneficiaryById
summary: Delete Application Beneficiary by Id
description: Delete application beneficiary.
parameters:
- $ref: '#/components/parameters/ApplicationIdPath'
- $ref: '#/components/parameters/BeneficiaryIdPath'
responses:
'204':
description: No Content.
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
/users/{userId}/beneficiaries:
post:
tags:
- User Beneficiaries
operationId: createUserBeneficiary
summary: Create Beneficiary
description: Creation of beneficiaries for a given application User.
parameters:
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
required: true
description: The beneficiary to be created.
content:
application/json:
schema:
type: object
description: User Beneficiary details.
required:
- name
- accountIdentifier
properties:
name:
type: string
description: name of the beneficiary
example: John Doe
accountIdentifier:
$ref: '#/components/schemas/AccountIdentifier'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryResponse'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'409':
description: Conflict
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
x-mint:
content: 'Learn more: [Verification of Payee](/payments/payment-resources/verification-of-payee)'
get:
tags:
- User Beneficiaries
operationId: getUserBeneficiaries
summary: Get All Users Beneficiaries
description: Get all users beneficiaries from an userId.
parameters:
- $ref: '#/components/parameters/UserIdPath'
responses:
'200':
description: OK
content:
application/json:
schema:
description: The user beneficiary response.
properties:
meta:
$ref: '#/components/schemas/ResponseListMeta'
data:
type: array
items:
$ref: '#/components/schemas/UserBeneficiaryData'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
/users/{userId}/beneficiaries/{beneficiaryId}:
patch:
tags:
- User Beneficiaries
operationId: patchUserBeneficiary
summary: Patch User Beneficiary
description: Patch the beneficiary details for a given application user and beneficiary
parameters:
- $ref: '#/components/parameters/BeneficiaryIdPath'
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
description: The JSON Patch instructions to patch the beneficiary
required: true
content:
application/json-patch+json:
schema:
type: array
items:
description: Patch details to be applied to user.
type: object
required:
- op
- path
- value
properties:
op:
$ref: '#/components/schemas/PatchOperation'
path:
type: string
description: The path to the target location
value:
type: string
description: The value to be added, replaced or tested
examples:
update-name:
summary: Updating beneficiary name
value:
- op: replace
path: /name
value: John Doe
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryResponse'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'409':
description: Conflict
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
get:
tags:
- User Beneficiaries
operationId: getUserBeneficiary
summary: Get Beneficiary by Id
description: Get user beneficiary by id.
parameters:
- $ref: '#/components/parameters/BeneficiaryIdPath'
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryResponse'
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
delete:
tags:
- User Beneficiaries
operationId: deleteUserBeneficiary
summary: Delete User Beneficiary by Id.
description: Delete user beneficiary by id.
parameters:
- $ref: '#/components/parameters/BeneficiaryIdPath'
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
responses:
'204':
description: No Content.
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
/users/{userId}/beneficiaries/{beneficiaryId}/approve:
post:
tags:
- User Beneficiaries
operationId: approveBeneficiary
summary: Approve Beneficiary
description: End-user has approved the beneficiary details
parameters:
- $ref: '#/components/parameters/BeneficiaryIdPath'
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryValidationRequest'
example:
name: John Doe
match:
status: FULL_MATCH
accountIdentifier:
type: IBAN
identification: GB33BUKB2020155555555
responses:
'200':
description: OK.
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryResponse'
example:
meta:
tracingId: e7b7636d-a041-4013-8a1b-34dc85b7d341
data:
beneficiaryId: a5cc1d07-dd0b-469f-8ebd-f580e8314efd
status: VERIFIED
details:
name: John Doe
match:
status: FULL_MATCH
accountIdentifier:
type: IBAN
identification: GB33BUKB2020155555555
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'429':
description: Too many requests
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
x-mint:
content: 'Learn more: [Verification of Payee](/payments/payment-resources/verification-of-payee)'
/users/{userId}/beneficiaries/{beneficiaryId}/reject:
post:
tags:
- User Beneficiaries
operationId: rejectBeneficiary
summary: Reject Beneficiary
description: End-user has rejected the beneficiary details
parameters:
- $ref: '#/components/parameters/BeneficiaryIdPath'
- $ref: '#/components/parameters/UserIdPath'
- $ref: '#/components/parameters/SubAppHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryValidationRequest'
example:
meta:
tracingId: e7b7636d-a041-4013-8a1b-34dc85b7d341
data:
beneficiaryId: a5cc1d07-dd0b-469f-8ebd-f580e8314efd
details:
name: Albert
match:
status: NO_MATCH
accountIdentifier:
type: IBAN
identification: GB33BUKB2020155555555
responses:
'200':
description: OK.
content:
application/json:
schema:
$ref: '#/components/schemas/UserBeneficiaryResponse'
example:
meta:
tracingId: e7b7636d-a041-4013-8a1b-34dc85b7d341
data:
beneficiaryId: a5cc1d07-dd0b-469f-8ebd-f580e8314efd
status: REJECTED
details:
name: Albert
match:
status: NO_MATCH
accountIdentifier:
type: IBAN
identification: GB33BUKB2020155555555
'400':
description: Invalid request
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'401':
description: Unauthorized
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'404':
description: Not Found
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
'500':
description: Internal error
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ApiErrorResponseV2'
examples:
Example-1:
$ref: '#/components/examples/400-error-response'
x-mint:
content: 'Learn more: [Verification of Payee](/payments/payment-resources/verification-of-payee)'
components:
schemas:
AccountIdentifier:
type: object
description: Account's details.
required:
- identification
- type
properties:
type:
$ref: '#/components/schemas/AccountIdentifierType'
identification:
type: string
description: Account's IBAN
example: DE12345123451234512345123
AccountIdentifierType:
type: string
enum:
- IBAN
ApiErrorResponseV2:
type: object
description: API Error Response
properties:
error:
required:
- tracingId
- code
- status
- issues
type: object
properties:
tracingId:
type: string
description: Unique identifier of the request, used by Yapily for support purposes
code:
type: integer
format: int32
description: Numeric HTTP status code associated with the error
status:
type: string
description: Textual description of the HTTP status
supportUrl:
type: string
description: Link to where further information regarding the error can be found
source:
type: string
description: Source of the error. This may be YAPILY, the INSTITUTION, or the USER
issues:
type: array
description: List of issues relating to the error
items:
required:
- message
- code
type: object
description: Detailed information regarding the issue that was experienced during processing of the request
properties:
type:
type: string
description: Category of the issue
code:
type: string
description: 5 digit Error Code that uniquely identifies the type of issue, for full list of error codes
pelase check our documentation
message:
type: string
description: Human readable description of the issue that was experienced
ApplicationBeneficiaryData:
type: object
description: Application beneficiary data response.
properties:
beneficiaryId:
$ref: '#/components/schemas/BeneficiaryId'
details:
type: object
required:
- name
- accountIdentifier
properties:
name:
type: string
description: name of the beneficiary
example: John Doe
accountIdentifier:
$ref: '#/components/schemas/AccountIdentifier'
ApplicationBeneficiaryResponse:
type: object
description: Application beneficiary response.
properties:
meta:
$ref: '#/components/schemas/ResponseMeta'
data:
$ref: '#/components/schemas/ApplicationBeneficiaryData'
BeneficiaryId:
type: string
format: uuid
example: e7b7636d-a041-4013-8a1b-34dc85b7d341
description: Beneficiary Id
BeneficiaryMatchStatus:
type: string
enum:
- FULL_MATCH
- CLOSE_MATCH
- NO_MATCH
- EXEMPTED
- VERIFICATION_CHECK_NOT_POSSIBLE
BeneficiaryStatus:
description: Status of the beneficiary check.
type: string
enum:
- PENDING
- VERIFIED
- REJECTED
FilterAndSort:
type: object
properties:
from:
type: string
description: __Optional__. The earliest date and time of resources / records that should be returned.
format: date-time
before:
type: string
description: __Optional__. The latest date and time of resources / records that should be returned.
format: date-time
limit:
type: integer
description: __Optional__. The maximum number of resources / records that should be returned.
format: int32
sort:
$ref: '#/components/schemas/SortEnum'
offset:
type: integer
format: int32
cursor:
type: string
Next:
type: object
properties:
from:
type: string
format: date-time
before:
type: string
format: date-time
limit:
type: integer
format: int32
cursor:
type: string
Pagination:
type: object
properties:
totalCount:
type: integer
format: int64
self:
$ref: '#/components/schemas/FilterAndSort'
next:
$ref: '#/components/schemas/Next'
PatchOperation:
type: string
description: The operation to be performed
enum:
- add
- replace
ResponseListMeta:
type: object
properties:
tracingId:
type: string
count:
type: integer
format: int32
pagination:
$ref: '#/components/schemas/Pagination'
ResponseMeta:
type: object
properties:
tracingId:
type: string
SortEnum:
type: string
description: The attribute on which resources / records returned should be sorted. Valid options for the sort parameter.
enum:
- date
- -date
UserBeneficiaryData:
type: object
description: Beneficiary data response.
properties:
beneficiaryId:
type: string
format: uuid
example: e7b7636d-a041-4013-8a1b-34dc85b7d341
description: id of the beneficiary
status:
$ref: '#/components/schemas/BeneficiaryStatus'
details:
description: Beneficiary response with the details of the VoP result.
required:
- name
- accountIdentifier
properties:
name:
type: string
description: name of the beneficiary
example: John Doe
match:
$ref: '#/components/schemas/UserBeneficiaryMatch'
accountIdentifier:
$ref: '#/components/schemas/AccountIdentifier'
UserBeneficiaryMatch:
type: object
description: Details of the match given by the institution.
properties:
status:
$ref: '#/components/schemas/BeneficiaryMatchStatus'
closeMatchName:
type: string
example: John Doe
description: the name returned by the institution, in a case of CLOSE_MATCH
UserBeneficiaryResponse:
type: object
description: The user beneficiary response.
properties:
meta:
$ref: '#/components/schemas/ResponseMeta'
data:
$ref: '#/components/schemas/UserBeneficiaryData'
UserBeneficiaryValidationRequest:
type: object
description: Beneficiary request with the details of the VoP result.
required:
- name
- accountIdentifier
properties:
name:
type: string
description: name of the beneficiary
example: John Doe
match:
$ref: '#/components/schemas/UserBeneficiaryMatch'
accountIdentifier:
$ref: '#/components/schemas/AccountIdentifier'
securitySchemes:
basicAuth:
description: Use HTTP Basic Authentication with your Application ID as username and Application Secret as password.
Manage credentials in the [Yapily Console](https://console.yapily.com/). See [Authentication](/api-reference/authentication)
for details.
scheme: basic
type: http