NAV
shell

Yapily API v1.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The Yapily API enables connections between your application and users' banks. For more information check out our product guides.

In particular, make sure to view our Getting Started guide if this is your first time here.

For a list of changes, see our changelog.

While testing the API, our list of sandbox credentials maybe useful.

Authentication

Requests to the Yapily API are authenticated using an Application's API_KEY and API_SECRET. You can view and manage your credentials in the Yapily Dashboard.

An API_KEY and API_SECRET relate to a single Application and its associated Institutions, configuration and registration information, so it is important to keep these credentials secure. Do not share your API_SECRET in publicly accessible areas such as GitHub, client-side code, etc.

Authentication is performed using HTTP Basic Authentication. Your API_KEY should be sent as the basic auth username and your API_SECRET should be sent as the basic auth password.

All requests should be made via HTTPS.

Application

The Application is the base entity that is used to interact with the API and represents your application software. You may have multiple Applications associated with your account.

Get Application

Code samples

curl -X GET https://api.yapily.com/me \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /me

Returns the details of the Application that owns the request credentials

Example responses

200 Response

{
  "active": true,
  "authCallbacks": [
    "https://test.example.com/callback"
  ],
  "created": "2020-09-09T10:31:53.968+0000",
  "institutions": [
    {
      "countries": [
        {
          "countryCode2": "GB",
          "displayName": "United Kingdom"
        }
      ],
      "credentialsType": "OAUTH1",
      "environmentType": "SANDBOX",
      "features": [
        "INITIATE_PRE_AUTHORISATION"
      ],
      "fullName": "Yapily Mock Bank",
      "id": "yapily-mock",
      "media": [
        {
          "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
          "type": "icon"
        }
      ],
      "name": "Yapily Mock"
    }
  ],
  "media": [
    {
      "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
      "type": "icon"
    }
  ],
  "name": "My App 6238",
  "updated": "2020-09-09T10:31:53.968+0000",
  "uuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a"
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning an Application. Application
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found The Application Service was unable to retrieve the Application. ApiResponseError

Response Headers

Status Header Type Format Description
200 x-yapily-platform string The backend that processed the request

Users

A User represents a customer of your application software and is associated with the Application. A User is also refered to as the 'PSU'

Get Users

Code samples

curl -X GET https://api.yapily.com/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /users

Used to retrieve all User objects from an Application.

Parameters

Name In Type Description
filter[applicationUserId] query string Filter users by the provided application user Id (applicationUserId) when the user was created.

Example responses

200 Response

[
  {
    "applicationUserId": "bojack@8tees.com",
    "applicationUuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a",
    "institutionConsents": [
      {
        "institutionId": "yapily-mock"
      }
    ],
    "referenceId": "myuserreference",
    "uuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
  }
]

Responses

Status Meaning Description Schema
200 OK A successful response, returning a list of Users. Inline
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 200

Name Type Description
anonymous [User] none
» applicationUserId string none
» applicationUuid string none
» institutionConsents [InstitutionConsent] none
»» institutionId string none
» referenceId string none
» uuid string none

Create User

Code samples

curl -X POST https://api.yapily.com/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /users

Used to create a User associated with the Application. This step is not necessary to make an authorisation request.

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "referenceId": "myuserreference"
}

Parameters

Name In Type Description
body
Mandatory
body NewApplicationUser The requestBody

Example responses

201 Response

{
  "applicationUserId": "bojack@8tees.com",
  "applicationUuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a",
  "institutionConsents": [
    {
      "institutionId": "yapily-mock"
    }
  ],
  "referenceId": "myuserreference",
  "uuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a User. User
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
409 Conflict Returned if the applicationUserId already exists for the Application or if the applicationUserId equals the reserved value 'Simulator User' ApiResponseError

Get User

Code samples

curl -X GET https://api.yapily.com/users/{userUuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /users/{userUuid}

Used to retrieve a User object from an Application by the unique id of the user.

Parameters

Name In Type Description
userUuid
Mandatory
path string The ID of the User

Example responses

200 Response

{
  "applicationUserId": "bojack@8tees.com",
  "applicationUuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a",
  "institutionConsents": [
    {
      "institutionId": "yapily-mock"
    }
  ],
  "referenceId": "myuserreference",
  "uuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a User. User
400 Bad Request Bad Request. Returned if the userUuid is not a valid UUID. ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the userUuid is not found for the Application. ApiResponseError

Delete User

Code samples

curl -X DELETE https://api.yapily.com/users/{userUuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

DELETE /users/{userUuid}

Delete an application user and sub-resources (including consent resources on institution APIs if they exist)

Parameters

Name In Type Description
userUuid
Mandatory
path string The ID of the User
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "creationDate": "2019-05-10T17:36:49.269+0000",
    "deleteStatus": "SUCCESS",
    "id": "c50844cb-1498-44aa-90d1-62eae8cdb3f6",
    "userConsents": [
      {
        "creationDate": "2019-05-10T16:45:43.566+0000",
        "deleteStatus": "SUCCESS",
        "id": "a71fd46f-4144-478e-9a72-dd0d7a1158ab",
        "institutionConsentId": "aac-1cce1cfc-1ab2-4ed6-8062-a0fd6c5c2122",
        "institutionId": "yapily-mock"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a UserDeleteResponse. Inline
400 Bad Request Bad Request. Returned if the userUuid is not a valid UUID or if the optional raw parameter is sent with an invalid value. ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the userUuid is not found for the Application. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data UserDeleteResponse An object returned from a successful user delete request
»» creationDate string none
»» deleteStatus DeleteStatusEnum none
»» id string none
»» userConsents [ConsentDeleteResponse] [An object returned from a UserDeleteResponse]
»»» creationDate string none
»»» deleteStatus DeleteStatusEnum none
»»» id string none
»»» institutionConsentId string none
»»» institutionId string none

Enumerated Values

Property Value
deleteStatus SUCCESS
deleteStatus FAILED
deleteStatus SUCCESS
deleteStatus FAILED

Institutions

An Institution object represents any Account Serving Payment Servicing Provider (ASPSP) that has been integrated and is accessible through the Yapily APIs (ASPSPs are entities that publish Read/Write APIs to permit, with customer consent, payments initiated by third party providers and/or make their customers’ account transaction data available to third party providers via their API end points).

Any one of the following would be represented as Institution:

Traditional banks e.g. Santander Neo-banks e.g. Monzo Building societies e.g. Cumberland Building Society

Get Institutions

Code samples

curl -X GET https://api.yapily.com/institutions \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /institutions

Used to retrieve all Institutions from the Application.

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "countries": [
        {
          "countryCode2": "GB",
          "displayName": "United Kingdom"
        }
      ],
      "credentialsType": "OAUTH1",
      "environmentType": "SANDBOX",
      "features": [
        "INITIATE_PRE_AUTHORISATION"
      ],
      "fullName": "Yapily Mock Bank",
      "id": "yapily-mock",
      "media": [
        {
          "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
          "type": "icon"
        }
      ],
      "name": "Yapily Mock"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a list of Institutions. Inline
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [Institution] none
»» countries [Country] none
»»» countryCode2 string none
»»» displayName string none
»» credentialsType CredentialsType none
»» environmentType EnvironmentType none
»» features [FeatureEnum] none
»» fullName string none
»» id string none
»» media [Media] none
»»» source string none
»»» type string none
»» name string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
credentialsType OAUTH1
credentialsType OAUTH2
credentialsType OAUTH2_NOSECRET
credentialsType OAUTH2_SIGNATURE
credentialsType OPEN_BANKING_UK_MANUAL
credentialsType OPEN_BANKING_UK_AUTO
credentialsType OPEN_BANKING_IBM
credentialsType OPEN_BANKING_AUTO
credentialsType OPEN_BANKING_AUTO_EMAIL
credentialsType OPEN_BANKING_MANUAL
credentialsType API_KEY
credentialsType OPEN_BANKING_NO_KEY
credentialsType OPEN_BANKING_NO_TRANSPORT
credentialsType TOKEN_IO
environmentType SANDBOX
environmentType MOCK
environmentType LIVE

Get Institution

Code samples

curl -X GET https://api.yapily.com/institutions/{institutionId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /institutions/{institutionId}

Used to retrieves details of a specific institution from the Application.

Parameters

Name In Type Description
institutionId
Mandatory
path string The ID of the Institution

Example responses

200 Response

{
  "countries": [
    {
      "countryCode2": "GB",
      "displayName": "United Kingdom"
    }
  ],
  "credentialsType": "OAUTH1",
  "environmentType": "SANDBOX",
  "features": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "fullName": "Yapily Mock Bank",
  "id": "yapily-mock",
  "media": [
    {
      "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
      "type": "icon"
    }
  ],
  "name": "Yapily Mock"
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning an Institution. Institution
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the institutionId is not valid or if it is not configured for the Application ApiResponseError

Get Features

Code samples

curl -X GET https://api.yapily.com/features \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /features

Used to retrieve all Features available from Yapily. Each Institution supports a one, many or all of these features and can be seen in the features field of the Institution object.

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "documentationUrl": "https://docs.yapily.com/#757fde49-a294-bbff-d5f9-2c21c5f57be0",
      "endpoint": "https://api.yapily.com/account/{account-id}",
      "feature": "INITIATE_PRE_AUTHORISATION"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning an Institution. Inline
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [FeatureDetails] none
»» documentationUrl string none
»» endpoint string none
»» feature FeatureEnum none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
feature INITIATE_PRE_AUTHORISATION
feature INITIATE_ACCOUNT_REQUEST
feature ACCOUNT_REQUEST_DETAILS
feature ACCOUNTS
feature ACCOUNT
feature ACCOUNT_TRANSACTIONS
feature ACCOUNT_STATEMENTS
feature ACCOUNT_STATEMENT
feature ACCOUNT_STATEMENT_FILE
feature ACCOUNT_SCHEDULED_PAYMENTS
feature ACCOUNT_DIRECT_DEBITS
feature ACCOUNT_PERIODIC_PAYMENTS
feature ACCOUNT_TRANSACTIONS_WITH_MERCHANT
feature IDENTITY
feature ACCOUNTS_WITHOUT_BALANCE
feature ACCOUNT_WITHOUT_BALANCE
feature ACCOUNT_BALANCES
feature INITIATE_SINGLE_PAYMENT_SORTCODE
feature EXISTING_PAYMENT_INITIATION_DETAILS
feature CREATE_SINGLE_PAYMENT_SORTCODE
feature EXISTING_PAYMENTS_DETAILS
feature INITIATE_DOMESTIC_SINGLE_PAYMENT
feature CREATE_DOMESTIC_SINGLE_PAYMENT
feature INITIATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
feature CREATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
feature INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
feature CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
feature INITIATE_DOMESTIC_SCHEDULED_PAYMENT
feature CREATE_DOMESTIC_SCHEDULED_PAYMENT
feature INITIATE_DOMESTIC_PERIODIC_PAYMENT
feature CREATE_DOMESTIC_PERIODIC_PAYMENT
feature PERIODIC_PAYMENT_FREQUENCY_EXTENDED
feature INITIATE_INTERNATIONAL_VARIABLE_RECURRING_PAYMENT
feature CREATE_INTERNATIONAL_VARIABLE_RECURRING_PAYMENT
feature INITIATE_INTERNATIONAL_SCHEDULED_PAYMENT
feature CREATE_INTERNATIONAL_SCHEDULED_PAYMENT
feature INITIATE_INTERNATIONAL_PERIODIC_PAYMENT
feature CREATE_INTERNATIONAL_PERIODIC_PAYMENT
feature INITIATE_INTERNATIONAL_SINGLE_PAYMENT
feature CREATE_INTERNATIONAL_SINGLE_PAYMENT
feature INITIATE_BULK_PAYMENT
feature CREATE_BULK_PAYMENT
feature TRANSFER
feature OPEN_DATA_PERSONAL_CURRENT_ACCOUNTS
feature OPEN_DATA_ATMS
feature READ_DOMESTIC_SINGLE_REFUND
feature READ_DOMESTIC_SCHEDULED_REFUND
feature READ_DOMESTIC_PERIODIC_PAYMENT_REFUND
feature READ_INTERNATIONAL_SINGLE_REFUND
feature READ_INTERNATIONAL_SCHEDULED_REFUND

Consents

The Consent object contains data that identifies a user's consent for a specific financial institution within a Yapily application. Other than the id of the consent, the institution-id for the corresponding institution and the user identifiers user-uuid and application-user-id, it contains various details that indicates how the Consent can be used.

Get Consents

Code samples

curl -X GET https://api.yapily.com/consents \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /consents

Used to retrieve all Consent objects in descending order by date (with the most recently created consent at the top).

Parameters

Name In Type Description
filter[applicationUserId] query array[string] Filter consents by your application user Id (applicationUserId)
filter[userUuid] query array[string] Filter consents by Yapily user Id (userUuid)
filter[institution] query array[string] Use this parameter to filter consent by institution, using the Yapily institution Id
filter[status] query array[string] Use this parameter to filter consent by status
from query string Use this parameter to filter consents created after the date specified. Date must be a valid date-time of format yyyy-MM-dd'T'HH:mm:ss.SSSZ e.g. 2007-12-03T10:15:30+01:00.
before query string Use this parameter to filter consents created before the date specified. Date must be a valid date-time of format yyyy-MM-dd'T'HH:mm:ss.SSSZ e.g. 2007-12-03T10:15:30+01:00.
limit query integer Use this parameter to limit consent results, max limit is 20
offset query integer Use this parameter to specify the offset of the results
raw query boolean Raw parameter available for debugging purposes

Enumerated Values

Parameter Value
filter[status] AWAITING_AUTHORIZATION
filter[status] AWAITING_FURTHER_AUTHORIZATION
filter[status] AWAITING_RE_AUTHORIZATION
filter[status] AUTHORIZED
filter[status] CONSUMED
filter[status] REJECTED
filter[status] REVOKED
filter[status] FAILED
filter[status] EXPIRED
filter[status] UNKNOWN
filter[status] INVALID
filter[status] AWAITING_PRE_AUTHORIZATION
filter[status] PRE_AUTHORIZED

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "applicationUserId": "bojack@8tees.com",
      "authorizedAt": "2020-09-13T15:57:46.450Z",
      "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
      "createdAt": "2020-09-13T15:57:46.450Z",
      "expiresAt": "2020-09-13T15:57:46.450Z",
      "featureScope": [
        "INITIATE_PRE_AUTHORISATION"
      ],
      "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
      "institutionId": "yapily-mock",
      "referenceId": "myuserreference",
      "state": "754f6022f47548b99284f3f1993e050e",
      "status": "AWAITING_AUTHORIZATION",
      "timeToExpire": "PT-375H-40M-21.397S",
      "transactionFrom": "2020-09-13T15:57:46.450Z",
      "transactionTo": "2020-09-13T15:57:46.450Z",
      "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a list of Consents. Inline
400 Bad Request Bad Request. Returned if optional parameter filter[status] is sent with an invalid enum value
or if the optional raw parameter is not a valid boolean
or if the optional filter[userUuid] parameter is not a valid UUID
or if the optional offset parameter is not a valid integer
or if the optional limit parameter is not a valid integer
or if the optional from parameter is not a valid date with format yyyy-MM-dd'T'HH:mm:ss.SSSZ. VERIFY
or if the optional before parameter is not a valid date with format yyyy-MM-dd'T'HH:mm:ss.SSSZ. VERIFY
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [Consent] none
»» applicationUserId string none
»» authorizedAt string none
»» consentToken string none
»» createdAt string none
»» expiresAt string none
»» featureScope [FeatureEnum] none
»» id string none
»» institutionId string none
»» referenceId string none
»» state string none
»» status AuthorisationStatus none
»» timeToExpire string none
»» transactionFrom string none
»» transactionTo string none
»» userUuid string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Code samples

curl -X GET https://api.yapily.com/consents/{consentId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /consents/{consentId}

Used to retrieve a specific consent by ID.

Name In Type Description
consentId
Mandatory
path string The ID of the consent
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
  }
}
Status Meaning Description Schema
200 OK A successful response, returning a list of Consents. Inline
400 Bad Request Bad Request. Returned if the consentId is not a valid UUID.
or if the optional raw parameter is not a valid boolean
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the consentId is not found for the Application. ApiResponseError

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data Consent none
»» applicationUserId string none
»» authorizedAt string none
»» consentToken string none
»» createdAt string none
»» expiresAt string none
»» featureScope [FeatureEnum] none
»» id string none
»» institutionId string none
»» referenceId string none
»» state string none
»» status AuthorisationStatus none
»» timeToExpire string none
»» transactionFrom string none
»» transactionTo string none
»» userUuid string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Code samples

curl -X DELETE https://api.yapily.com/consents/{consentId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

DELETE /consents/{consentId}

Deleting a user consent will also delete the tokens created through user authorisation. For example, in the case of an institution that makes use of OAuth2, the encrypted access token and refresh token will be deleted. To execute further requests requiring consent, you will need to request authorisation again from the user to Create Account Authorisation Request or Create Payment Authorisation Request.

Name In Type Description
consentId
Mandatory
path string The ID of the consent
forceDelete query boolean Whether to forceDelete consents. Defaults to true
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "creationDate": "2019-05-10T16:45:43.566+0000",
    "deleteStatus": "SUCCESS",
    "id": "a71fd46f-4144-478e-9a72-dd0d7a1158ab",
    "institutionConsentId": "aac-1cce1cfc-1ab2-4ed6-8062-a0fd6c5c2122",
    "institutionId": "yapily-mock"
  }
}
Status Meaning Description Schema
200 OK A successful response, returning a ConsentDeleteResponse. Inline
400 Bad Request Bad Request. Returned if the consentId is not a valid UUID.
or if the optional raw parameter is not a valid boolean
or if the optional forceDelete parameter is not a valid boolean
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the consentId is not found for the Application. ApiResponseError

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data ConsentDeleteResponse An object returned from a UserDeleteResponse
»» creationDate string none
»» deleteStatus DeleteStatusEnum none
»» id string none
»» institutionConsentId string none
»» institutionId string none

Enumerated Values

Property Value
deleteStatus SUCCESS
deleteStatus FAILED

Exchange One Time Token

Code samples

curl -X POST https://api.yapily.com/consent-one-time-token \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /consent-one-time-token

Used to retrieve a consentToken in exchange for a oneTimeToken. One time tokens cannot be used again after successfully being exchanged for a consentToken. A one time token is only valid for 3 minutes and in case of it expiring, Get Consents should be used to obtain the consentToken.

Note: to receive a one time token, set oneTimeToken to true in your Create Account Authorisation Request or Create Payment Authorisation Request.

Body parameter

{
  "oneTimeToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6ImJidmEtc2FuZGJveCIsIlVVSUQiOiJmMzNmNGU4ZC1jMDQ0LTQ2YTktOTlkMC0wYmRlMzIyYTJjOTIifQ.4Qv3NJI6av2nKi1U3aNmm71cIwJ3TvRsIlYDafQUVv_Khy_e-8oEpV_BoP4V1CII12oT-Yq4cPveHILz8BOwjg"
}

Parameters

Name In Type Description
body
Mandatory
body OneTimeTokenRequest The requestBody

Example responses

201 Response

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a Consent. Consent
400 Bad Request Bad Request. Returned if the oneTimeToken is not present in the requestBody. ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Forbidden. Returned if the oneTimeToken has status CLAIMED or EXPIRED. ApiResponseError
404 Not Found Not Found. Returned if the oneTimeToken is invalid or not found. ApiResponseError

(Forwarding) Send Access Token

Code samples

curl -X POST https://api.yapily.com/users/{userUuid}/consents \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /users/{userUuid}/consents

For standard user authorised requests, ignore this endpoint and execute a Create Account Authorisation Request to obtain a Yapily consent token.

This endpoint is particularly for creating a Yapily consent token by sending OAuth2 access token or API key data.

The most common use cases for creating consent tokens with this data:

The financial institution provides API keys to access user data. This applies to any institution with the credentialsType of API_KEY You already have the access token for a user and want to allow Yapily to manage your integration and token refreshing Note the distinction between access tokens, API keys and the Yapily consent token. An OAuth2 access token is a short-lived, refreshable object created by a third party to authorise access to the end user's resources. Similarly, an API key is created by a third party and is valid until either the institution or end user revokes access. The consent token returned by Yapily is a generic, longer-lived token specifically for use with this API that abstracts multiple methods of representing consent and handles the mechanisms for using and refreshing tokens.

Body parameter

{
  "accessToken": "",
  "institutionId": "yapily-mock",
  "refreshToken": "",
  "scope": ""
}

Parameters

Name In Type Description
userUuid
Mandatory
path string The ID of the User
body
Mandatory
body CreateConsentAccessToken The requestBody

Example responses

201 Response

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a Consent. Consent
400 Bad Request Bad Request. Returned if the userUuid is not a valid UUID
or if the institutionId is not configured for the Application
or if accessToken is missing from the requestBody
or if institutionId is missing from the requestBody
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. Returned if the userUuid is not found for the Application or if the institutionId is not valid. ApiResponseError

(Forwarding) Send OAuth2 Code

Code samples

curl -X POST https://api.yapily.com/consent-auth-code \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /consent-auth-code

Submit the OAuth2 authorisation code authCode and state authState received from the institution after the user has authenticated to receive a consent-token.

Body parameter

{
  "authCode": "fg67Hj",
  "authState": "f3daec98152e420297cebdd301db6dde"
}

Parameters

Name In Type Description
body
Mandatory
body ConsentAuthCodeRequest The requestBody

Example responses

201 Response

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a Consent. Consent
400 Bad Request Bad Request. Returned if the authCode is not set or is invalid
or authState is not set or is invalid.
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
424 Failed Dependency Failed Dependency. ApiResponseError

Obtaining a Consent

Before calling Financial Data or Payment endpoints a consent from an end-user must be obtained.

Consents are valid for up to 90 days for financial data endpoints and have a single-use for payment endpoints i.e. a new consent must be obtained for each payment.

Create Account Authorisation

Code samples

curl -X POST https://api.yapily.com/account-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /account-auth-requests

Used to initiate the authorisation process and direct users to the login screen of their financial institution in order to give consent to access account data.

Feature: INITIATE_ACCOUNT_REQUEST

A User can be generated as part of this request, if no userUuid is provided and if the applicationUserId does not already exist.

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "accountRequest": {
    "accountIdentifiers": {
      "accountId": "500000000000000000000001",
      "accountIdentification": {
        "identification": null,
        "type": null
      }
    },
    "accountIdentifiersForBalance": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "accountIdentifiersForTransaction": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "expiresAt": "2018-10-17T15:11:38Z",
    "featureScope": [
      "ACCOUNT_STATEMENT"
    ],
    "psuCorporateId": "",
    "psuId": "",
    "transactionsFrom": "",
    "transactionsTo": ""
  }
}

Parameters

Name In Type Description
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body AccountAuthorisationRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the requestBody does not contain either the userUuid or applicationUserId.
or if the requestBody does not contain the institutionId or the institution does not belong to the Application.
or if the AccountRequest.expiresAt is in the past.
or if the AccountRequest.transactionsFrom is after AccountRequest.transactionsTo
or if the callback is set but is an invalid URI or is not configured on the Application
or if the callback longer than 4096.
or if oneTimeToken is set to true without a callback
or if the featureScope array includes an invalid Feature
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Re-authorize Account Auth

Code samples

curl -X PATCH https://api.yapily.com/account-auth-requests \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

PATCH /account-auth-requests

Used to prompt the account holder for continued access to their financial data. This endpoint should be used when a Consent that was previously AUTHORIZED can no longer be used to retrieve data. Only the original features that were specified when the Consent can be re-authorised.

A financial data Consent can be re-authorised at any time as long as it is not in any on of the following terminal states: * EXPIRED * REJECTED * REVOKED If your financial data Consent is in a terminal state, it can no longer be used and a new Consent needs to be created from a Create Account Authorisation Request for continued access to the user's data.

When to re-authorise? For the CMA9, each institution must prompt for Strong Customer Authentication (SCA) every 90 days to remain compliant. This means that the maximum period that any endpoint can be accessed without any interaction with the user is 90 days.

Restrictions enforced by institutions It is common for institutions to enforce their own restrictions on specific endpoints, drastically reducing the period where no authorisation from the user is required to as little as 5 minutes e.g. identity or historical data older than 90 days. Yapily does not publicly release information on how each institution behaves as this information is subject to change.

You can usually identify when an endpoint requires re-authorisation by the emergence of FORBIDDEN 403 errors for requests to financial data endpoints that previously returned OK 200. In light of this, Yapily recommends that you design flows which prompt for SCA when requests for financial data returns FORBIDDEN 403 errors.

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
404 Not Found Not Found. The Consent-Token was not valid. ApiResponseError
406 Not Acceptable Not Acceptable. The Consent-Token does not support re-authorisation. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Update Account Auth

Code samples

curl -X PUT https://api.yapily.com/account-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

PUT /account-auth-requests

Update pre authorize consent for user to authorise account

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "accountRequest": {
    "accountIdentifiers": {
      "accountId": "500000000000000000000001",
      "accountIdentification": {
        "identification": null,
        "type": null
      }
    },
    "accountIdentifiersForBalance": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "accountIdentifiersForTransaction": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "expiresAt": "2018-10-17T15:11:38Z",
    "featureScope": [
      "ACCOUNT_STATEMENT"
    ],
    "psuCorporateId": "",
    "psuId": "",
    "transactionsFrom": "",
    "transactionsTo": ""
  }
}

Parameters

Name In Type Description
consent header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body AccountAuthorisationRequest The requestBody

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the AccountRequest.expiresAt is in the past.
or if the AccountRequest.transactionsFrom is after AccountRequest.transactionsTo
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Forbidden. The status of the original is not PRE_AUTHORIZED.
or the scope is not AIS
ApiResponseError
404 Not Found Not Found. The Consent-Token was not valid. ApiResponseError
406 Not Acceptable Not Acceptable. The Consent-Token does not support re-authorisation. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Create Payment Authorisation

Code samples

curl -X POST https://api.yapily.com/payment-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /payment-auth-requests

Used to initiate the authorisation process and direct users to the login screen of their financial institution in order to give their consent for a payment. This endpoint is used to initiate all the different payment types mentioned above. Based on the type of payment you wish to make, you may be required to provide specific properties in the payload of the request. First make sure that the payment feature you wish to executed is supported by the bank by checking the features array in GET Institution.

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "allowOverdraft": true,
  "expiresAt": "2020-08-18T16:24:22.316Z",
  "maxAmountPerRequest": 10,
  "paymentRequest": {
    "amount": {
      "amount": 10,
      "currency": "GBP"
    },
    "contextType": "BILL",
    "internationalPayment": {
      "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
    },
    "payee": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "merchantCategoryCode": "5462",
      "merchantId": "12345678",
      "name": "Bojack Horseman"
    },
    "payer": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "name": "Bojack Horseman"
    },
    "paymentDateTime": "2019-12-26T14:42:53Z",
    "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
    "periodicPayment": {
      "finalPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "finalPaymentDateTime": "",
      "frequency": {
        "executionDay": null,
        "intervalMonth": null,
        "intervalWeek": null,
        "type": null
      },
      "nextPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "nextPaymentDateTime": "2018-01-10T00:00:00Z",
      "numberOfPayments": 1
    },
    "psuCorporateId": "",
    "psuId": "",
    "readRefundAccount": true,
    "reference": "REFERENCE",
    "type": "DOMESTIC_PAYMENT"
  },
  "startsAt": "2020-08-18T16:24:22.316Z",
  "totalMaxAmount": 10,
  "totalMaxAmountFrequency": "DAILY"
}

Parameters

Name In Type Description
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body PaymentAuthorisationRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "charges": [
      {
        "chargeAmount": {},
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      }
    ],
    "exchangeRateInformation": {
      "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
    },
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a PaymentAuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the paymentRequest is not part of the requestBody
or if the AccountRequest.transactionsFrom is after AccountRequest.transactionsTo
or if the requestBody does not contain either the userUuid or applicationUserId.
or if the requestBody does not contain the institutionId or the institution does not belong to the Application.
or if the callback is set but is an invalid URI or is not configured on the Application
or if the callback longer than 4096.
or if oneTimeToken is set to true without a callback
or if the featureScope array includes an invalid Feature
or if the PaymentRequest.type is sent with an invalid PaymentType enum value.
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» charges [ChargeDetails] none
»»»» chargeAmount Amount none
»»»»» amount integer(float) none
»»»»» currency string none
»»»» chargeTo string none
»»»» chargeType string none
»»» exchangeRateInformation ExchangeRateInformationResponse none
»»»» exchangeRateExpiryDate string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Update Payment Auth

Code samples

curl -X PUT https://api.yapily.com/payment-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

PUT /payment-auth-requests

Update pre authorize consent for user to authorise payment

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "allowOverdraft": true,
  "expiresAt": "2020-08-18T16:24:22.316Z",
  "maxAmountPerRequest": 10,
  "paymentRequest": {
    "amount": {
      "amount": 10,
      "currency": "GBP"
    },
    "contextType": "BILL",
    "internationalPayment": {
      "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
    },
    "payee": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "merchantCategoryCode": "5462",
      "merchantId": "12345678",
      "name": "Bojack Horseman"
    },
    "payer": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "name": "Bojack Horseman"
    },
    "paymentDateTime": "2019-12-26T14:42:53Z",
    "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
    "periodicPayment": {
      "finalPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "finalPaymentDateTime": "",
      "frequency": {
        "executionDay": null,
        "intervalMonth": null,
        "intervalWeek": null,
        "type": null
      },
      "nextPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "nextPaymentDateTime": "2018-01-10T00:00:00Z",
      "numberOfPayments": 1
    },
    "psuCorporateId": "",
    "psuId": "",
    "readRefundAccount": true,
    "reference": "REFERENCE",
    "type": "DOMESTIC_PAYMENT"
  },
  "startsAt": "2020-08-18T16:24:22.316Z",
  "totalMaxAmount": 10,
  "totalMaxAmountFrequency": "DAILY"
}

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body PaymentAuthorisationRequest The requestBody

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "charges": [
      {
        "chargeAmount": {},
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      }
    ],
    "exchangeRateInformation": {
      "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
    },
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentAuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the requestBody does not contain the institutionId or the institution does not belong to the Application.
or if the callback is set but is an invalid URI or is not configured on the Application
or if the callback longer than 4096.
or if oneTimeToken is set to true without a callback
or if the PaymentRequest.type is sent with an invalid PaymentType enum value.
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Forbidden. The status of the original is not PRE_AUTHORIZED.
or the scope is not PIS
ApiResponseError
404 Not Found Not Found. The Consent-Token was not valid. ApiResponseError
406 Not Acceptable Not Acceptable. The Consent-Token does not support re-authorisation. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» charges [ChargeDetails] none
»»»» chargeAmount Amount none
»»»»» amount integer(float) none
»»»»» currency string none
»»»» chargeTo string none
»»»» chargeType string none
»»» exchangeRateInformation ExchangeRateInformationResponse none
»»»» exchangeRateExpiryDate string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Create PreAuth

Code samples

curl -X POST https://api.yapily.com/pre-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /pre-auth-requests

Initiate request for user to pre authorise for AIS or PIS

Body parameter

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "scope": "AIS"
}

Parameters

Name In Type Description
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body PreAuthorisationRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the callback is set but is an invalid URI or is not configured on the Application
or if the callback longer than 4096.
or if oneTimeToken is set to true without a callback
or if the requestBody does not contain the institutionId or the institution does not belong to the Application.
or if the scope is not either AIS or PIS
or if the scope is AIS and the institution does not support AIS
or if the scope is PIS and the institution does not support PIS
or if the institution does not support pre-authorisation Feature
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Create Bulk-Payment Authorisation

Code samples

curl -X POST https://api.yapily.com/bulk-payment-auth-requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /bulk-payment-auth-requests

Used to initiate the payment authorisation process for a business account and direct users to the login screen of their financial institution in order to give their consent for a bulk payment.

Body parameter

{
  "applicationUserId": "bojack@8tees.com",
  "callback": "https://test.example.com/callback",
  "forwardParameters": [
    ""
  ],
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "paymentRequest": {
    "executionDateTime": "2020-10-17T00:00:00Z",
    "originatorIdentificationNumber": "",
    "payments": [
      {
        "amount": {},
        "contextType": "[",
        "internationalPayment": {},
        "payee": {},
        "payer": {},
        "paymentDateTime": "2019-12-26T14:42:53Z",
        "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
        "periodicPayment": {},
        "psuCorporateId": "",
        "psuId": "",
        "readRefundAccount": true,
        "reference": "REFERENCE",
        "type": "["
      }
    ]
  }
}

Parameters

Name In Type Description
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body BulkPaymentAuthorisationRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "applicationUserId": "bojack@8tees.com",
    "authorizedAt": "2020-09-13T15:57:46.450Z",
    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
    "createdAt": "2020-09-13T15:57:46.450Z",
    "expiresAt": "2020-09-13T15:57:46.450Z",
    "featureScope": [
      "INITIATE_PRE_AUTHORISATION"
    ],
    "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
    "institutionId": "yapily-mock",
    "referenceId": "myuserreference",
    "state": "754f6022f47548b99284f3f1993e050e",
    "status": "AWAITING_AUTHORIZATION",
    "timeToExpire": "PT-375H-40M-21.397S",
    "transactionFrom": "2020-09-13T15:57:46.450Z",
    "transactionTo": "2020-09-13T15:57:46.450Z",
    "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
    "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
    "charges": [
      {
        "chargeAmount": {},
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      }
    ],
    "exchangeRateInformation": {
      "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
    },
    "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a PaymentAuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the paymentRequest is not part of the requestBody
or if the AccountRequest.transactionsFrom is after AccountRequest.transactionsTo
or if the requestBody does not contain either the userUuid or applicationUserId.
or if the requestBody does not contain the institutionId or the institution does not belong to the Application.
or if the callback is set but is an invalid URI or is not configured on the Application
or if the callback longer than 4096.
or if oneTimeToken is set to true without a callback
or if any of the PaymentRequests.type are sent with an invalid PaymentType enum value.
None
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data any none

allOf

Name Type Description
»» anonymous Consent none
»»» applicationUserId string none
»»» authorizedAt string none
»»» consentToken string none
»»» createdAt string none
»»» expiresAt string none
»»» featureScope [FeatureEnum] none
»»» id string none
»»» institutionId string none
»»» referenceId string none
»»» state string none
»»» status AuthorisationStatus none
»»» timeToExpire string none
»»» transactionFrom string none
»»» transactionTo string none
»»» userUuid string none

and

Name Type Description
»» anonymous object none
»»» authorisationUrl string none
»»» charges [ChargeDetails] none
»»»» chargeAmount Amount none
»»»»» amount integer(float) none
»»»»» currency string none
»»»» chargeTo string none
»»»» chargeType string none
»»» exchangeRateInformation ExchangeRateInformationResponse none
»»»» exchangeRateExpiryDate string none
»»» qrCodeUrl string none

Enumerated Values

Property Value
status AWAITING_AUTHORIZATION
status AWAITING_FURTHER_AUTHORIZATION
status AWAITING_RE_AUTHORIZATION
status AUTHORIZED
status CONSUMED
status REJECTED
status REVOKED
status FAILED
status EXPIRED
status UNKNOWN
status INVALID
status AWAITING_PRE_AUTHORIZATION
status PRE_AUTHORIZED

Financial Data

In order to access your user's financial data, you are required to obtain their consent to share this information. Once a Consent token is obtained, you can call the Financial Data endpoints to retrieve various financial data for your user.

Get Accounts

Code samples

curl -X GET https://api.yapily.com/accounts \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts

Returns all accounts and balances for the end user associated with the presented consent token.

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "accountBalances": [
        {
          "balanceAmount": {
            "amount": null,
            "currency": null
          },
          "creditLineIncluded": true,
          "creditLines": [
            {}
          ],
          "dateTime": "2020-09-21T16:35:55Z",
          "type": "CLOSING_AVAILABLE"
        }
      ],
      "accountIdentifications": [
        {
          "identification": "VALUE_OF_IDENTIFICATION",
          "type": "SORT_CODE"
        }
      ],
      "accountNames": [
        {
          "name": "name"
        }
      ],
      "accountType": "CASH_TRADING",
      "balance": 5313.4,
      "currency": "GBP",
      "description": "HSBC ADVANCE",
      "details": "",
      "id": "aadn1pyst5ka1o1x8gkklori09n60rtgcr5t",
      "nickname": "Personal",
      "type": "Personal - Current",
      "usageType": "PERSONAL"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [Account] none
»» accountBalances [AccountBalance] none
»»» balanceAmount Amount none
»»»» amount integer(float) none
»»»» currency string none
»»» creditLineIncluded boolean none
»»» creditLines [CreditLine] none
»»»» creditLineAmount Amount none
»»»» type CreditLineType none
»»» dateTime string none
»»» type AccountBalanceType none
»» accountIdentifications [AccountIdentification] none
»»» identification string none
»»» type AccountIdentificationType none
»» accountNames [AccountName] none
»»» name string none
»» accountType AccountType none
»» balance integer(decimal) none
»» currency string none
»» description string none
»» details string none
»» id string none
»» nickname string none
»» type string none
»» usageType UsageType none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
type AVAILABLE
type CREDIT
type EMERGENCY
type PRE_AGREED
type TEMPORARY
type OTHER
type UNKNOWN
type CLOSING_AVAILABLE
type CLOSING_BOOKED
type CLOSING_CLEARED
type EXPECTED
type FORWARD_AVAILABLE
type INFORMATION
type INTERIM_AVAILABLE
type INTERIM_BOOKED
type INTERIM_CLEARED
type OPENING_AVAILABLE
type OPENING_BOOKED
type OPENING_CLEARED
type PREVIOUSLY_CLOSED_BOOKED
type AUTHORISED
type OTHER
type UNKNOWN
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
accountType CASH_TRADING
accountType CASH_INCOME
accountType CASH_PAYMENT
accountType CHARGE_CARD
accountType CHARGES
accountType COMMISSION
accountType CREDIT_CARD
accountType CURRENT
accountType E_MONEY
accountType LIMITED_LIQUIDITY_SAVINGS_ACCOUNT
accountType LOAN
accountType MARGINAL_LENDING
accountType MONEY_MARKET
accountType MORTGAGE
accountType NON_RESIDENT_EXTERNAL
accountType OTHER
accountType OVERDRAFT
accountType OVERNIGHT_DEPOSIT
accountType PREPAID_CARD
accountType SALARY
accountType SAVINGS
accountType SETTLEMENT
accountType TAX
accountType UNKNOWN
usageType PERSONAL
usageType BUSINESS
usageType OTHER
usageType UNKNOWN

Get Account

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id} \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}

Returns the account and balance details of a specific account belonging to the end user associated with the presented consent token.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "accountBalances": [
      {
        "balanceAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "creditLineIncluded": true,
        "creditLines": [
          {
            "creditLineAmount": null,
            "type": null
          }
        ],
        "dateTime": "2020-09-21T16:35:55Z",
        "type": "CLOSING_AVAILABLE"
      }
    ],
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "accountNames": [
      {
        "name": "name"
      }
    ],
    "accountType": "CASH_TRADING",
    "balance": 5313.4,
    "currency": "GBP",
    "description": "HSBC ADVANCE",
    "details": "",
    "id": "aadn1pyst5ka1o1x8gkklori09n60rtgcr5t",
    "nickname": "Personal",
    "type": "Personal - Current",
    "usageType": "PERSONAL"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AuthorisationRequestResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data Account none
»» accountBalances [AccountBalance] none
»»» balanceAmount Amount none
»»»» amount integer(float) none
»»»» currency string none
»»» creditLineIncluded boolean none
»»» creditLines [CreditLine] none
»»»» creditLineAmount Amount none
»»»» type CreditLineType none
»»» dateTime string none
»»» type AccountBalanceType none
»» accountIdentifications [AccountIdentification] none
»»» identification string none
»»» type AccountIdentificationType none
»» accountNames [AccountName] none
»»» name string none
»» accountType AccountType none
»» balance integer(decimal) none
»» currency string none
»» description string none
»» details string none
»» id string none
»» nickname string none
»» type string none
»» usageType UsageType none

Enumerated Values

Property Value
type AVAILABLE
type CREDIT
type EMERGENCY
type PRE_AGREED
type TEMPORARY
type OTHER
type UNKNOWN
type CLOSING_AVAILABLE
type CLOSING_BOOKED
type CLOSING_CLEARED
type EXPECTED
type FORWARD_AVAILABLE
type INFORMATION
type INTERIM_AVAILABLE
type INTERIM_BOOKED
type INTERIM_CLEARED
type OPENING_AVAILABLE
type OPENING_BOOKED
type OPENING_CLEARED
type PREVIOUSLY_CLOSED_BOOKED
type AUTHORISED
type OTHER
type UNKNOWN
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
accountType CASH_TRADING
accountType CASH_INCOME
accountType CASH_PAYMENT
accountType CHARGE_CARD
accountType CHARGES
accountType COMMISSION
accountType CREDIT_CARD
accountType CURRENT
accountType E_MONEY
accountType LIMITED_LIQUIDITY_SAVINGS_ACCOUNT
accountType LOAN
accountType MARGINAL_LENDING
accountType MONEY_MARKET
accountType MORTGAGE
accountType NON_RESIDENT_EXTERNAL
accountType OTHER
accountType OVERDRAFT
accountType OVERNIGHT_DEPOSIT
accountType PREPAID_CARD
accountType SALARY
accountType SAVINGS
accountType SETTLEMENT
accountType TAX
accountType UNKNOWN
usageType PERSONAL
usageType BUSINESS
usageType OTHER
usageType UNKNOWN

Get Account Direct Debits

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/direct-debits \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'limit: 0' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/direct-debits

Get the list of direct debits for an account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
limit header integer Use this parameter to limit account's direct debit results
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "amount": "10.00",
      "amountDetails": {
        "amount": 10,
        "currency": "GBP"
      },
      "bulkAmountSum": 100,
      "chargeDetails": [
        {
          "chargeAmount": {
            "amount": null,
            "currency": null
          },
          "chargeTo": "",
          "chargeType": "BULK_PAYMENT"
        }
      ],
      "createdAt": "2019-09-26T15:38:33.401Z",
      "currency": "GBP",
      "currencyOfTransfer": "",
      "exchangeRate": {
        "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
      },
      "finalPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "firstPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "frequency": {
        "executionDay": 1,
        "intervalMonth": 1,
        "intervalWeek": 1,
        "type": "DAILY"
      },
      "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
      "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
      "nextPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "numberOfPayments": 10,
      "payeeDetails": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
      "previousPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "previousPaymentDateTime": "",
      "priority": "",
      "purpose": "",
      "reference": "REFERENCE",
      "scheduledPaymentDateTime": "",
      "scheduledPaymentType": "",
      "status": "PENDING",
      "statusDetails": {
        "status": "PENDING",
        "statusReason": "",
        "statusReasonDescription": "",
        "statusUpdateDate": "",
        "multiAuthorisationStatus": {
          "status": "",
          "numberOfAuthorisationRequired": 1,
          "numberOfAuthorisationReceived": 1,
          "lastUpdatedDateTime": "",
          "expirationDateTime": ""
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [PaymentResponse] none
»» amount integer(decimal) none
»» amountDetails Amount none
»»» amount integer(float) none
»»» currency string none
»» bulkAmountSum integer(decimal) none
»» chargeDetails [ChargeDetails] none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» createdAt string none
»» currency string none
»» currencyOfTransfer string none
»» exchangeRate ExchangeRateInformationResponse none
»»» exchangeRateExpiryDate string none
»» finalPaymentAmount Amount none
»» finalPaymentDateTime string none
»» firstPaymentAmount Amount none
»» firstPaymentDateTime string none
»» frequency FrequencyRequest none
»»» executionDay integer none
»»» intervalMonth integer none
»»» intervalWeek integer none
»»» type FrequencyEnumExtended none
»» id string none
»» institutionConsentId string none
»» nextPaymentAmount Amount none
»» nextPaymentDateTime string none
»» numberOfPayments integer none
»» payeeDetails Payee none
»»» accountIdentifications [AccountIdentification] none
»»»» identification string none
»»»» type AccountIdentificationType none
»»» address Address none
»»»» addressLine [string] none
»»»» addressType AddressTypeEnum none
»»»» buildingNumber string none
»»»» country string none
»»»» county [string] none
»»»» department string none
»»»» postCode string none
»»»» streetName string none
»»»» subDepartment string none
»»»» townName string none
»»» merchantCategoryCode string none
»»» merchantId string none
»»» name string none
»» payer Payer none
»»» accountIdentifications [AccountIdentification] none
»»» address Address none
»»» name string none
»» paymentIdempotencyId string none
»» paymentLifecycleId string none
»» previousPaymentAmount Amount none
»» previousPaymentDateTime string none
»» priority string none
»» purpose string none
»» reference string none
»» scheduledPaymentDateTime string none
»» scheduledPaymentType string none
»» status PaymentStatus none
»» statusDetails PaymentStatusDetails none
»»» status PaymentStatus none
»»» statusReason string none
»»» statusReasonDescription string none
»»» statusUpdateDate string none
»»» multiAuthorisationStatus MultiAuthorisation none
»»»» status string none
»»»» numberOfAuthorisationRequired integer none
»»»» numberOfAuthorisationReceived integer none
»»»» lastUpdatedDateTime string none
»»»» expirationDateTime string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Get Account Periodic Payments

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/periodic-payments \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'limit: 0' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/periodic-payments

Returns a list of periodic payments (standing orders in the UK) for a specific account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
limit header integer Use this parameter to limit account's periodic payment order results
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "amount": "10.00",
      "amountDetails": {
        "amount": 10,
        "currency": "GBP"
      },
      "bulkAmountSum": 100,
      "chargeDetails": [
        {
          "chargeAmount": {
            "amount": null,
            "currency": null
          },
          "chargeTo": "",
          "chargeType": "BULK_PAYMENT"
        }
      ],
      "createdAt": "2019-09-26T15:38:33.401Z",
      "currency": "GBP",
      "currencyOfTransfer": "",
      "exchangeRate": {
        "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
      },
      "finalPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "firstPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "frequency": {
        "executionDay": 1,
        "intervalMonth": 1,
        "intervalWeek": 1,
        "type": "DAILY"
      },
      "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
      "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
      "nextPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "numberOfPayments": 10,
      "payeeDetails": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
      "previousPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "previousPaymentDateTime": "",
      "priority": "",
      "purpose": "",
      "reference": "REFERENCE",
      "scheduledPaymentDateTime": "",
      "scheduledPaymentType": "",
      "status": "PENDING",
      "statusDetails": {
        "status": "PENDING",
        "statusReason": "",
        "statusReasonDescription": "",
        "statusUpdateDate": "",
        "multiAuthorisationStatus": {
          "status": "",
          "numberOfAuthorisationRequired": 1,
          "numberOfAuthorisationReceived": 1,
          "lastUpdatedDateTime": "",
          "expirationDateTime": ""
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [PaymentResponse] none
»» amount integer(decimal) none
»» amountDetails Amount none
»»» amount integer(float) none
»»» currency string none
»» bulkAmountSum integer(decimal) none
»» chargeDetails [ChargeDetails] none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» createdAt string none
»» currency string none
»» currencyOfTransfer string none
»» exchangeRate ExchangeRateInformationResponse none
»»» exchangeRateExpiryDate string none
»» finalPaymentAmount Amount none
»» finalPaymentDateTime string none
»» firstPaymentAmount Amount none
»» firstPaymentDateTime string none
»» frequency FrequencyRequest none
»»» executionDay integer none
»»» intervalMonth integer none
»»» intervalWeek integer none
»»» type FrequencyEnumExtended none
»» id string none
»» institutionConsentId string none
»» nextPaymentAmount Amount none
»» nextPaymentDateTime string none
»» numberOfPayments integer none
»» payeeDetails Payee none
»»» accountIdentifications [AccountIdentification] none
»»»» identification string none
»»»» type AccountIdentificationType none
»»» address Address none
»»»» addressLine [string] none
»»»» addressType AddressTypeEnum none
»»»» buildingNumber string none
»»»» country string none
»»»» county [string] none
»»»» department string none
»»»» postCode string none
»»»» streetName string none
»»»» subDepartment string none
»»»» townName string none
»»» merchantCategoryCode string none
»»» merchantId string none
»»» name string none
»» payer Payer none
»»» accountIdentifications [AccountIdentification] none
»»» address Address none
»»» name string none
»» paymentIdempotencyId string none
»» paymentLifecycleId string none
»» previousPaymentAmount Amount none
»» previousPaymentDateTime string none
»» priority string none
»» purpose string none
»» reference string none
»» scheduledPaymentDateTime string none
»» scheduledPaymentType string none
»» status PaymentStatus none
»» statusDetails PaymentStatusDetails none
»»» status PaymentStatus none
»»» statusReason string none
»»» statusReasonDescription string none
»»» statusUpdateDate string none
»»» multiAuthorisationStatus MultiAuthorisation none
»»»» status string none
»»»» numberOfAuthorisationRequired integer none
»»»» numberOfAuthorisationReceived integer none
»»»» lastUpdatedDateTime string none
»»»» expirationDateTime string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Get Account Scheduled Payments

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/scheduled-payments \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'limit: 0' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/scheduled-payments

Get the list of scheduled payments for an account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
limit header integer Use this parameter to limit account's scheduled payment results
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "amount": "10.00",
      "amountDetails": {
        "amount": 10,
        "currency": "GBP"
      },
      "bulkAmountSum": 100,
      "chargeDetails": [
        {
          "chargeAmount": {
            "amount": null,
            "currency": null
          },
          "chargeTo": "",
          "chargeType": "BULK_PAYMENT"
        }
      ],
      "createdAt": "2019-09-26T15:38:33.401Z",
      "currency": "GBP",
      "currencyOfTransfer": "",
      "exchangeRate": {
        "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
      },
      "finalPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "firstPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "frequency": {
        "executionDay": 1,
        "intervalMonth": 1,
        "intervalWeek": 1,
        "type": "DAILY"
      },
      "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
      "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
      "nextPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "numberOfPayments": 10,
      "payeeDetails": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
      "previousPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "previousPaymentDateTime": "",
      "priority": "",
      "purpose": "",
      "reference": "REFERENCE",
      "scheduledPaymentDateTime": "",
      "scheduledPaymentType": "",
      "status": "PENDING",
      "statusDetails": {
        "status": "PENDING",
        "statusReason": "",
        "statusReasonDescription": "",
        "statusUpdateDate": "",
        "multiAuthorisationStatus": {
          "status": "",
          "numberOfAuthorisationRequired": 1,
          "numberOfAuthorisationReceived": 1,
          "lastUpdatedDateTime": "",
          "expirationDateTime": ""
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [PaymentResponse] none
»» amount integer(decimal) none
»» amountDetails Amount none
»»» amount integer(float) none
»»» currency string none
»» bulkAmountSum integer(decimal) none
»» chargeDetails [ChargeDetails] none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» createdAt string none
»» currency string none
»» currencyOfTransfer string none
»» exchangeRate ExchangeRateInformationResponse none
»»» exchangeRateExpiryDate string none
»» finalPaymentAmount Amount none
»» finalPaymentDateTime string none
»» firstPaymentAmount Amount none
»» firstPaymentDateTime string none
»» frequency FrequencyRequest none
»»» executionDay integer none
»»» intervalMonth integer none
»»» intervalWeek integer none
»»» type FrequencyEnumExtended none
»» id string none
»» institutionConsentId string none
»» nextPaymentAmount Amount none
»» nextPaymentDateTime string none
»» numberOfPayments integer none
»» payeeDetails Payee none
»»» accountIdentifications [AccountIdentification] none
»»»» identification string none
»»»» type AccountIdentificationType none
»»» address Address none
»»»» addressLine [string] none
»»»» addressType AddressTypeEnum none
»»»» buildingNumber string none
»»»» country string none
»»»» county [string] none
»»»» department string none
»»»» postCode string none
»»»» streetName string none
»»»» subDepartment string none
»»»» townName string none
»»» merchantCategoryCode string none
»»» merchantId string none
»»» name string none
»» payer Payer none
»»» accountIdentifications [AccountIdentification] none
»»» address Address none
»»» name string none
»» paymentIdempotencyId string none
»» paymentLifecycleId string none
»» previousPaymentAmount Amount none
»» previousPaymentDateTime string none
»» priority string none
»» purpose string none
»» reference string none
»» scheduledPaymentDateTime string none
»» scheduledPaymentType string none
»» status PaymentStatus none
»» statusDetails PaymentStatusDetails none
»»» status PaymentStatus none
»»» statusReason string none
»»» statusReasonDescription string none
»»» statusUpdateDate string none
»»» multiAuthorisationStatus MultiAuthorisation none
»»»» status string none
»»»» numberOfAuthorisationRequired integer none
»»»» numberOfAuthorisationReceived integer none
»»»» lastUpdatedDateTime string none
»»»» expirationDateTime string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Get Account Balances

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/balances \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/balances

Returns the balance for the end user associated with the presented consent token.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "balances": [
        {
          "balanceAmount": {
            "amount": null,
            "currency": null
          },
          "creditLineIncluded": true,
          "creditLines": [
            {}
          ],
          "dateTime": "2020-09-21T16:35:55Z",
          "type": "CLOSING_AVAILABLE"
        }
      ],
      "mainBalanceAmount": {
        "amount": 10,
        "currency": "GBP"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data [Balances] none
»» balances [AccountBalance] none
»»» balanceAmount Amount none
»»»» amount integer(float) none
»»»» currency string none
»»» creditLineIncluded boolean none
»»» creditLines [CreditLine] none
»»»» creditLineAmount Amount none
»»»» type CreditLineType none
»»» dateTime string none
»»» type AccountBalanceType none
»» mainBalanceAmount Amount none

Enumerated Values

Property Value
type AVAILABLE
type CREDIT
type EMERGENCY
type PRE_AGREED
type TEMPORARY
type OTHER
type UNKNOWN
type CLOSING_AVAILABLE
type CLOSING_BOOKED
type CLOSING_CLEARED
type EXPECTED
type FORWARD_AVAILABLE
type INFORMATION
type INTERIM_AVAILABLE
type INTERIM_BOOKED
type INTERIM_CLEARED
type OPENING_AVAILABLE
type OPENING_BOOKED
type OPENING_CLEARED
type PREVIOUSLY_CLOSED_BOOKED
type AUTHORISED
type OTHER
type UNKNOWN

Get Account Transactions

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/transactions \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/transactions

Used to get the transactions from a specific account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
with query string Can be categories or merchants. When set, will include enrichment data in the transactions returned.
from query string Optional. Returned transactions will be after this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
before query string Optional. Returned transactions will be before this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
limit query string Optional. The maximum number of transaction records to be returned. Must be between 0 and 1000
sort query string Optional. Sort transaction records by date ascending with date or descending with -date. The default sort order is descending.
offset query string Optional. The number of transaction records to be skipped. Used primarily with paginated results
cursor query string Optional. This property is not currently in use.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "addressDetails": {
        "addressLine": "123 Test Street, Test, AB1 2DC"
      },
      "amount": 10,
      "balance": {
        "balanceAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "type": "CLOSING_AVAILABLE"
      },
      "bookingDateTime": "2019-04-20T23:54:10.937Z",
      "chargeDetails": {
        "chargeAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      },
      "currency": "GBP",
      "currencyExchange": {
        "exchangeRate": 1.34,
        "sourceCurrency": "GBP",
        "targetCurrency": "EUR",
        "unitCurrency": "GBP"
      },
      "date": "2019-04-20T23:54:10.937Z",
      "description": "Exchanged to EUR",
      "enrichment": {
        "categorisation": {
          "categories": "[Object]",
          "source": "MODEL"
        },
        "transactionHash": {
          "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
        },
        "merchant": {
          "merchantName": "DEBENHAMS",
          "parentGroup": "ARCADIA"
        },
        "paymentProcessor": "PAYPAL",
        "location": "LONDON",
        "correctedDate": "2020-05-04T14:31:04.872Z"
      },
      "id": "d6f8ee30-7804-4c62-9457-fe64fcd23fc2",
      "isoBankTransactionCode": {
        "domainCode": {
          "code": "",
          "name": ""
        },
        "familyCode": {
          "code": "",
          "name": ""
        },
        "subFamilyCode": {
          "code": "",
          "name": ""
        }
      },
      "merchant": {
        "merchantCategoryCode": "5462",
        "merchantName": "London Luxury Baker"
      },
      "proprietaryBankTransactionCode": {
        "code": "EXCHANGE",
        "issuer": "Revolut"
      },
      "reference": "mytrxref",
      "statementReferences": [
        {
          "value": "They sent you money for carrots"
        }
      ],
      "status": "BOOKED",
      "supplementaryData": {
        "name": "",
        "value": ""
      },
      "transactionAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "transactionInformation": [
        ""
      ],
      "valueDateTime": "2019-04-20T23:54:10.937Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [Transaction] none
»» addressDetails AddressDetails none
»»» addressLine string none
»» amount integer(decimal) none
»» balance Balance none
»»» balanceAmount Amount none
»»»» amount integer(float) none
»»»» currency string none
»»» type AccountBalanceType none
»» bookingDateTime string none
»» chargeDetails ChargeDetails none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» currency string none
»» currencyExchange CurrencyExchange none
»»» exchangeRate integer none
»»» sourceCurrency string none
»»» targetCurrency string none
»»» unitCurrency string none
»» date string none
»» description string none
»» enrichment Enrichment none
»»» categorisation Categorisation none
»»»» categories [string] none
»»»» source string none
»»» transactionHash TransactionHash none
»»»» hash string none
»»» merchant MerchantEnrichment none
»»»» merchantName string none
»»»» parentGroup string none
»»» paymentProcessor string none
»»» location string none
»»» correctedDate string none
»» id string none
»» isoBankTransactionCode IsoBankTransactionCode none
»»» domainCode IsoCodeDetails none
»»»» code string none
»»»» name string none
»»» familyCode IsoCodeDetails none
»»» subFamilyCode IsoCodeDetails none
»» merchant Merchant none
»»» merchantCategoryCode string none
»»» merchantName string none
»» proprietaryBankTransactionCode ProprietaryBankTransactionCode none
»»» code string none
»»» issuer string none
»» reference string none
»» statementReferences [StatementReference] none
»»» value string none
»» status TransactionStatusEnum none
»» supplementaryData Map none
»»» name string none
»»» value string none
»» transactionAmount Amount none
»» transactionInformation [string] none
»» valueDateTime string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")
type CLOSING_AVAILABLE
type CLOSING_BOOKED
type CLOSING_CLEARED
type EXPECTED
type FORWARD_AVAILABLE
type INFORMATION
type INTERIM_AVAILABLE
type INTERIM_BOOKED
type INTERIM_CLEARED
type OPENING_AVAILABLE
type OPENING_BOOKED
type OPENING_CLEARED
type PREVIOUSLY_CLOSED_BOOKED
type AUTHORISED
type OTHER
type UNKNOWN
status BOOKED
status PENDING

Get Account Statements

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/statements \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/statements

Used to get the statements from a specific account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
from query string Optional. Returned statements will be after this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
before query string Optional. Returned statements will be before this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
limit query string Optional. The maximum number of statements records to be returned. Must be between 0 and 1000
sort query string Optional. Sort statements records by date ascending with date or descending with -date. The default sort order is descending.
offset query string Optional. The number of statements records to be skipped. Used primarily with paginated results
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": [
    {
      "creationDateTime": "2017-02-01T00:00:00Z",
      "endDateTime": "2017-02-01T00:00:00Z",
      "id": "",
      "startDateTime": "2017-02-01T00:00:00Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AccountStatement. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseListMeta An object containing a tracingId of the request
»» count integer none
»» pagination Pagination An object containing pagination information in ResponseListMeta
»»» next Next An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»» self FilterAndSort An object for filter and sort information
»»»» before string none
»»»» cursor string none
»»»» from string none
»»»» limit integer none
»»»» offset integer none
»»»» sort SortEnum Valid options for the sort parameter
»»» totalCount integer none
»» tracingId string none
» data [AccountStatement] none
»» creationDateTime string none
»» endDateTime string none
»» id string none
»» startDateTime string none

Enumerated Values

Property Value
sort DATE_ASCENDING("date")
sort DATE_DESCENDING("-date")

Get Account Statement

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/statements/{statement-id} \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/statements/{statement-id}

Used to get a statement from a specific account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
statement-id
Mandatory
path string The ID of the Statement
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "creationDateTime": "2017-02-01T00:00:00Z",
    "endDateTime": "2017-02-01T00:00:00Z",
    "id": "",
    "startDateTime": "2017-02-01T00:00:00Z"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a AccountStatement. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data AccountStatement none
»» creationDateTime string none
»» endDateTime string none
»» id string none
»» startDateTime string none

Get Account Statement PDF

Code samples

curl -X GET https://api.yapily.com/accounts/{account-id}/statements/{statement-id}/file \
  -H 'Accept: application/pdf' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /accounts/{account-id}/statements/{statement-id}/file

Download the specific statement file for an account.

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
statement-id
Mandatory
path string The ID of the Statement
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

400 Response

{
  "error": {
    "code": 401,
    "institutionError": {
      "errorMessage": "{\"Code\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Errors\":[{\"ErrorCode\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Field\":\"x-jws-signature\"}]}",
      "httpStatusCode": 100
    },
    "message": "Full authentication is required to access this resource",
    "source": "YAPILY",
    "status": "BAD_REQUEST",
    "tracingId": "e7b01315-cbc5-4d0b-91e8-4f77cb1a3253"
  },
  "monitoring": [
    {
      "lastTested": "",
      "resourceEndpoint": "",
      "span": "",
      "status": "UP"
    }
  ],
  "raw": [
    {
      "duration": "",
      "headers": [
        {
          "name": "",
          "value": ""
        }
      ],
      "request": {
        "method": "",
        "requestInstant": "",
        "templateUri": "",
        "url": ""
      },
      "result": "",
      "resultCode": 100
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PDF of the statement. string
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Headers

Status Header Type Format Description
200 attachment string binary Contains the PDF of the statement

Get Identity

Code samples

curl -X GET https://api.yapily.com/identity \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /identity

Used to get identity information from the bank for the account holder.

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "addresses": [
      {
        "addressLine": "",
        "buildingNumber": "123",
        "city": "London",
        "country": "United Kingdom",
        "county": "London",
        "postalCode": "A12 3BC",
        "streetName": "123 Test Street",
        "type": "BUSINESS"
      }
    ],
    "birthdate": "1970-01-01",
    "email": "bojack@horsingaround.com",
    "firstName": "Bojack",
    "fullName": "Bojack Horseman",
    "gender": "MALE",
    "id": "abc123",
    "lastName": "Horseman",
    "phone": "02071234567"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data Identity none
»» addresses [IdentityAddress] none
»»» addressLine [string] none
»»» buildingNumber string none
»»» city string none
»»» country string none
»»» county string none
»»» postalCode string none
»»» streetName string none
»»» type AddressTypeEnum none
»» birthdate string none
»» email string none
»» firstName string none
»» fullName string none
»» gender string none
»» id string none
»» lastName string none
»» phone string none

Enumerated Values

Property Value
type BUSINESS
type CORRESPONDENCE
type DELIVERY_TO
type MAIL_TO
type PO_BOX
type POSTAL
type RESIDENTIAL
type STATEMENT
type UNKNOWN

Payments

In order to create a payment for your user, you are required to obtain their consent to proceed. Once a Consent token is obtained, you can call the Payment endpoints to create single, scheduled, periodic or recurring payments.

Create Payment

Code samples

curl -X POST https://api.yapily.com/payments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /payments

Used to send a request to the Institution to execute a payment that has been authorised by the user. This endpoint is used once a user has authorised a payment using Create Payment Authorisation Request with their bank. Make sure to use the Create Bulk Payment Request endpoint for executing bulk payments. The response of this endpoint is Payment Response.

Body parameter

{
  "amount": {
    "amount": 10,
    "currency": "GBP"
  },
  "contextType": "BILL",
  "internationalPayment": {
    "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
  },
  "payee": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "merchantCategoryCode": "5462",
    "merchantId": "12345678",
    "name": "Bojack Horseman"
  },
  "payer": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "name": "Bojack Horseman"
  },
  "paymentDateTime": "2019-12-26T14:42:53Z",
  "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
  "periodicPayment": {
    "finalPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "finalPaymentDateTime": "",
    "frequency": {
      "executionDay": 1,
      "intervalMonth": 1,
      "intervalWeek": 1,
      "type": "DAILY"
    },
    "nextPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "nextPaymentDateTime": "2018-01-10T00:00:00Z",
    "numberOfPayments": 1
  },
  "psuCorporateId": "",
  "psuId": "",
  "readRefundAccount": true,
  "reference": "REFERENCE",
  "type": "DOMESTIC_PAYMENT"
}

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body PaymentRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "amount": "10.00",
    "amountDetails": {
      "amount": 10,
      "currency": "GBP"
    },
    "bulkAmountSum": 100,
    "chargeDetails": [
      {
        "chargeAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      }
    ],
    "createdAt": "2019-09-26T15:38:33.401Z",
    "currency": "GBP",
    "currencyOfTransfer": "",
    "exchangeRate": {
      "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
    },
    "finalPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "firstPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "frequency": {
      "executionDay": 1,
      "intervalMonth": 1,
      "intervalWeek": 1,
      "type": "DAILY"
    },
    "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
    "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
    "nextPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "numberOfPayments": 10,
    "payeeDetails": {
      "accountIdentifications": [
        {
          "identification": "VALUE_OF_IDENTIFICATION",
          "type": "["
        }
      ],
      "address": {
        "addressLine": "",
        "addressType": "BUSINESS",
        "buildingNumber": "123",
        "country": "United Kingdom",
        "county": "London",
        "department": "",
        "postCode": "A12 3BC",
        "streetName": "123 Test Street",
        "subDepartment": "",
        "townName": "London"
      },
      "merchantCategoryCode": "5462",
      "merchantId": "12345678",
      "name": "Bojack Horseman"
    },
    "payer": {
      "accountIdentifications": [
        {
          "identification": "VALUE_OF_IDENTIFICATION",
          "type": "["
        }
      ],
      "address": {
        "addressLine": "",
        "addressType": "BUSINESS",
        "buildingNumber": "123",
        "country": "United Kingdom",
        "county": "London",
        "department": "",
        "postCode": "A12 3BC",
        "streetName": "123 Test Street",
        "subDepartment": "",
        "townName": "London"
      },
      "name": "Bojack Horseman"
    },
    "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
    "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
    "previousPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "previousPaymentDateTime": "",
    "priority": "",
    "purpose": "",
    "reference": "REFERENCE",
    "scheduledPaymentDateTime": "",
    "scheduledPaymentType": "",
    "status": "PENDING",
    "statusDetails": {
      "status": "PENDING",
      "statusReason": "",
      "statusReasonDescription": "",
      "statusUpdateDate": "",
      "multiAuthorisationStatus": {
        "status": "",
        "numberOfAuthorisationRequired": 1,
        "numberOfAuthorisationReceived": 1,
        "lastUpdatedDateTime": "",
        "expirationDateTime": ""
      }
    }
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data PaymentResponse none
»» amount integer(decimal) none
»» amountDetails Amount none
»»» amount integer(float) none
»»» currency string none
»» bulkAmountSum integer(decimal) none
»» chargeDetails [ChargeDetails] none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» createdAt string none
»» currency string none
»» currencyOfTransfer string none
»» exchangeRate ExchangeRateInformationResponse none
»»» exchangeRateExpiryDate string none
»» finalPaymentAmount Amount none
»» finalPaymentDateTime string none
»» firstPaymentAmount Amount none
»» firstPaymentDateTime string none
»» frequency FrequencyRequest none
»»» executionDay integer none
»»» intervalMonth integer none
»»» intervalWeek integer none
»»» type FrequencyEnumExtended none
»» id string none
»» institutionConsentId string none
»» nextPaymentAmount Amount none
»» nextPaymentDateTime string none
»» numberOfPayments integer none
»» payeeDetails Payee none
»»» accountIdentifications [AccountIdentification] none
»»»» identification string none
»»»» type AccountIdentificationType none
»»» address Address none
»»»» addressLine [string] none
»»»» addressType AddressTypeEnum none
»»»» buildingNumber string none
»»»» country string none
»»»» county [string] none
»»»» department string none
»»»» postCode string none
»»»» streetName string none
»»»» subDepartment string none
»»»» townName string none
»»» merchantCategoryCode string none
»»» merchantId string none
»»» name string none
»» payer Payer none
»»» accountIdentifications [AccountIdentification] none
»»» address Address none
»»» name string none
»» paymentIdempotencyId string none
»» paymentLifecycleId string none
»» previousPaymentAmount Amount none
»» previousPaymentDateTime string none
»» priority string none
»» purpose string none
»» reference string none
»» scheduledPaymentDateTime string none
»» scheduledPaymentType string none
»» status PaymentStatus none
»» statusDetails PaymentStatusDetails none
»»» status PaymentStatus none
»»» statusReason string none
»»» statusReasonDescription string none
»»» statusUpdateDate string none
»»» multiAuthorisationStatus MultiAuthorisation none
»»»» status string none
»»»» numberOfAuthorisationRequired integer none
»»»» numberOfAuthorisationReceived integer none
»»»» lastUpdatedDateTime string none
»»»» expirationDateTime string none

Enumerated Values

Property Value
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Create Bulk-Payment

Code samples

curl -X POST https://api.yapily.com/bulk-payments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

POST /bulk-payments

Used to create a bulk payment request from a business account. See Create Bulk Payment Authorisation to learn how to obtain a Consent Token for a Bulk Payment.

Body parameter

{
  "executionDateTime": "2020-10-17T00:00:00Z",
  "originatorIdentificationNumber": "",
  "payments": [
    {
      "amount": {
        "amount": 10,
        "currency": "GBP"
      },
      "contextType": "BILL",
      "internationalPayment": {
        "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
      },
      "payee": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentDateTime": "2019-12-26T14:42:53Z",
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "periodicPayment": {
        "finalPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "finalPaymentDateTime": "",
        "frequency": {
          "executionDay": 1,
          "intervalMonth": 1,
          "intervalWeek": 1,
          "type": "["
        },
        "nextPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "nextPaymentDateTime": "2018-01-10T00:00:00Z",
        "numberOfPayments": 1
      },
      "psuCorporateId": "",
      "psuId": "",
      "readRefundAccount": true,
      "reference": "REFERENCE",
      "type": "DOMESTIC_PAYMENT"
    }
  ]
}

Parameters

Name In Type Description
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body BulkPaymentRequest The requestBody

Example responses

201 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "amount": "10.00",
    "amountDetails": {
      "amount": 10,
      "currency": "GBP"
    },
    "bulkAmountSum": 100,
    "chargeDetails": [
      {
        "chargeAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "chargeTo": "",
        "chargeType": "BULK_PAYMENT"
      }
    ],
    "createdAt": "2019-09-26T15:38:33.401Z",
    "currency": "GBP",
    "currencyOfTransfer": "",
    "exchangeRate": {
      "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
    },
    "finalPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "firstPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "frequency": {
      "executionDay": 1,
      "intervalMonth": 1,
      "intervalWeek": 1,
      "type": "DAILY"
    },
    "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
    "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
    "nextPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
    "numberOfPayments": 10,
    "payeeDetails": {
      "accountIdentifications": [
        {
          "identification": "VALUE_OF_IDENTIFICATION",
          "type": "["
        }
      ],
      "address": {
        "addressLine": "",
        "addressType": "BUSINESS",
        "buildingNumber": "123",
        "country": "United Kingdom",
        "county": "London",
        "department": "",
        "postCode": "A12 3BC",
        "streetName": "123 Test Street",
        "subDepartment": "",
        "townName": "London"
      },
      "merchantCategoryCode": "5462",
      "merchantId": "12345678",
      "name": "Bojack Horseman"
    },
    "payer": {
      "accountIdentifications": [
        {
          "identification": "VALUE_OF_IDENTIFICATION",
          "type": "["
        }
      ],
      "address": {
        "addressLine": "",
        "addressType": "BUSINESS",
        "buildingNumber": "123",
        "country": "United Kingdom",
        "county": "London",
        "department": "",
        "postCode": "A12 3BC",
        "streetName": "123 Test Street",
        "subDepartment": "",
        "townName": "London"
      },
      "name": "Bojack Horseman"
    },
    "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
    "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
    "previousPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "previousPaymentDateTime": "",
    "priority": "",
    "purpose": "",
    "reference": "REFERENCE",
    "scheduledPaymentDateTime": "",
    "scheduledPaymentType": "",
    "status": "PENDING",
    "statusDetails": {
      "status": "PENDING",
      "statusReason": "",
      "statusReasonDescription": "",
      "statusUpdateDate": "",
      "multiAuthorisationStatus": {
        "status": "",
        "numberOfAuthorisationRequired": 1,
        "numberOfAuthorisationReceived": 1,
        "lastUpdatedDateTime": "",
        "expirationDateTime": ""
      }
    }
  }
}

Responses

Status Meaning Description Schema
201 Created A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 201

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data PaymentResponse none
»» amount integer(decimal) none
»» amountDetails Amount none
»»» amount integer(float) none
»»» currency string none
»» bulkAmountSum integer(decimal) none
»» chargeDetails [ChargeDetails] none
»»» chargeAmount Amount none
»»» chargeTo string none
»»» chargeType string none
»» createdAt string none
»» currency string none
»» currencyOfTransfer string none
»» exchangeRate ExchangeRateInformationResponse none
»»» exchangeRateExpiryDate string none
»» finalPaymentAmount Amount none
»» finalPaymentDateTime string none
»» firstPaymentAmount Amount none
»» firstPaymentDateTime string none
»» frequency FrequencyRequest none
»»» executionDay integer none
»»» intervalMonth integer none
»»» intervalWeek integer none
»»» type FrequencyEnumExtended none
»» id string none
»» institutionConsentId string none
»» nextPaymentAmount Amount none
»» nextPaymentDateTime string none
»» numberOfPayments integer none
»» payeeDetails Payee none
»»» accountIdentifications [AccountIdentification] none
»»»» identification string none
»»»» type AccountIdentificationType none
»»» address Address none
»»»» addressLine [string] none
»»»» addressType AddressTypeEnum none
»»»» buildingNumber string none
»»»» country string none
»»»» county [string] none
»»»» department string none
»»»» postCode string none
»»»» streetName string none
»»»» subDepartment string none
»»»» townName string none
»»» merchantCategoryCode string none
»»» merchantId string none
»»» name string none
»» payer Payer none
»»» accountIdentifications [AccountIdentification] none
»»» address Address none
»»» name string none
»» paymentIdempotencyId string none
»» paymentLifecycleId string none
»» previousPaymentAmount Amount none
»» previousPaymentDateTime string none
»» priority string none
»» purpose string none
»» reference string none
»» scheduledPaymentDateTime string none
»» scheduledPaymentType string none
»» status PaymentStatus none
»» statusDetails PaymentStatusDetails none
»»» status PaymentStatus none
»»» statusReason string none
»»» statusReasonDescription string none
»»» statusUpdateDate string none
»»» multiAuthorisationStatus MultiAuthorisation none
»»»» status string none
»»»» numberOfAuthorisationRequired integer none
»»»» numberOfAuthorisationReceived integer none
»»»» lastUpdatedDateTime string none
»»»» expirationDateTime string none

Enumerated Values

Property Value
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Get Payment Details

Code samples

curl -X GET https://api.yapily.com/payments/{payment-id}/detail \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'psu-id: string' \
  -H 'psu-corporate-id: string' \
  -H 'psu-ip-address: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /payments/{payment-id}/detail

Used to the get the payment details of a payment. The response of this endpoint is a list of Payment Responses.

Parameters

Name In Type Description
payment-id
Mandatory
path string The ID of the Payment
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
psu-id header string Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string Conditional. The IP address of the PSU.
raw query boolean Raw parameter available for debugging purposes

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "payments": [
      {
        "amount": "10.00",
        "amountDetails": {
          "amount": 10,
          "currency": "GBP"
        },
        "bulkAmountSum": 100,
        "chargeDetails": [
          {
            "chargeAmount": null,
            "chargeTo": null,
            "chargeType": null
          }
        ],
        "createdAt": "2019-09-26T15:38:33.401Z",
        "currency": "GBP",
        "currencyOfTransfer": "",
        "exchangeRate": {
          "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
        },
        "finalPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
        "firstPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
        "frequency": {
          "executionDay": 1,
          "intervalMonth": 1,
          "intervalWeek": 1,
          "type": "["
        },
        "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
        "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
        "nextPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
        "numberOfPayments": 10,
        "payeeDetails": {
          "accountIdentifications": [
            null
          ],
          "address": {},
          "merchantCategoryCode": "5462",
          "merchantId": "12345678",
          "name": "Bojack Horseman"
        },
        "payer": {
          "accountIdentifications": [
            null
          ],
          "address": {},
          "name": "Bojack Horseman"
        },
        "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
        "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
        "previousPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "previousPaymentDateTime": "",
        "priority": "",
        "purpose": "",
        "reference": "REFERENCE",
        "scheduledPaymentDateTime": "",
        "scheduledPaymentType": "",
        "status": "PENDING",
        "statusDetails": {
          "status": "[",
          "statusReason": "",
          "statusReasonDescription": "",
          "statusUpdateDate": "",
          "multiAuthorisationStatus": {}
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a PaymentResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data PaymentResponses none
»» payments [PaymentResponse] none
»»» amount integer(decimal) none
»»» amountDetails Amount none
»»»» amount integer(float) none
»»»» currency string none
»»» bulkAmountSum integer(decimal) none
»»» chargeDetails [ChargeDetails] none
»»»» chargeAmount Amount none
»»»» chargeTo string none
»»»» chargeType string none
»»» createdAt string none
»»» currency string none
»»» currencyOfTransfer string none
»»» exchangeRate ExchangeRateInformationResponse none
»»»» exchangeRateExpiryDate string none
»»» finalPaymentAmount Amount none
»»» finalPaymentDateTime string none
»»» firstPaymentAmount Amount none
»»» firstPaymentDateTime string none
»»» frequency FrequencyRequest none
»»»» executionDay integer none
»»»» intervalMonth integer none
»»»» intervalWeek integer none
»»»» type FrequencyEnumExtended none
»»» id string none
»»» institutionConsentId string none
»»» nextPaymentAmount Amount none
»»» nextPaymentDateTime string none
»»» numberOfPayments integer none
»»» payeeDetails Payee none
»»»» accountIdentifications [AccountIdentification] none
»»»»» identification string none
»»»»» type AccountIdentificationType none
»»»» address Address none
»»»»» addressLine [string] none
»»»»» addressType AddressTypeEnum none
»»»»» buildingNumber string none
»»»»» country string none
»»»»» county [string] none
»»»»» department string none
»»»»» postCode string none
»»»»» streetName string none
»»»»» subDepartment string none
»»»»» townName string none
»»»» merchantCategoryCode string none
»»»» merchantId string none
»»»» name string none
»»» payer Payer none
»»»» accountIdentifications [AccountIdentification] none
»»»» address Address none
»»»» name string none
»»» paymentIdempotencyId string none
»»» paymentLifecycleId string none
»»» previousPaymentAmount Amount none
»»» previousPaymentDateTime string none
»»» priority string none
»»» purpose string none
»»» reference string none
»»» scheduledPaymentDateTime string none
»»» scheduledPaymentType string none
»»» status PaymentStatus none
»»» statusDetails PaymentStatusDetails none
»»»» status PaymentStatus none
»»»» statusReason string none
»»»» statusReasonDescription string none
»»»» statusUpdateDate string none
»»»» multiAuthorisationStatus MultiAuthorisation none
»»»»» status string none
»»»»» numberOfAuthorisationRequired integer none
»»»»» numberOfAuthorisationReceived integer none
»»»»» lastUpdatedDateTime string none
»»»»» expirationDateTime string none

Enumerated Values

Property Value
type DAILY
type EVERY_WORKING_DAY
type CALENDAR_DAY
type WEEKLY
type EVERY_TWO_WEEKS
type MONTHLY
type EVERY_TWO_MONTHS
type QUARTERLY
type SEMIANNUAL
type ANNUAL
type SORT_CODE
type ACCOUNT_NUMBER
type IBAN
type BBAN
type BIC
type PAN
type MASKED_PAN
type MSISDN
type BSB
type NCC
type ABA
type ABA_WIRE
type ABA_ACH
type EMAIL
addressType BUSINESS
addressType CORRESPONDENCE
addressType DELIVERY_TO
addressType MAIL_TO
addressType PO_BOX
addressType POSTAL
addressType RESIDENTIAL
addressType STATEMENT
addressType UNKNOWN
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE
status PENDING
status FAILED
status DECLINED
status COMPLETED
status COMPLETED_SETTLEMENT_IN_PROCESS
status EXPIRED
status UNKNOWN
status ACTIVE
status INACTIVE

Create Payment Transfer

Code samples

curl -X PUT https://api.yapily.com/accounts/{account-id}/transfer \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'consent: string' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

PUT /accounts/{account-id}/transfer

Used to transfer funds between two accounts held by the same user with the same bank.

Body parameter

{
  "accountId": "abc123",
  "amount": 10,
  "currency": "GBP",
  "reference": "reference",
  "transferReferenceId": "referenceId"
}

Parameters

Name In Type Description
account-id
Mandatory
path string The ID of the Account
consent
Mandatory
header string The Consent-Token obtained from the original authorisation.
raw query boolean Raw parameter available for debugging purposes
body
Mandatory
body TransferRequest The requestBody

Example responses

200 Response

{
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "data": {
    "balance": 10,
    "createdAt": "2018-05-18T14:39:30.934Z",
    "currency": "GBP",
    "fromAccountId": "acc_1234567890abcdef",
    "reference": "reference",
    "status": "PENDING",
    "toAccountId": "pot_9876543210zyxwvu"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response, returning a TransferResponse. Inline
400 Bad Request Bad Request. Returned if the optional raw parameter is not a valid boolean
or if the consent token is not sent
ApiResponseError
401 Unauthorized Either authentication credentials were not supplied, or they were invalid. ApiResponseError
403 Forbidden Not Found. The Consent-Token was not valid or has expired ApiResponseError
424 Failed Dependency Failed Dependency. Unable to complete request to the institution. ApiResponseError

Response Schema

Status Code 200

Name Type Description
» meta ResponseMeta An object containing a tracingId of the request
»» tracingId string none
» data TransferResponse none
»» balance integer(decimal) none
»» createdAt string none
»» currency string none
»» fromAccountId string none
»» reference string none
»» status Status none
»» toAccountId string none

Enumerated Values

Property Value
status PENDING
status FAILED
status DECLINED
status COMPLETED
status UNKNOWN

Schemas

AccessToken

{
  "accessToken": "",
  "authorisedAt": "",
  "expiresIn": 400,
  "refreshToken": "",
  "scope": "",
  "tokenType": ""
}

Properties

Name Type Description
accessToken string none
authorisedAt string none
expiresIn integer none
refreshToken string none
scope string none
tokenType string none

Account

{
  "accountBalances": [
    {
      "balanceAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "creditLineIncluded": true,
      "creditLines": [
        {
          "creditLineAmount": {
            "amount": null,
            "currency": null
          },
          "type": "AVAILABLE"
        }
      ],
      "dateTime": "2020-09-21T16:35:55Z",
      "type": "CLOSING_AVAILABLE"
    }
  ],
  "accountIdentifications": [
    {
      "identification": "VALUE_OF_IDENTIFICATION",
      "type": "SORT_CODE"
    }
  ],
  "accountNames": [
    {
      "name": "name"
    }
  ],
  "accountType": "CASH_TRADING",
  "balance": 5313.4,
  "currency": "GBP",
  "description": "HSBC ADVANCE",
  "details": "",
  "id": "aadn1pyst5ka1o1x8gkklori09n60rtgcr5t",
  "nickname": "Personal",
  "type": "Personal - Current",
  "usageType": "PERSONAL"
}

Properties

Name Type Description
accountBalances [AccountBalance] none
accountIdentifications [AccountIdentification] none
accountNames [AccountName] none
accountType AccountType none
balance integer(decimal) none
currency string none
description string none
details string none
id string none
nickname string none
type string none
usageType UsageType none

AccountAuthorisationRequest

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "accountRequest": {
    "accountIdentifiers": {
      "accountId": "500000000000000000000001",
      "accountIdentification": {
        "identification": null,
        "type": null
      }
    },
    "accountIdentifiersForBalance": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "accountIdentifiersForTransaction": [
      {
        "accountId": "500000000000000000000001",
        "accountIdentification": {}
      }
    ],
    "expiresAt": "2018-10-17T15:11:38Z",
    "featureScope": [
      "ACCOUNT_STATEMENT"
    ],
    "psuCorporateId": "",
    "psuId": "",
    "transactionsFrom": "",
    "transactionsTo": ""
  }
}

Properties

allOf

Name Type Description
anonymous AuthorisationRequest none

and

Name Type Description
anonymous object none
» accountRequest AccountRequest none

AccountBalance

{
  "balanceAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "creditLineIncluded": true,
  "creditLines": [
    {
      "creditLineAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "type": "AVAILABLE"
    }
  ],
  "dateTime": "2020-09-21T16:35:55Z",
  "type": "CLOSING_AVAILABLE"
}

Properties

Name Type Description
balanceAmount Amount none
creditLineIncluded boolean none
creditLines [CreditLine] none
dateTime string none
type AccountBalanceType none

AccountBalanceType

"CLOSING_AVAILABLE"

Enumerated Values

Value
CLOSING_AVAILABLE
CLOSING_BOOKED
CLOSING_CLEARED
EXPECTED
FORWARD_AVAILABLE
INFORMATION
INTERIM_AVAILABLE
INTERIM_BOOKED
INTERIM_CLEARED
OPENING_AVAILABLE
OPENING_BOOKED
OPENING_CLEARED
PREVIOUSLY_CLOSED_BOOKED
AUTHORISED
OTHER
UNKNOWN

AccountIdentification

{
  "identification": "VALUE_OF_IDENTIFICATION",
  "type": "SORT_CODE"
}

Properties

Name Type Description
identification string none
type AccountIdentificationType none

AccountIdentificationType

"SORT_CODE"

Enumerated Values

Value
SORT_CODE
ACCOUNT_NUMBER
IBAN
BBAN
BIC
PAN
MASKED_PAN
MSISDN
BSB
NCC
ABA
ABA_WIRE
ABA_ACH
EMAIL

AccountInfo

{
  "accountId": "500000000000000000000001",
  "accountIdentification": {
    "identification": "VALUE_OF_IDENTIFICATION",
    "type": "SORT_CODE"
  }
}

Properties

Name Type Description
accountId string none
accountIdentification AccountIdentification none

AccountName

{
  "name": "name"
}

Properties

Name Type Description
name string none

AccountRequest

{
  "accountIdentifiers": {
    "accountId": "500000000000000000000001",
    "accountIdentification": {
      "identification": "VALUE_OF_IDENTIFICATION",
      "type": "SORT_CODE"
    }
  },
  "accountIdentifiersForBalance": [
    {
      "accountId": "500000000000000000000001",
      "accountIdentification": {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    }
  ],
  "accountIdentifiersForTransaction": [
    {
      "accountId": "500000000000000000000001",
      "accountIdentification": {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    }
  ],
  "expiresAt": "2018-10-17T15:11:38Z",
  "featureScope": [
    "ACCOUNT_STATEMENT"
  ],
  "psuCorporateId": "",
  "psuId": "",
  "transactionsFrom": "",
  "transactionsTo": ""
}

Properties

Name Type Description
accountIdentifiers AccountInfo none
accountIdentifiersForBalance [AccountInfo] none
accountIdentifiersForTransaction [AccountInfo] none
expiresAt string none
featureScope [string] none
psuCorporateId string none
psuId string none
transactionsFrom string none
transactionsTo string none

AccountStatement

{
  "creationDateTime": "2017-02-01T00:00:00Z",
  "endDateTime": "2017-02-01T00:00:00Z",
  "id": "",
  "startDateTime": "2017-02-01T00:00:00Z"
}

Properties

Name Type Description
creationDateTime string none
endDateTime string none
id string none
startDateTime string none

AccountType

"CASH_TRADING"

Enumerated Values

Value
CASH_TRADING
CASH_INCOME
CASH_PAYMENT
CHARGE_CARD
CHARGES
COMMISSION
CREDIT_CARD
CURRENT
E_MONEY
LIMITED_LIQUIDITY_SAVINGS_ACCOUNT
LOAN
MARGINAL_LENDING
MONEY_MARKET
MORTGAGE
NON_RESIDENT_EXTERNAL
OTHER
OVERDRAFT
OVERNIGHT_DEPOSIT
PREPAID_CARD
SALARY
SAVINGS
SETTLEMENT
TAX
UNKNOWN

Address

{
  "addressLine": "",
  "addressType": "BUSINESS",
  "buildingNumber": "123",
  "country": "United Kingdom",
  "county": "London",
  "department": "",
  "postCode": "A12 3BC",
  "streetName": "123 Test Street",
  "subDepartment": "",
  "townName": "London"
}

Properties

Name Type Description
addressLine [string] none
addressType AddressTypeEnum none
buildingNumber string none
country string none
county [string] none
department string none
postCode string none
streetName string none
subDepartment string none
townName string none

AddressDetails

{
  "addressLine": "123 Test Street, Test, AB1 2DC"
}

Properties

Name Type Description
addressLine string none

AddressTypeEnum

"BUSINESS"

Enumerated Values

Value
BUSINESS
CORRESPONDENCE
DELIVERY_TO
MAIL_TO
PO_BOX
POSTAL
RESIDENTIAL
STATEMENT
UNKNOWN

Amount

{
  "amount": 10,
  "currency": "GBP"
}

Properties

Name Type Description
amount integer(float) none
currency string none

AmountFrequency

"DAILY"

Enumerated Values

Value
DAILY
WEEKLY
MONTHLY
YEARLY

ApiError

{
  "code": 401,
  "institutionError": {
    "errorMessage": "{\"Code\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Errors\":[{\"ErrorCode\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Field\":\"x-jws-signature\"}]}",
    "httpStatusCode": 100
  },
  "message": "Full authentication is required to access this resource",
  "source": "YAPILY",
  "status": "BAD_REQUEST",
  "tracingId": "e7b01315-cbc5-4d0b-91e8-4f77cb1a3253"
}

Properties

Name Type Description
code integer none
institutionError InstitutionError none
message string none
source string none
status HttpStatus none
tracingId string none

ApiListResponse

{
  "data": "[]",
  "links": [
    {
      "name": "",
      "value": ""
    }
  ],
  "meta": {
    "count": 100,
    "pagination": {
      "next": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100
      },
      "self": {
        "before": "",
        "cursor": "",
        "from": "",
        "limit": 100,
        "offset": 100,
        "sort": "DATE_ASCENDING(\"date\")"
      },
      "totalCount": 100
    },
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "raw": [
    {
      "duration": "",
      "headers": [
        {
          "name": "",
          "value": ""
        }
      ],
      "request": {
        "method": "",
        "requestInstant": "",
        "templateUri": "",
        "url": ""
      },
      "result": "",
      "resultCode": 100
    }
  ]
}

Properties

Name Type Description
data string An array of objects, depending on the endpoint
links [Map] none
meta ResponseListMeta An object containing a tracingId of the request
raw [RawResponse] [An object returned when the raw parameter is sent]

ApiResponse

{
  "data": "{}",
  "links": [
    {
      "name": "",
      "value": ""
    }
  ],
  "meta": {
    "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
  },
  "raw": [
    {
      "duration": "",
      "headers": [
        {
          "name": "",
          "value": ""
        }
      ],
      "request": {
        "method": "",
        "requestInstant": "",
        "templateUri": "",
        "url": ""
      },
      "result": "",
      "resultCode": 100
    }
  ]
}

Properties

Name Type Description
data string An object, depending on the endpoint
links [Map] none
meta ResponseMeta An object containing a tracingId of the request
raw [RawResponse] [An object returned when the raw parameter is sent]

ApiResponseError

{
  "error": {
    "code": 401,
    "institutionError": {
      "errorMessage": "{\"Code\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Errors\":[{\"ErrorCode\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Field\":\"x-jws-signature\"}]}",
      "httpStatusCode": 100
    },
    "message": "Full authentication is required to access this resource",
    "source": "YAPILY",
    "status": "BAD_REQUEST",
    "tracingId": "e7b01315-cbc5-4d0b-91e8-4f77cb1a3253"
  },
  "monitoring": [
    {
      "lastTested": "",
      "resourceEndpoint": "",
      "span": "",
      "status": "UP"
    }
  ],
  "raw": [
    {
      "duration": "",
      "headers": [
        {
          "name": "",
          "value": ""
        }
      ],
      "request": {
        "method": "",
        "requestInstant": "",
        "templateUri": "",
        "url": ""
      },
      "result": "",
      "resultCode": 100
    }
  ]
}

Properties

Name Type Description
error ApiError none
monitoring [MonitoringEndpointStatus] none
raw [RawResponse] [An object returned when the raw parameter is sent]

Application

{
  "active": true,
  "authCallbacks": [
    "https://test.example.com/callback"
  ],
  "created": "2020-09-09T10:31:53.968+0000",
  "institutions": [
    {
      "countries": [
        {
          "countryCode2": "GB",
          "displayName": "United Kingdom"
        }
      ],
      "credentialsType": "OAUTH1",
      "environmentType": "SANDBOX",
      "features": [
        "INITIATE_PRE_AUTHORISATION"
      ],
      "fullName": "Yapily Mock Bank",
      "id": "yapily-mock",
      "media": [
        {
          "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
          "type": "icon"
        }
      ],
      "name": "Yapily Mock"
    }
  ],
  "media": [
    {
      "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
      "type": "icon"
    }
  ],
  "name": "My App 6238",
  "updated": "2020-09-09T10:31:53.968+0000",
  "uuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a"
}

Properties

Name Type Description
active boolean none
authCallbacks [string] none
created string none
institutions [Institution] none
media [Media] none
name string none
updated string none
uuid string none

ApplicationCallback

{
  "authCallbackURL": "authCallbackURL"
}

Properties

Name Type Description
authCallbackURL string none

AuthorisationRequest

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876"
}

Properties

Name Type Description
applicationUserId string none
callback string Max length 4096.
forwardParameters [string] none
institutionId string none
oneTimeToken boolean none
userUuid string none

AuthorisationRequestResponse

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
  "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
  "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
}

Properties

allOf

Name Type Description
anonymous Consent none

and

Name Type Description
anonymous object none
» authorisationUrl string none
» qrCodeUrl string none

AuthorisationStatus

"AWAITING_AUTHORIZATION"

Enumerated Values

Value
AWAITING_AUTHORIZATION
AWAITING_FURTHER_AUTHORIZATION
AWAITING_RE_AUTHORIZATION
AUTHORIZED
CONSUMED
REJECTED
REVOKED
FAILED
EXPIRED
UNKNOWN
INVALID
AWAITING_PRE_AUTHORIZATION
PRE_AUTHORIZED

Balance

{
  "balanceAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "type": "CLOSING_AVAILABLE"
}

Properties

Name Type Description
balanceAmount Amount none
type AccountBalanceType none

Balances

{
  "balances": [
    {
      "balanceAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "creditLineIncluded": true,
      "creditLines": [
        {
          "creditLineAmount": {
            "amount": null,
            "currency": null
          },
          "type": "AVAILABLE"
        }
      ],
      "dateTime": "2020-09-21T16:35:55Z",
      "type": "CLOSING_AVAILABLE"
    }
  ],
  "mainBalanceAmount": {
    "amount": 10,
    "currency": "GBP"
  }
}

Properties

Name Type Description
balances [AccountBalance] none
mainBalanceAmount Amount none

BulkPaymentAuthorisationRequest

{
  "applicationUserId": "bojack@8tees.com",
  "callback": "https://test.example.com/callback",
  "forwardParameters": [
    ""
  ],
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "paymentRequest": {
    "executionDateTime": "2020-10-17T00:00:00Z",
    "originatorIdentificationNumber": "",
    "payments": [
      {
        "amount": {},
        "contextType": "[",
        "internationalPayment": {},
        "payee": {},
        "payer": {},
        "paymentDateTime": "2019-12-26T14:42:53Z",
        "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
        "periodicPayment": {},
        "psuCorporateId": "",
        "psuId": "",
        "readRefundAccount": true,
        "reference": "REFERENCE",
        "type": "["
      }
    ]
  }
}

Properties

allOf

Name Type Description
anonymous AuthorisationRequest none

and

Name Type Description
anonymous object none
» applicationUserId string none
» callback string Max Length 4096.
» forwardParameters [string] none
» institutionId string none
» oneTimeToken boolean none
» paymentRequest BulkPaymentRequest none
» userUuid string none

BulkPaymentRequest

{
  "executionDateTime": "2020-10-17T00:00:00Z",
  "originatorIdentificationNumber": "",
  "payments": [
    {
      "amount": {
        "amount": 10,
        "currency": "GBP"
      },
      "contextType": "BILL",
      "internationalPayment": {
        "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
      },
      "payee": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentDateTime": "2019-12-26T14:42:53Z",
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "periodicPayment": {
        "finalPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "finalPaymentDateTime": "",
        "frequency": {
          "executionDay": 1,
          "intervalMonth": 1,
          "intervalWeek": 1,
          "type": "["
        },
        "nextPaymentAmount": {
          "amount": 10,
          "currency": "GBP"
        },
        "nextPaymentDateTime": "2018-01-10T00:00:00Z",
        "numberOfPayments": 1
      },
      "psuCorporateId": "",
      "psuId": "",
      "readRefundAccount": true,
      "reference": "REFERENCE",
      "type": "DOMESTIC_PAYMENT"
    }
  ]
}

Properties

Name Type Description
executionDateTime string none
originatorIdentificationNumber string none
payments [PaymentRequest] none

BulkUserDelete

{
  "id": "",
  "links": [
    {
      "name": "",
      "value": ""
    }
  ],
  "startedAt": "",
  "status": "IN_PROGRESS"
}

Properties

Name Type Description
id string none
links [Map] none
startedAt string none
status DeleteTaskStatus none

BulkUserDeleteDetails

{
  "invalidApplicationUserIds": "",
  "invalidUserUuids": "",
  "users": [
    {
      "creationDate": "2019-05-10T17:36:49.269+0000",
      "deleteStatus": "SUCCESS",
      "id": "c50844cb-1498-44aa-90d1-62eae8cdb3f6",
      "userConsents": [
        {
          "creationDate": "2019-05-10T16:45:43.566+0000",
          "deleteStatus": "SUCCESS",
          "id": "a71fd46f-4144-478e-9a72-dd0d7a1158ab",
          "institutionConsentId": "aac-1cce1cfc-1ab2-4ed6-8062-a0fd6c5c2122",
          "institutionId": "yapily-mock"
        }
      ]
    }
  ]
}

Properties

Name Type Description
invalidApplicationUserIds [string] none
invalidUserUuids [string] none
users [UserDeleteResponse] [An object returned from a successful user delete request]

Categorisation

{
  "categories": [
    "SHOPPING",
    "GROCERIES"
  ],
  "source": "MODEL"
}

Properties

Name Type Description
categories [string] none
source string none

ChargeDetails

{
  "chargeAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "chargeTo": "",
  "chargeType": "BULK_PAYMENT"
}

Properties

Name Type Description
chargeAmount Amount none
chargeTo string none
chargeType string none

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Properties

Name Type Description
applicationUserId string none
authorizedAt string none
consentToken string none
createdAt string none
expiresAt string none
featureScope [FeatureEnum] none
id string none
institutionId string none
referenceId string none
state string none
status AuthorisationStatus none
timeToExpire string none
transactionFrom string none
transactionTo string none
userUuid string none

ConsentAuthCodeRequest

{
  "authCode": "fg67Hj",
  "authState": "f3daec98152e420297cebdd301db6dde"
}

Properties

Name Type Description
authCode
Mandatory
string none
authState
Mandatory
string none

ConsentDeleteResponse

{
  "creationDate": "2019-05-10T16:45:43.566+0000",
  "deleteStatus": "SUCCESS",
  "id": "a71fd46f-4144-478e-9a72-dd0d7a1158ab",
  "institutionConsentId": "aac-1cce1cfc-1ab2-4ed6-8062-a0fd6c5c2122",
  "institutionId": "yapily-mock"
}

An object returned from a UserDeleteResponse

Properties

Name Type Description
creationDate string none
deleteStatus DeleteStatusEnum none
id string none
institutionConsentId string none
institutionId string none

ConsentRedirectRequest

{
  "code": "",
  "error": "",
  "state": "",
  "twofoldRedirect": true
}

Properties

Name Type Description
code string none
error string none
state string none
twofoldRedirect boolean none

Country

{
  "countryCode2": "GB",
  "displayName": "United Kingdom"
}

Properties

Name Type Description
countryCode2 string none
displayName string none

CreateConsentAccessToken

{
  "accessToken": "",
  "institutionId": "yapily-mock",
  "refreshToken": "",
  "scope": ""
}

Properties

Name Type Description
accessToken
Mandatory
string none
institutionId
Mandatory
string none
refreshToken string none
scope string none

CredentialsType

"OAUTH1"

Enumerated Values

Value
OAUTH1
OAUTH2
OAUTH2_NOSECRET
OAUTH2_SIGNATURE
OPEN_BANKING_UK_MANUAL
OPEN_BANKING_UK_AUTO
OPEN_BANKING_IBM
OPEN_BANKING_AUTO
OPEN_BANKING_AUTO_EMAIL
OPEN_BANKING_MANUAL
API_KEY
OPEN_BANKING_NO_KEY
OPEN_BANKING_NO_TRANSPORT
TOKEN_IO

CreditLine

{
  "creditLineAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "type": "AVAILABLE"
}

Properties

Name Type Description
creditLineAmount Amount none
type CreditLineType none

CreditLineType

"AVAILABLE"

Enumerated Values

Value
AVAILABLE
CREDIT
EMERGENCY
PRE_AGREED
TEMPORARY
OTHER
UNKNOWN

CurrencyExchange

{
  "exchangeRate": 1.34,
  "sourceCurrency": "GBP",
  "targetCurrency": "EUR",
  "unitCurrency": "GBP"
}

Properties

Name Type Description
exchangeRate integer none
sourceCurrency string none
targetCurrency string none
unitCurrency string none

DeleteStatusEnum

"SUCCESS"

Enumerated Values

Value
SUCCESS
FAILED

DeleteTaskStatus

"IN_PROGRESS"

Enumerated Values

Value
IN_PROGRESS
COMPLETED
FAILED

DeregistrationResult

{
  "applicationId": "",
  "institutionId": ""
}

Properties

Name Type Description
applicationId string none
institutionId string none

Enrichment

{
  "categorisation": {
    "categories": [
      "SHOPPING",
      "GROCERIES"
    ],
    "source": "MODEL"
  },
  "transactionHash": {
    "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
  },
  "merchant": {
    "merchantName": "DEBENHAMS",
    "parentGroup": "ARCADIA"
  },
  "paymentProcessor": "PAYPAL",
  "location": "LONDON",
  "correctedDate": "2020-05-04T14:31:04.872Z"
}

Properties

Name Type Description
categorisation Categorisation none
transactionHash TransactionHash none
merchant MerchantEnrichment none
paymentProcessor string none
location string none
correctedDate string none

EnvironmentType

"SANDBOX"

Enumerated Values

Value
SANDBOX
MOCK
LIVE

ExchangeRateInformationResponse

{
  "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
}

Properties

Name Type Description
exchangeRateExpiryDate string none

FeatureDetails

{
  "documentationUrl": "https://docs.yapily.com/#757fde49-a294-bbff-d5f9-2c21c5f57be0",
  "endpoint": "https://api.yapily.com/account/{account-id}",
  "feature": "INITIATE_PRE_AUTHORISATION"
}

Properties

Name Type Description
documentationUrl string none
endpoint string none
feature FeatureEnum none

FeatureEnum

"INITIATE_PRE_AUTHORISATION"

Enumerated Values

Value
INITIATE_PRE_AUTHORISATION
INITIATE_ACCOUNT_REQUEST
ACCOUNT_REQUEST_DETAILS
ACCOUNTS
ACCOUNT
ACCOUNT_TRANSACTIONS
ACCOUNT_STATEMENTS
ACCOUNT_STATEMENT
ACCOUNT_STATEMENT_FILE
ACCOUNT_SCHEDULED_PAYMENTS
ACCOUNT_DIRECT_DEBITS
ACCOUNT_PERIODIC_PAYMENTS
ACCOUNT_TRANSACTIONS_WITH_MERCHANT
IDENTITY
ACCOUNTS_WITHOUT_BALANCE
ACCOUNT_WITHOUT_BALANCE
ACCOUNT_BALANCES
INITIATE_SINGLE_PAYMENT_SORTCODE
EXISTING_PAYMENT_INITIATION_DETAILS
CREATE_SINGLE_PAYMENT_SORTCODE
EXISTING_PAYMENTS_DETAILS
INITIATE_DOMESTIC_SINGLE_PAYMENT
CREATE_DOMESTIC_SINGLE_PAYMENT
INITIATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
CREATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
INITIATE_DOMESTIC_SCHEDULED_PAYMENT
CREATE_DOMESTIC_SCHEDULED_PAYMENT
INITIATE_DOMESTIC_PERIODIC_PAYMENT
CREATE_DOMESTIC_PERIODIC_PAYMENT
PERIODIC_PAYMENT_FREQUENCY_EXTENDED
INITIATE_INTERNATIONAL_VARIABLE_RECURRING_PAYMENT
CREATE_INTERNATIONAL_VARIABLE_RECURRING_PAYMENT
INITIATE_INTERNATIONAL_SCHEDULED_PAYMENT
CREATE_INTERNATIONAL_SCHEDULED_PAYMENT
INITIATE_INTERNATIONAL_PERIODIC_PAYMENT
CREATE_INTERNATIONAL_PERIODIC_PAYMENT
INITIATE_INTERNATIONAL_SINGLE_PAYMENT
CREATE_INTERNATIONAL_SINGLE_PAYMENT
INITIATE_BULK_PAYMENT
CREATE_BULK_PAYMENT
TRANSFER
OPEN_DATA_PERSONAL_CURRENT_ACCOUNTS
OPEN_DATA_ATMS
READ_DOMESTIC_SINGLE_REFUND
READ_DOMESTIC_SCHEDULED_REFUND
READ_DOMESTIC_PERIODIC_PAYMENT_REFUND
READ_INTERNATIONAL_SINGLE_REFUND
READ_INTERNATIONAL_SCHEDULED_REFUND

FeatureStatusEnum

"UP"

Enumerated Values

Value
UP
DOWN
WARNING
UNKNOWN
EXPIRED

FilterAndSort

{
  "before": "",
  "cursor": "",
  "from": "",
  "limit": 100,
  "offset": 100,
  "sort": "DATE_ASCENDING(\"date\")"
}

An object for filter and sort information

Properties

Name Type Description
before string none
cursor string none
from string none
limit integer none
offset integer none
sort SortEnum Valid options for the sort parameter

FrequencyEnumExtended

"DAILY"

Enumerated Values

Value
DAILY
EVERY_WORKING_DAY
CALENDAR_DAY
WEEKLY
EVERY_TWO_WEEKS
MONTHLY
EVERY_TWO_MONTHS
QUARTERLY
SEMIANNUAL
ANNUAL

FrequencyRequest

{
  "executionDay": 1,
  "intervalMonth": 1,
  "intervalWeek": 1,
  "type": "DAILY"
}

Properties

Name Type Description
executionDay integer none
intervalMonth integer none
intervalWeek integer none
type FrequencyEnumExtended none

HttpStatus

"BAD_REQUEST"

Enumerated Values

Value
BAD_REQUEST
UNAUTHORIZED
PAYMENT_REQUIRED
FORBIDDEN
NOT_FOUND
METHOD_NOT_ALLOWED
NOT_ACCEPTABLE
PROXY_AUTHENTICATION_REQUIRED
REQUEST_TIMEOUT
CONFLICT
GONE
LENGTH_REQUIRED
PRECONDITION_FAILED
PAYLOAD_TOO_LARGE
URI_TOO_LONG
UNSUPPORTED_MEDIA_TYPE
REQUESTED_RANGE_NOT_SATISFIABLE
EXPECTATION_FAILED
I_AM_A_TEAPOT
INSUFFICIENT_SPACE_ON_RESOURCE
METHOD_FAILURE
DESTINATION_LOCKED
UNPROCESSABLE_ENTITY
LOCKED
FAILED_DEPENDENCY
UPGRADE_REQUIRED
PRECONDITION_REQUIRED
TOO_MANY_REQUESTS
REQUEST_HEADER_FIELDS_TOO_LARGE
UNAVAILABLE_FOR_LEGAL_REASONS
INTERNAL_SERVER_ERROR
NOT_IMPLEMENTED
BAD_GATEWAY
SERVICE_UNAVAILABLE
GATEWAY_TIMEOUT
HTTP_VERSION_NOT_SUPPORTED
VARIANT_ALSO_NEGOTIATES
INSUFFICIENT_STORAGE
LOOP_DETECTED
BANDWIDTH_LIMIT_EXCEEDED
NOT_EXTENDED
NETWORK_AUTHENTICATION_REQUIRED

Identity

{
  "addresses": [
    {
      "addressLine": "",
      "buildingNumber": "123",
      "city": "London",
      "country": "United Kingdom",
      "county": "London",
      "postalCode": "A12 3BC",
      "streetName": "123 Test Street",
      "type": "BUSINESS"
    }
  ],
  "birthdate": "1970-01-01",
  "email": "bojack@horsingaround.com",
  "firstName": "Bojack",
  "fullName": "Bojack Horseman",
  "gender": "MALE",
  "id": "abc123",
  "lastName": "Horseman",
  "phone": "02071234567"
}

Properties

Name Type Description
addresses [IdentityAddress] none
birthdate string none
email string none
firstName string none
fullName string none
gender string none
id string none
lastName string none
phone string none

IdentityAddress

{
  "addressLine": "",
  "buildingNumber": "123",
  "city": "London",
  "country": "United Kingdom",
  "county": "London",
  "postalCode": "A12 3BC",
  "streetName": "123 Test Street",
  "type": "BUSINESS"
}

Properties

Name Type Description
addressLine [string] none
buildingNumber string none
city string none
country string none
county string none
postalCode string none
streetName string none
type AddressTypeEnum none

Institution

{
  "countries": [
    {
      "countryCode2": "GB",
      "displayName": "United Kingdom"
    }
  ],
  "credentialsType": "OAUTH1",
  "environmentType": "SANDBOX",
  "features": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "fullName": "Yapily Mock Bank",
  "id": "yapily-mock",
  "media": [
    {
      "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
      "type": "icon"
    }
  ],
  "name": "Yapily Mock"
}

Properties

Name Type Description
countries [Country] none
credentialsType CredentialsType none
environmentType EnvironmentType none
features [FeatureEnum] none
fullName string none
id string none
media [Media] none
name string none

InstitutionConsent

{
  "institutionId": "yapily-mock"
}

Properties

Name Type Description
institutionId string none

InstitutionError

{
  "errorMessage": "{\"Code\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Errors\":[{\"ErrorCode\":\"UK.OBIE.Signature.Malformed\",\"Message\":\"invalid_iss_claim: Invalid iss claim. Got org_id/statement_id. Expected 001580000103UArAAM/rapTYmFWJcXfdo2EvksDUx\",\"Field\":\"x-jws-signature\"}]}",
  "httpStatusCode": 100
}

Properties

Name Type Description
errorMessage string none
httpStatusCode integer none

InstitutionTypeEnum

"SANDBOX"

Enumerated Values

Value
SANDBOX
MOCK
LIVE

InternationalPaymentRequest

{
  "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
}

Properties

Name Type Description
id string none

IsoBankTransactionCode

{
  "domainCode": {
    "code": "",
    "name": ""
  },
  "familyCode": {
    "code": "",
    "name": ""
  },
  "subFamilyCode": {
    "code": "",
    "name": ""
  }
}

Properties

Name Type Description
domainCode IsoCodeDetails none
familyCode IsoCodeDetails none
subFamilyCode IsoCodeDetails none

IsoCodeDetails

{
  "code": "",
  "name": ""
}

Properties

Name Type Description
code string none
name string none

Map

{
  "name": "",
  "value": ""
}

Properties

Name Type Description
name string none
value string none

Media

{
  "source": "https://images.yapily.com/image/5e81571a-d83e-43ff-be2e-d1fe3b2ef5a0?size=0",
  "type": "icon"
}

Properties

Name Type Description
source string none
type string none

Merchant

{
  "merchantCategoryCode": "5462",
  "merchantName": "London Luxury Baker"
}

Properties

Name Type Description
merchantCategoryCode string none
merchantName string none

MerchantEnrichment

{
  "merchantName": "DEBENHAMS",
  "parentGroup": "ARCADIA"
}

Properties

Name Type Description
merchantName string none
parentGroup string none

MonitoringEndpointStatus

{
  "lastTested": "",
  "resourceEndpoint": "",
  "span": "",
  "status": "UP"
}

Properties

Name Type Description
lastTested string none
resourceEndpoint string none
span string none
status FeatureStatusEnum none

NewApplicationUser

{
  "applicationUserId": "bojack@9tees.com",
  "referenceId": "myuserreference"
}

Properties

Name Type Description
applicationUserId string none
referenceId string none

Next

{
  "before": "",
  "cursor": "",
  "from": "",
  "limit": 100
}

An object for filter and sort information

Properties

Name Type Description
before string none
cursor string none
from string none
limit integer none

OneTimeTokenRequest

{
  "oneTimeToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6ImJidmEtc2FuZGJveCIsIlVVSUQiOiJmMzNmNGU4ZC1jMDQ0LTQ2YTktOTlkMC0wYmRlMzIyYTJjOTIifQ.4Qv3NJI6av2nKi1U3aNmm71cIwJ3TvRsIlYDafQUVv_Khy_e-8oEpV_BoP4V1CII12oT-Yq4cPveHILz8BOwjg"
}

Properties

Name Type Description
oneTimeToken string none

Pagination

{
  "next": {
    "before": "",
    "cursor": "",
    "from": "",
    "limit": 100
  },
  "self": {
    "before": "",
    "cursor": "",
    "from": "",
    "limit": 100,
    "offset": 100,
    "sort": "DATE_ASCENDING(\"date\")"
  },
  "totalCount": 100
}

An object containing pagination information in ResponseListMeta

Properties

Name Type Description
next Next An object for filter and sort information
self FilterAndSort An object for filter and sort information
totalCount integer none

Payee

{
  "accountIdentifications": [
    {
      "identification": "VALUE_OF_IDENTIFICATION",
      "type": "SORT_CODE"
    }
  ],
  "address": {
    "addressLine": "",
    "addressType": "BUSINESS",
    "buildingNumber": "123",
    "country": "United Kingdom",
    "county": "London",
    "department": "",
    "postCode": "A12 3BC",
    "streetName": "123 Test Street",
    "subDepartment": "",
    "townName": "London"
  },
  "merchantCategoryCode": "5462",
  "merchantId": "12345678",
  "name": "Bojack Horseman"
}

Properties

Name Type Description
accountIdentifications [AccountIdentification] none
address Address none
merchantCategoryCode string none
merchantId string none
name string none

Payer

{
  "accountIdentifications": [
    {
      "identification": "VALUE_OF_IDENTIFICATION",
      "type": "SORT_CODE"
    }
  ],
  "address": {
    "addressLine": "",
    "addressType": "BUSINESS",
    "buildingNumber": "123",
    "country": "United Kingdom",
    "county": "London",
    "department": "",
    "postCode": "A12 3BC",
    "streetName": "123 Test Street",
    "subDepartment": "",
    "townName": "London"
  },
  "name": "Bojack Horseman"
}

Properties

Name Type Description
accountIdentifications [AccountIdentification] none
address Address none
name string none

PaymentAuthorisationRequest

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "allowOverdraft": true,
  "expiresAt": "2020-08-18T16:24:22.316Z",
  "maxAmountPerRequest": 10,
  "paymentRequest": {
    "amount": {
      "amount": 10,
      "currency": "GBP"
    },
    "contextType": "BILL",
    "internationalPayment": {
      "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
    },
    "payee": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "merchantCategoryCode": "5462",
      "merchantId": "12345678",
      "name": "Bojack Horseman"
    },
    "payer": {
      "accountIdentifications": [
        {}
      ],
      "address": {
        "addressLine": null,
        "addressType": null,
        "buildingNumber": null,
        "country": null,
        "county": null,
        "department": null,
        "postCode": null,
        "streetName": null,
        "subDepartment": null,
        "townName": null
      },
      "name": "Bojack Horseman"
    },
    "paymentDateTime": "2019-12-26T14:42:53Z",
    "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
    "periodicPayment": {
      "finalPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "finalPaymentDateTime": "",
      "frequency": {
        "executionDay": null,
        "intervalMonth": null,
        "intervalWeek": null,
        "type": null
      },
      "nextPaymentAmount": {
        "amount": null,
        "currency": null
      },
      "nextPaymentDateTime": "2018-01-10T00:00:00Z",
      "numberOfPayments": 1
    },
    "psuCorporateId": "",
    "psuId": "",
    "readRefundAccount": true,
    "reference": "REFERENCE",
    "type": "DOMESTIC_PAYMENT"
  },
  "startsAt": "2020-08-18T16:24:22.316Z",
  "totalMaxAmount": 10,
  "totalMaxAmountFrequency": "DAILY"
}

Properties

allOf

Name Type Description
anonymous AuthorisationRequest none

and

Name Type Description
anonymous object none
» allowOverdraft boolean none
» expiresAt string none
» maxAmountPerRequest integer(decimal) none
» paymentRequest PaymentRequest none
» startsAt string none
» totalMaxAmount integer(decimal) none
» totalMaxAmountFrequency AmountFrequency none

PaymentAuthorisationRequestResponse

{
  "applicationUserId": "bojack@8tees.com",
  "authorizedAt": "2020-09-13T15:57:46.450Z",
  "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6InlhcGlseS1tb2NrIiwiQ09OU0VOVCI6ImYxZTNiMDMxLWY1YmItNDZhNi04NGIzLWE1NTkwOWE2MzcyYSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJib2phY2tAOHRlZXMuY29tIiwiVVNFUiI6ImZjNjVmYjZhLWI5OTktNDI3OC05NDNhLWU0ODY0MmE1OGM0OCJ9.TTP6eI5pxOQd-Gj7uUFRgoCwQRKA_i1qHaJCyRnV2lLO1icqtc6PlksXNlPbgZjfp5PjNFl7HVlUNJAOv08mxQ",
  "createdAt": "2020-09-13T15:57:46.450Z",
  "expiresAt": "2020-09-13T15:57:46.450Z",
  "featureScope": [
    "INITIATE_PRE_AUTHORISATION"
  ],
  "id": "f1e3b031-f5bb-46a6-84b3-a55909a6372a",
  "institutionId": "yapily-mock",
  "referenceId": "myuserreference",
  "state": "754f6022f47548b99284f3f1993e050e",
  "status": "AWAITING_AUTHORIZATION",
  "timeToExpire": "PT-375H-40M-21.397S",
  "transactionFrom": "2020-09-13T15:57:46.450Z",
  "transactionTo": "2020-09-13T15:57:46.450Z",
  "userUuid": "fc65fb6a-b999-4278-943a-e48642a58c48",
  "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
  "charges": [
    {
      "chargeAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "chargeTo": "",
      "chargeType": "BULK_PAYMENT"
    }
  ],
  "exchangeRateInformation": {
    "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
  },
  "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
}

Properties

allOf

Name Type Description
anonymous Consent none

and

Name Type Description
anonymous object none
» authorisationUrl string none
» charges [ChargeDetails] none
» exchangeRateInformation ExchangeRateInformationResponse none
» qrCodeUrl string none

PaymentContextType

"BILL"

Enumerated Values

Value
BILL
GOODS
SERVICES
OTHER
PERSON_TO_PERSON

PaymentRequest

{
  "amount": {
    "amount": 10,
    "currency": "GBP"
  },
  "contextType": "BILL",
  "internationalPayment": {
    "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
  },
  "payee": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "merchantCategoryCode": "5462",
    "merchantId": "12345678",
    "name": "Bojack Horseman"
  },
  "payer": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "name": "Bojack Horseman"
  },
  "paymentDateTime": "2019-12-26T14:42:53Z",
  "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
  "periodicPayment": {
    "finalPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "finalPaymentDateTime": "",
    "frequency": {
      "executionDay": 1,
      "intervalMonth": 1,
      "intervalWeek": 1,
      "type": "DAILY"
    },
    "nextPaymentAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "nextPaymentDateTime": "2018-01-10T00:00:00Z",
    "numberOfPayments": 1
  },
  "psuCorporateId": "",
  "psuId": "",
  "readRefundAccount": true,
  "reference": "REFERENCE",
  "type": "DOMESTIC_PAYMENT"
}

Properties

Name Type Description
amount Amount none
contextType PaymentContextType none
internationalPayment InternationalPaymentRequest none
payee Payee none
payer Payer none
paymentDateTime string none
paymentIdempotencyId string none
periodicPayment PeriodicPaymentRequest none
psuCorporateId string none
psuId string none
readRefundAccount boolean none
reference string none
type PaymentType none

PaymentResponse

{
  "amount": "10.00",
  "amountDetails": {
    "amount": 10,
    "currency": "GBP"
  },
  "bulkAmountSum": 100,
  "chargeDetails": [
    {
      "chargeAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "chargeTo": "",
      "chargeType": "BULK_PAYMENT"
    }
  ],
  "createdAt": "2019-09-26T15:38:33.401Z",
  "currency": "GBP",
  "currencyOfTransfer": "",
  "exchangeRate": {
    "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
  },
  "finalPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
  "firstPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
  "frequency": {
    "executionDay": 1,
    "intervalMonth": 1,
    "intervalWeek": 1,
    "type": "DAILY"
  },
  "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
  "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
  "nextPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
  "numberOfPayments": 10,
  "payeeDetails": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "merchantCategoryCode": "5462",
    "merchantId": "12345678",
    "name": "Bojack Horseman"
  },
  "payer": {
    "accountIdentifications": [
      {
        "identification": "VALUE_OF_IDENTIFICATION",
        "type": "SORT_CODE"
      }
    ],
    "address": {
      "addressLine": "",
      "addressType": "BUSINESS",
      "buildingNumber": "123",
      "country": "United Kingdom",
      "county": "London",
      "department": "",
      "postCode": "A12 3BC",
      "streetName": "123 Test Street",
      "subDepartment": "",
      "townName": "London"
    },
    "name": "Bojack Horseman"
  },
  "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
  "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
  "previousPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "previousPaymentDateTime": "",
  "priority": "",
  "purpose": "",
  "reference": "REFERENCE",
  "scheduledPaymentDateTime": "",
  "scheduledPaymentType": "",
  "status": "PENDING",
  "statusDetails": {
    "status": "PENDING",
    "statusReason": "",
    "statusReasonDescription": "",
    "statusUpdateDate": "",
    "multiAuthorisationStatus": {
      "status": "",
      "numberOfAuthorisationRequired": 1,
      "numberOfAuthorisationReceived": 1,
      "lastUpdatedDateTime": "",
      "expirationDateTime": ""
    }
  }
}

Properties

Name Type Description
amount integer(decimal) none
amountDetails Amount none
bulkAmountSum integer(decimal) none
chargeDetails [ChargeDetails] none
createdAt string none
currency string none
currencyOfTransfer string none
exchangeRate ExchangeRateInformationResponse none
finalPaymentAmount Amount none
finalPaymentDateTime string none
firstPaymentAmount Amount none
firstPaymentDateTime string none
frequency FrequencyRequest none
id string none
institutionConsentId string none
nextPaymentAmount Amount none
nextPaymentDateTime string none
numberOfPayments integer none
payeeDetails Payee none
payer Payer none
paymentIdempotencyId string none
paymentLifecycleId string none
previousPaymentAmount Amount none
previousPaymentDateTime string none
priority string none
purpose string none
reference string none
scheduledPaymentDateTime string none
scheduledPaymentType string none
status PaymentStatus none
statusDetails PaymentStatusDetails none

PaymentResponses

{
  "payments": [
    {
      "amount": "10.00",
      "amountDetails": {
        "amount": 10,
        "currency": "GBP"
      },
      "bulkAmountSum": 100,
      "chargeDetails": [
        {
          "chargeAmount": {
            "amount": null,
            "currency": null
          },
          "chargeTo": "",
          "chargeType": "BULK_PAYMENT"
        }
      ],
      "createdAt": "2019-09-26T15:38:33.401Z",
      "currency": "GBP",
      "currencyOfTransfer": "",
      "exchangeRate": {
        "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
      },
      "finalPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "finalPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "firstPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "firstPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "frequency": {
        "executionDay": 1,
        "intervalMonth": 1,
        "intervalWeek": 1,
        "type": "DAILY"
      },
      "id": "pv3-c8eece27-eb1a-4c27-a13c-2f805703dab2",
      "institutionConsentId": "sdp-1-aa9d0941-43ff-4abb-8129-4d56b620b8ee",
      "nextPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "nextPaymentDateTime": "2019-09-26T15:38:33.401Z",
      "numberOfPayments": 10,
      "payeeDetails": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "merchantCategoryCode": "5462",
        "merchantId": "12345678",
        "name": "Bojack Horseman"
      },
      "payer": {
        "accountIdentifications": [
          {
            "identification": null,
            "type": null
          }
        ],
        "address": {
          "addressLine": "",
          "addressType": "[",
          "buildingNumber": "123",
          "country": "United Kingdom",
          "county": "London",
          "department": "",
          "postCode": "A12 3BC",
          "streetName": "123 Test Street",
          "subDepartment": "",
          "townName": "London"
        },
        "name": "Bojack Horseman"
      },
      "paymentIdempotencyId": "1d54cf71bfe44b1b8e67247aed455d96",
      "paymentLifecycleId": "69d554dea74276e8b1b44efb17fc45d1",
      "previousPaymentAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "previousPaymentDateTime": "",
      "priority": "",
      "purpose": "",
      "reference": "REFERENCE",
      "scheduledPaymentDateTime": "",
      "scheduledPaymentType": "",
      "status": "PENDING",
      "statusDetails": {
        "status": "PENDING",
        "statusReason": "",
        "statusReasonDescription": "",
        "statusUpdateDate": "",
        "multiAuthorisationStatus": {
          "status": "",
          "numberOfAuthorisationRequired": 1,
          "numberOfAuthorisationReceived": 1,
          "lastUpdatedDateTime": "",
          "expirationDateTime": ""
        }
      }
    }
  ]
}

Properties

Name Type Description
payments [PaymentResponse] none

PaymentStatus

"PENDING"

Enumerated Values

Value
PENDING
FAILED
DECLINED
COMPLETED
COMPLETED_SETTLEMENT_IN_PROCESS
EXPIRED
UNKNOWN
ACTIVE
INACTIVE

PaymentStatusDetails

{
  "status": "PENDING",
  "statusReason": "",
  "statusReasonDescription": "",
  "statusUpdateDate": "",
  "multiAuthorisationStatus": {
    "status": "",
    "numberOfAuthorisationRequired": 1,
    "numberOfAuthorisationReceived": 1,
    "lastUpdatedDateTime": "",
    "expirationDateTime": ""
  }
}

Properties

Name Type Description
status PaymentStatus none
statusReason string none
statusReasonDescription string none
statusUpdateDate string none
multiAuthorisationStatus MultiAuthorisation none

MultiAuthorisation

{
  "status": "",
  "numberOfAuthorisationRequired": 1,
  "numberOfAuthorisationReceived": 1,
  "lastUpdatedDateTime": "",
  "expirationDateTime": ""
}

Properties

Name Type Description
status string none
numberOfAuthorisationRequired integer none
numberOfAuthorisationReceived integer none
lastUpdatedDateTime string none
expirationDateTime string none

PaymentType

"DOMESTIC_PAYMENT"

Enumerated Values

Value
DOMESTIC_PAYMENT
DOMESTIC_INSTANT_PAYMENT
DOMESTIC_VARIABLE_RECURRING_PAYMENT
DOMESTIC_SCHEDULED_PAYMENT
DOMESTIC_PERIODIC_PAYMENT
INTERNATIONAL_PAYMENT
INTERNATIONAL_SCHEDULED_PAYMENT
INTERNATIONAL_PERIODIC_PAYMENT
BULK_PAYMENT

PeriodicPaymentRequest

{
  "finalPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "finalPaymentDateTime": "",
  "frequency": {
    "executionDay": 1,
    "intervalMonth": 1,
    "intervalWeek": 1,
    "type": "DAILY"
  },
  "nextPaymentAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "nextPaymentDateTime": "2018-01-10T00:00:00Z",
  "numberOfPayments": 1
}

Properties

Name Type Description
finalPaymentAmount Amount none
finalPaymentDateTime string none
frequency FrequencyRequest none
nextPaymentAmount Amount none
nextPaymentDateTime string none
numberOfPayments integer none

PreAuthorisationRequest

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "scope": "AIS"
}

Properties

allOf

Name Type Description
anonymous AuthorisationRequest none

and

Name Type Description
anonymous object none
» scope
Mandatory
PreAuthScope none

PreAuthScope

"AIS"

Enumerated Values

Value
AIS
PIS

ProprietaryBankTransactionCode

{
  "code": "EXCHANGE",
  "issuer": "Revolut"
}

Properties

Name Type Description
code string none
issuer string none

RawRequest

{
  "method": "",
  "requestInstant": "",
  "templateUri": "",
  "url": ""
}

Properties

Name Type Description
method string none
requestInstant string none
templateUri string none
url string none

RawResponse

{
  "duration": "",
  "headers": [
    {
      "name": "",
      "value": ""
    }
  ],
  "request": {
    "method": "",
    "requestInstant": "",
    "templateUri": "",
    "url": ""
  },
  "result": "",
  "resultCode": 100
}

An object returned when the raw parameter is sent

Properties

Name Type Description
duration string none
headers [Map] none
request RawRequest none
result string none
resultCode integer none

RedirectRequestResponse

{
  "authorisationUrl": "https://apis-i.redsys.es:20443/psd2/xs2a/api-oauth-xs2a/services/rest/unicajabanco/authorize?client_id=PSDES-BDE-927459&response_type=code&state=0485a5e6263442f4ac8591ea63ced49d&code_challenge=p9NWLpyT0kvGrDkXeQA6Msb949lqacoI9zrUN6nBang&code_challenge_method=S256&scope=AIS+PIS&redirect_uri=http%3A%2F%2Flocal-auth.yapily.com%3A8082%2F",
  "charges": [
    {
      "chargeAmount": {
        "amount": 10,
        "currency": "GBP"
      },
      "chargeTo": "",
      "chargeType": "BULK_PAYMENT"
    }
  ],
  "exchangeRateInformation": {
    "exchangeRateExpiryDate": "2020-05-04T14:31:04.872Z"
  },
  "qrCodeUrl": "https://images.yapily.com/image/cf06fd2e-7d50-4097-8392-ec9ed9ae3971/1599231316?size=0"
}

Properties

Name Type Description
authorisationUrl string none
charges [ChargeDetails] none
exchangeRateInformation ExchangeRateInformationResponse none
qrCodeUrl string none

RegistrationRequest

{
  "clientId": "",
  "clientName": "",
  "clientSecret": "",
  "clientUri": "",
  "manual": true,
  "signingCertificateId": "",
  "signingKeyId": "",
  "softwareId": "",
  "ssaJwt": "",
  "termsOfServiceUri": "",
  "tppId": "",
  "transportCertificateId": "",
  "transportKeyId": ""
}

Properties

Name Type Description
clientId string none
clientName string none
clientSecret string none
clientUri string none
manual boolean none
signingCertificateId string none
signingKeyId string none
softwareId string none
ssaJwt string none
termsOfServiceUri string none
tppId string none
transportCertificateId string none
transportKeyId string none

RegistrationResult

{
  "applicationId": "",
  "clientId": "",
  "clientName": "",
  "clientSecret": "",
  "clientUri": "",
  "institutionId": "",
  "registrationResponse": "",
  "signingCertificateId": "",
  "signingKeyId": "",
  "signingKeyStore": "",
  "softwareId": "",
  "ssaJwt": "",
  "termsOfServiceUri": "",
  "tppId": "",
  "transportCertificateId": "",
  "transportKeyId": "",
  "transportKeyStore": ""
}

Properties

Name Type Description
applicationId string none
clientId string none
clientName string none
clientSecret string none
clientUri string none
institutionId string none
registrationResponse string none
signingCertificateId string none
signingKeyId string none
signingKeyStore string none
softwareId string none
ssaJwt string none
termsOfServiceUri string none
tppId string none
transportCertificateId string none
transportKeyId string none
transportKeyStore string none

ResponseListMeta

{
  "count": 100,
  "pagination": {
    "next": {
      "before": "",
      "cursor": "",
      "from": "",
      "limit": 100
    },
    "self": {
      "before": "",
      "cursor": "",
      "from": "",
      "limit": 100,
      "offset": 100,
      "sort": "DATE_ASCENDING(\"date\")"
    },
    "totalCount": 100
  },
  "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
}

An object containing a tracingId of the request

Properties

Name Type Description
count integer none
pagination Pagination An object containing pagination information in ResponseListMeta
tracingId string none

ResponseMeta

{
  "tracingId": "cfeba8da-d9a8-46c3-b9f6-80a52149a775"
}

An object containing a tracingId of the request

Properties

Name Type Description
tracingId string none

SSAResult

{
  "applicationId": "",
  "institutionId": "",
  "ssaJwt": ""
}

Properties

Name Type Description
applicationId string none
institutionId string none
ssaJwt string none

SortCodePaymentAuthRequest

{
  "applicationUserId": "bojack@9tees.com",
  "callback": "https://tpp.application/callback",
  "forwardParameters": "",
  "institutionId": "yapily-mock",
  "oneTimeToken": false,
  "userUuid": "37138ee8-ab9a-496c-be98-07ae353fb876",
  "paymentRequest": {
    "accountNumber": "",
    "amount": 10,
    "country": "",
    "currency": "GBP",
    "merchantInfo": "",
    "name": "",
    "readRefundAccount": true,
    "reference": "",
    "senderAccountId": "",
    "sortCode": "",
    "type": ""
  }
}

Properties

allOf

Name Type Description
anonymous AuthorisationRequest none

and

Name Type Description
anonymous object none
» paymentRequest SortCodePaymentRequest none

SortCodePaymentRequest

{
  "accountNumber": "",
  "amount": 10,
  "country": "",
  "currency": "GBP",
  "merchantInfo": "",
  "name": "",
  "readRefundAccount": true,
  "reference": "",
  "senderAccountId": "",
  "sortCode": "",
  "type": ""
}

Properties

Name Type Description
accountNumber string none
amount integer(decimal) none
country string none
currency string none
merchantInfo string none
name string none
readRefundAccount boolean none
reference string none
senderAccountId string none
sortCode string none
type string none

SortEnum

"DATE_ASCENDING(\"date\")"

Valid options for the sort parameter

Enumerated Values

Value
DATE_ASCENDING("date")
DATE_DESCENDING("-date")

StatementReference

{
  "value": "They sent you money for carrots"
}

Properties

Name Type Description
value string none

Status

"PENDING"

Enumerated Values

Value
PENDING
FAILED
DECLINED
COMPLETED
UNKNOWN

Transaction

{
  "addressDetails": {
    "addressLine": "123 Test Street, Test, AB1 2DC"
  },
  "amount": 10,
  "balance": {
    "balanceAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "type": "CLOSING_AVAILABLE"
  },
  "bookingDateTime": "2019-04-20T23:54:10.937Z",
  "chargeDetails": {
    "chargeAmount": {
      "amount": 10,
      "currency": "GBP"
    },
    "chargeTo": "",
    "chargeType": "BULK_PAYMENT"
  },
  "currency": "GBP",
  "currencyExchange": {
    "exchangeRate": 1.34,
    "sourceCurrency": "GBP",
    "targetCurrency": "EUR",
    "unitCurrency": "GBP"
  },
  "date": "2019-04-20T23:54:10.937Z",
  "description": "Exchanged to EUR",
  "enrichment": {
    "categorisation": {
      "categories": [
        "SHOPPING",
        "GROCERIES"
      ],
      "source": "MODEL"
    },
    "transactionHash": {
      "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
    },
    "merchant": {
      "merchantName": "DEBENHAMS",
      "parentGroup": "ARCADIA"
    },
    "paymentProcessor": "PAYPAL",
    "location": "LONDON",
    "correctedDate": "2020-05-04T14:31:04.872Z"
  },
  "id": "d6f8ee30-7804-4c62-9457-fe64fcd23fc2",
  "isoBankTransactionCode": {
    "domainCode": {
      "code": "",
      "name": ""
    },
    "familyCode": {
      "code": "",
      "name": ""
    },
    "subFamilyCode": {
      "code": "",
      "name": ""
    }
  },
  "merchant": {
    "merchantCategoryCode": "5462",
    "merchantName": "London Luxury Baker"
  },
  "proprietaryBankTransactionCode": {
    "code": "EXCHANGE",
    "issuer": "Revolut"
  },
  "reference": "mytrxref",
  "statementReferences": [
    {
      "value": "They sent you money for carrots"
    }
  ],
  "status": "BOOKED",
  "supplementaryData": {
    "name": "",
    "value": ""
  },
  "transactionAmount": {
    "amount": 10,
    "currency": "GBP"
  },
  "transactionInformation": [
    ""
  ],
  "valueDateTime": "2019-04-20T23:54:10.937Z"
}

Properties

Name Type Description
addressDetails AddressDetails none
amount integer(decimal) none
balance Balance none
bookingDateTime string none
chargeDetails ChargeDetails none
currency string none
currencyExchange CurrencyExchange none
date string none
description string none
enrichment Enrichment none
id string none
isoBankTransactionCode IsoBankTransactionCode none
merchant Merchant none
proprietaryBankTransactionCode ProprietaryBankTransactionCode none
reference string none
statementReferences [StatementReference] none
status TransactionStatusEnum none
supplementaryData Map none
transactionAmount Amount none
transactionInformation [string] none
valueDateTime string none

TransactionHash

{
  "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
}

Properties

Name Type Description
hash string none

TransactionStatusEnum

"BOOKED"

Enumerated Values

Value
BOOKED
PENDING

TransferRequest

{
  "accountId": "abc123",
  "amount": 10,
  "currency": "GBP",
  "reference": "reference",
  "transferReferenceId": "referenceId"
}

Properties

Name Type Description
accountId string none
amount integer(decimal) none
currency string none
reference string none
transferReferenceId string none

TransferResponse

{
  "balance": 10,
  "createdAt": "2018-05-18T14:39:30.934Z",
  "currency": "GBP",
  "fromAccountId": "acc_1234567890abcdef",
  "reference": "reference",
  "status": "PENDING",
  "toAccountId": "pot_9876543210zyxwvu"
}

Properties

Name Type Description
balance integer(decimal) none
createdAt string none
currency string none
fromAccountId string none
reference string none
status Status none
toAccountId string none

UsageType

"PERSONAL"

Enumerated Values

Value
PERSONAL
BUSINESS
OTHER
UNKNOWN

User

{
  "applicationUserId": "bojack@8tees.com",
  "applicationUuid": "d9581bcc-6359-48d2-bb96-dc0ac74b6f7a",
  "institutionConsents": [
    {
      "institutionId": "yapily-mock"
    }
  ],
  "referenceId": "myuserreference",
  "uuid": "fc65fb6a-b999-4278-943a-e48642a58c48"
}

Properties

Name Type Description
applicationUserId string none
applicationUuid string none
institutionConsents [InstitutionConsent] none
referenceId string none
uuid string none

UserDeleteRequest

{
  "applicationUserIds": "bojack@9tees.com",
  "userUuids": ""
}

Properties

Name Type Description
applicationUserIds [string] none
userUuids [string] none

UserDeleteResponse

{
  "creationDate": "2019-05-10T17:36:49.269+0000",
  "deleteStatus": "SUCCESS",
  "id": "c50844cb-1498-44aa-90d1-62eae8cdb3f6",
  "userConsents": [
    {
      "creationDate": "2019-05-10T16:45:43.566+0000",
      "deleteStatus": "SUCCESS",
      "id": "a71fd46f-4144-478e-9a72-dd0d7a1158ab",
      "institutionConsentId": "aac-1cce1cfc-1ab2-4ed6-8062-a0fd6c5c2122",
      "institutionId": "yapily-mock"
    }
  ]
}

An object returned from a successful user delete request

Properties

Name Type Description
creationDate string none
deleteStatus DeleteStatusEnum none
id string none
userConsents [ConsentDeleteResponse] [An object returned from a UserDeleteResponse]