NAV
shell

Yapily API v2.0-ALPHA

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 'x-yapily-api-version: 2.0-ALPHA' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /me

Returns the details of the Application that owns the request credentials

Parameters

Name In Type Required Description
x-yapily-api-version header string true Determines the API version to use.

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 'x-yapily-api-version: 2.0-ALPHA' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /users

Used to retrieve all User objects from an Application.

Parameters

Name In Type Required Description
x-yapily-api-version header string true Determines the API version to use.
filter[applicationUserId] query string false 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 Required Restrictions Description
anonymous [User] false none none
» applicationUserId string false none none
» applicationUuid string false none none
» institutionConsents [InstitutionConsent] false none none
»» institutionId string false none none
» referenceId string false none none
» uuid string false none none

Create User

Code samples

curl -X POST https://api.yapily.com/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
body body NewApplicationUser true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
userUuid path string true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
userUuid path string true The ID of the User
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data UserDeleteResponse false none An object returned from a successful user delete request
»» creationDate string false none none
»» deleteStatus DeleteStatusEnum false none none
»» id string false none none
»» userConsents [ConsentDeleteResponse] false none [An object returned from a UserDeleteResponse]
»»» creationDate string false none none
»»» deleteStatus DeleteStatusEnum false none none
»»» id string false none none
»»» institutionConsentId string false none none
»»» institutionId string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /institutions

Used to retrieve all Institutions from the Application.

Parameters

Name In Type Required Description
x-yapily-api-version header string true Determines the API version to use.

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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [Institution] false none none
»» countries [Country] false none none
»»» countryCode2 string false none none
»»» displayName string false none none
»» credentialsType CredentialsType false none none
»» environmentType EnvironmentType false none none
»» features [FeatureEnum] false none none
»» fullName string false none none
»» id string false none none
»» media [Media] false none none
»»» source string false none none
»»» type string false none none
»» name string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
institutionId path string true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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.

Parameters

Name In Type Required Description
x-yapily-api-version header string true Determines the API version to use.

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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [FeatureDetails] false none none
»» documentationUrl string false none none
»» endpoint string false none none
»» feature FeatureEnum false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
filter[applicationUserId] query array[string] false Filter consents by your application user Id (applicationUserId)
filter[userUuid] query array[string] false Filter consents by Yapily user Id (userUuid)
filter[institution] query array[string] false Use this parameter to filter consent by institution, using the Yapily institution Id
filter[status] query array[string] false Use this parameter to filter consent by status
from query string false 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 false 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 false Use this parameter to limit consent results, max limit is 20
offset query integer false Use this parameter to specify the offset of the results
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [Consent] false none none
»» applicationUserId string false none none
»» authorizedAt string false none none
»» consentToken string false none none
»» createdAt string false none none
»» expiresAt string false none none
»» featureScope [FeatureEnum] false none none
»» id string false none none
»» institutionId string false none none
»» referenceId string false none none
»» state string false none none
»» status AuthorisationStatus false none none
»» timeToExpire string false none none
»» transactionFrom string false none none
»» transactionTo string false none none
»» userUuid string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -H 'Authorization: Basic B64(API_KEY:API_SECRET)'

GET /consents/{consentId}

Used to retrieve a specific consent by ID.

Name In Type Required Description
x-yapily-api-version header string true Determines the API version to use.
consentId path string true The ID of the consent
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data Consent false none none
»» applicationUserId string false none none
»» authorizedAt string false none none
»» consentToken string false none none
»» createdAt string false none none
»» expiresAt string false none none
»» featureScope [FeatureEnum] false none none
»» id string false none none
»» institutionId string false none none
»» referenceId string false none none
»» state string false none none
»» status AuthorisationStatus false none none
»» timeToExpire string false none none
»» transactionFrom string false none none
»» transactionTo string false none none
»» userUuid string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
consentId path string true The ID of the consent
forceDelete query boolean false Whether to forceDelete consents. Defaults to true
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data ConsentDeleteResponse false none An object returned from a UserDeleteResponse
»» creationDate string false none none
»» deleteStatus DeleteStatusEnum false none none
»» id string false none none
»» institutionConsentId string false none none
»» institutionId string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
body body OneTimeTokenRequest true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
userUuid path string true The ID of the User
body body CreateConsentAccessToken true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
body body ConsentAuthCodeRequest true 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body AccountAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
consent header string true The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
consent header string false The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body AccountAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body PaymentAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» charges [ChargeDetails] false none none
»»»» chargeAmount Amount false none none
»»»»» amount integer(float) false none none
»»»»» currency string false none none
»»»» chargeTo string false none none
»»»» chargeType string false none none
»»» exchangeRateInformation ExchangeRateInformationResponse false none none
»»»» exchangeRateExpiryDate string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
consent header string true The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body PaymentAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» charges [ChargeDetails] false none none
»»»» chargeAmount Amount false none none
»»»»» amount integer(float) false none none
»»»»» currency string false none none
»»»» chargeTo string false none none
»»»» chargeType string false none none
»»» exchangeRateInformation ExchangeRateInformationResponse false none none
»»»» exchangeRateExpiryDate string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
raw query boolean false Raw parameter available for debugging purposes
body body PreAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body BulkPaymentAuthorisationRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data any false none none

allOf

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» authorisationUrl string false none none
»»» charges [ChargeDetails] false none none
»»»» chargeAmount Amount false none none
»»»»» amount integer(float) false none none
»»»»» currency string false none none
»»»» chargeTo string false none none
»»»» chargeType string false none none
»»» exchangeRateInformation ExchangeRateInformationResponse false none none
»»»» exchangeRateExpiryDate string false none none
»»» qrCodeUrl string false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [Account] false none none
»» accountBalances [AccountBalance] false none none
»»» balanceAmount Amount false none none
»»»» amount integer(float) false none none
»»»» currency string false none none
»»» creditLineIncluded boolean false none none
»»» creditLines [CreditLine] false none none
»»»» creditLineAmount Amount false none none
»»»» type CreditLineType false none none
»»» dateTime string false none none
»»» type AccountBalanceType false none none
»» accountIdentifications [AccountIdentification] false none none
»»» identification string false none none
»»» type AccountIdentificationType false none none
»» accountNames [AccountName] false none none
»»» name string false none none
»» accountType AccountType false none none
»» balance integer(decimal) false none none
»» currency string false none none
»» description string false none none
»» details string false none none
»» id string false none none
»» nickname string false none none
»» type string false none none
»» usageType UsageType false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data Account false none none
»» accountBalances [AccountBalance] false none none
»»» balanceAmount Amount false none none
»»»» amount integer(float) false none none
»»»» currency string false none none
»»» creditLineIncluded boolean false none none
»»» creditLines [CreditLine] false none none
»»»» creditLineAmount Amount false none none
»»»» type CreditLineType false none none
»»» dateTime string false none none
»»» type AccountBalanceType false none none
»» accountIdentifications [AccountIdentification] false none none
»»» identification string false none none
»»» type AccountIdentificationType false none none
»» accountNames [AccountName] false none none
»»» name string false none none
»» accountType AccountType false none none
»» balance integer(decimal) false none none
»» currency string false none none
»» description string false none none
»» details string false none none
»» id string false none none
»» nickname string false none none
»» type string false none none
»» usageType UsageType false none 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 'x-yapily-api-version: 2.0-ALPHA' \
  -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 Required Description
x-yapily-api-version header string true Determines the API version to use.
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
limit header integer false Use this parameter to limit account's direct debit results
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [PaymentResponse] false none none
»» amount integer(decimal) false none none
»» amountDetails Amount false none none
»»» amount integer(float) false none none
»»» currency string false none none
»» bulkAmountSum integer(decimal) false none none
»» chargeDetails [ChargeDetails] false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» createdAt string false none none
»» currency string false none none
»» currencyOfTransfer string false none none
»» exchangeRate ExchangeRateInformationResponse false none none
»»» exchangeRateExpiryDate string false none none
»» finalPaymentAmount Amount false none none
»» finalPaymentDateTime string false none none
»» firstPaymentAmount Amount false none none
»» firstPaymentDateTime string false none none
»» frequency FrequencyRequest false none none
»»» executionDay integer false none none
»»» intervalMonth integer false none none
»»» intervalWeek integer false none none
»»» type FrequencyEnumExtended false none none
»» id string false none none
»» institutionConsentId string false none none
»» nextPaymentAmount Amount false none none
»» nextPaymentDateTime string false none none
»» numberOfPayments integer false none none
»» payeeDetails Payee false none none
»»» accountIdentifications [AccountIdentification] false none none
»»»» identification string false none none
»»»» type AccountIdentificationType false none none
»»» address Address false none none
»»»» addressLine [string] false none none
»»»» addressType AddressTypeEnum false none none
»»»» buildingNumber string false none none
»»»» country string false none none
»»»» county [string] false none none
»»»» department string false none none
»»»» postCode string false none none
»»»» streetName string false none none
»»»» subDepartment string false none none
»»»» townName string false none none
»»» merchantCategoryCode string false none none
»»» merchantId string false none none
»»» name string false none none
»» payer Payer false none none
»»» accountIdentifications [AccountIdentification] false none none
»»» address Address false none none
»»» name string false none none
»» paymentIdempotencyId string false none none
»» paymentLifecycleId string false none none
»» previousPaymentAmount Amount false none none
»» previousPaymentDateTime string false none none
»» priority string false none none
»» purpose string false none none
»» reference string false none none
»» scheduledPaymentDateTime string false none none
»» scheduledPaymentType string false none none
»» status PaymentStatus false none none
»» statusDetails PaymentStatusDetails false none none
»»» status PaymentStatus false none none
»»» statusReason string false none none
»»» statusReasonDescription string false none none
»»» statusUpdateDate string false none none
»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»» status string false none none
»»»» numberOfAuthorisationRequired integer false none none
»»»» numberOfAuthorisationReceived integer false none none
»»»» lastUpdatedDateTime string false none none
»»»» expirationDateTime string false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
limit header integer false Use this parameter to limit account's periodic payment order results
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [PaymentResponse] false none none
»» amount integer(decimal) false none none
»» amountDetails Amount false none none
»»» amount integer(float) false none none
»»» currency string false none none
»» bulkAmountSum integer(decimal) false none none
»» chargeDetails [ChargeDetails] false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» createdAt string false none none
»» currency string false none none
»» currencyOfTransfer string false none none
»» exchangeRate ExchangeRateInformationResponse false none none
»»» exchangeRateExpiryDate string false none none
»» finalPaymentAmount Amount false none none
»» finalPaymentDateTime string false none none
»» firstPaymentAmount Amount false none none
»» firstPaymentDateTime string false none none
»» frequency FrequencyRequest false none none
»»» executionDay integer false none none
»»» intervalMonth integer false none none
»»» intervalWeek integer false none none
»»» type FrequencyEnumExtended false none none
»» id string false none none
»» institutionConsentId string false none none
»» nextPaymentAmount Amount false none none
»» nextPaymentDateTime string false none none
»» numberOfPayments integer false none none
»» payeeDetails Payee false none none
»»» accountIdentifications [AccountIdentification] false none none
»»»» identification string false none none
»»»» type AccountIdentificationType false none none
»»» address Address false none none
»»»» addressLine [string] false none none
»»»» addressType AddressTypeEnum false none none
»»»» buildingNumber string false none none
»»»» country string false none none
»»»» county [string] false none none
»»»» department string false none none
»»»» postCode string false none none
»»»» streetName string false none none
»»»» subDepartment string false none none
»»»» townName string false none none
»»» merchantCategoryCode string false none none
»»» merchantId string false none none
»»» name string false none none
»» payer Payer false none none
»»» accountIdentifications [AccountIdentification] false none none
»»» address Address false none none
»»» name string false none none
»» paymentIdempotencyId string false none none
»» paymentLifecycleId string false none none
»» previousPaymentAmount Amount false none none
»» previousPaymentDateTime string false none none
»» priority string false none none
»» purpose string false none none
»» reference string false none none
»» scheduledPaymentDateTime string false none none
»» scheduledPaymentType string false none none
»» status PaymentStatus false none none
»» statusDetails PaymentStatusDetails false none none
»»» status PaymentStatus false none none
»»» statusReason string false none none
»»» statusReasonDescription string false none none
»»» statusUpdateDate string false none none
»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»» status string false none none
»»»» numberOfAuthorisationRequired integer false none none
»»»» numberOfAuthorisationReceived integer false none none
»»»» lastUpdatedDateTime string false none none
»»»» expirationDateTime string false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
limit header integer false Use this parameter to limit account's scheduled payment results
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [PaymentResponse] false none none
»» amount integer(decimal) false none none
»» amountDetails Amount false none none
»»» amount integer(float) false none none
»»» currency string false none none
»» bulkAmountSum integer(decimal) false none none
»» chargeDetails [ChargeDetails] false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» createdAt string false none none
»» currency string false none none
»» currencyOfTransfer string false none none
»» exchangeRate ExchangeRateInformationResponse false none none
»»» exchangeRateExpiryDate string false none none
»» finalPaymentAmount Amount false none none
»» finalPaymentDateTime string false none none
»» firstPaymentAmount Amount false none none
»» firstPaymentDateTime string false none none
»» frequency FrequencyRequest false none none
»»» executionDay integer false none none
»»» intervalMonth integer false none none
»»» intervalWeek integer false none none
»»» type FrequencyEnumExtended false none none
»» id string false none none
»» institutionConsentId string false none none
»» nextPaymentAmount Amount false none none
»» nextPaymentDateTime string false none none
»» numberOfPayments integer false none none
»» payeeDetails Payee false none none
»»» accountIdentifications [AccountIdentification] false none none
»»»» identification string false none none
»»»» type AccountIdentificationType false none none
»»» address Address false none none
»»»» addressLine [string] false none none
»»»» addressType AddressTypeEnum false none none
»»»» buildingNumber string false none none
»»»» country string false none none
»»»» county [string] false none none
»»»» department string false none none
»»»» postCode string false none none
»»»» streetName string false none none
»»»» subDepartment string false none none
»»»» townName string false none none
»»» merchantCategoryCode string false none none
»»» merchantId string false none none
»»» name string false none none
»» payer Payer false none none
»»» accountIdentifications [AccountIdentification] false none none
»»» address Address false none none
»»» name string false none none
»» paymentIdempotencyId string false none none
»» paymentLifecycleId string false none none
»» previousPaymentAmount Amount false none none
»» previousPaymentDateTime string false none none
»» priority string false none none
»» purpose string false none none
»» reference string false none none
»» scheduledPaymentDateTime string false none none
»» scheduledPaymentType string false none none
»» status PaymentStatus false none none
»» statusDetails PaymentStatusDetails false none none
»»» status PaymentStatus false none none
»»» statusReason string false none none
»»» statusReasonDescription string false none none
»»» statusUpdateDate string false none none
»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»» status string false none none
»»»» numberOfAuthorisationRequired integer false none none
»»»» numberOfAuthorisationReceived integer false none none
»»»» lastUpdatedDateTime string false none none
»»»» expirationDateTime string false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data [Balances] false none none
»» balances [AccountBalance] false none none
»»» balanceAmount Amount false none none
»»»» amount integer(float) false none none
»»»» currency string false none none
»»» creditLineIncluded boolean false none none
»»» creditLines [CreditLine] false none none
»»»» creditLineAmount Amount false none none
»»»» type CreditLineType false none none
»»» dateTime string false none none
»»» type AccountBalanceType false none none
»» mainBalanceAmount Amount false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
with query string false Can be categories or merchants. When set, will include enrichment data in the transactions returned.
from query string false Optional. Returned transactions will be after this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
before query string false Optional. Returned transactions will be before this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
limit query string false Optional. The maximum number of transaction records to be returned. Must be between 0 and 1000
sort query string false Optional. Sort transaction records by date ascending with date or descending with -date. The default sort order is descending.
offset query string false Optional. The number of transaction records to be skipped. Used primarily with paginated results
cursor query string false Optional. This property is not currently in use.
raw query boolean false 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": {
          "category": {}
        },
        "transactionHash": {
          "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
        }
      },
      "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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [Transaction] false none none
»» addressDetails AddressDetails false none none
»»» addressLine string false none none
»» amount integer(decimal) false none none
»» balance Balance false none none
»»» balanceAmount Amount false none none
»»»» amount integer(float) false none none
»»»» currency string false none none
»»» type AccountBalanceType false none none
»» bookingDateTime string false none none
»» chargeDetails ChargeDetails false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» currency string false none none
»» currencyExchange CurrencyExchange false none none
»»» exchangeRate integer false none none
»»» sourceCurrency string false none none
»»» targetCurrency string false none none
»»» unitCurrency string false none none
»» date string false none none
»» description string false none none
»» enrichment Enrichment false none none
»»» categorisation Categorisation false none none
»»»» category Category false none none
»»»»» id string false none none
»»»»» label string false none none
»»» transactionHash TransactionHash false none none
»»»» hash string false none none
»» id string false none none
»» isoBankTransactionCode IsoBankTransactionCode false none none
»»» domainCode IsoCodeDetails false none none
»»»» code string false none none
»»»» name string false none none
»»» familyCode IsoCodeDetails false none none
»»» subFamilyCode IsoCodeDetails false none none
»» merchant Merchant false none none
»»» merchantCategoryCode string false none none
»»» merchantName string false none none
»» proprietaryBankTransactionCode ProprietaryBankTransactionCode false none none
»»» code string false none none
»»» issuer string false none none
»» reference string false none none
»» statementReferences [StatementReference] false none none
»»» value string false none none
»» status TransactionStatusEnum false none none
»» supplementaryData Map false none none
»»» name string false none none
»»» value string false none none
»» transactionAmount Amount false none none
»» transactionInformation [string] false none none
»» valueDateTime string false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
from query string false Optional. Returned statements will be after this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
before query string false Optional. Returned statements will be before this date. (yyyy-MM-dd'T'HH:mm:ss.SSSZ)
limit query string false Optional. The maximum number of statements records to be returned. Must be between 0 and 1000
sort query string false Optional. Sort statements records by date ascending with date or descending with -date. The default sort order is descending.
offset query string false Optional. The number of statements records to be skipped. Used primarily with paginated results
raw query boolean false 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 Required Restrictions Description
» meta ResponseListMeta false none An object containing a tracingId of the request
»» count integer false none none
»» pagination Pagination false none An object containing pagination information in ResponseListMeta
»»» next Next false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»» self FilterAndSort false none An object for filter and sort information
»»»» before string false none none
»»»» cursor string false none none
»»»» from string false none none
»»»» limit integer false none none
»»»» offset integer false none none
»»»» sort SortEnum false none Valid options for the sort parameter
»»» totalCount integer false none none
»» tracingId string false none none
» data [AccountStatement] false none none
»» creationDateTime string false none none
»» endDateTime string false none none
»» id string false none none
»» startDateTime string false none 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 Required Description
account-id path string true The ID of the Account
statement-id path string true The ID of the Statement
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data AccountStatement false none none
»» creationDateTime string false none none
»» endDateTime string false none none
»» id string false none none
»» startDateTime string false none 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 Required Description
account-id path string true The ID of the Account
statement-id path string true The ID of the Statement
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Description
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data Identity false none none
»» addresses [IdentityAddress] false none none
»»» addressLine [string] false none none
»»» buildingNumber string false none none
»»» city string false none none
»»» country string false none none
»»» county string false none none
»»» postalCode string false none none
»»» streetName string false none none
»»» type AddressTypeEnum false none none
»» birthdate string false none none
»» email string false none none
»» firstName string false none none
»» fullName string false none none
»» gender string false none none
»» id string false none none
»» lastName string false none none
»» phone string false none 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 Required Description
consent header string true The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body PaymentRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data PaymentResponse false none none
»» amount integer(decimal) false none none
»» amountDetails Amount false none none
»»» amount integer(float) false none none
»»» currency string false none none
»» bulkAmountSum integer(decimal) false none none
»» chargeDetails [ChargeDetails] false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» createdAt string false none none
»» currency string false none none
»» currencyOfTransfer string false none none
»» exchangeRate ExchangeRateInformationResponse false none none
»»» exchangeRateExpiryDate string false none none
»» finalPaymentAmount Amount false none none
»» finalPaymentDateTime string false none none
»» firstPaymentAmount Amount false none none
»» firstPaymentDateTime string false none none
»» frequency FrequencyRequest false none none
»»» executionDay integer false none none
»»» intervalMonth integer false none none
»»» intervalWeek integer false none none
»»» type FrequencyEnumExtended false none none
»» id string false none none
»» institutionConsentId string false none none
»» nextPaymentAmount Amount false none none
»» nextPaymentDateTime string false none none
»» numberOfPayments integer false none none
»» payeeDetails Payee false none none
»»» accountIdentifications [AccountIdentification] false none none
»»»» identification string false none none
»»»» type AccountIdentificationType false none none
»»» address Address false none none
»»»» addressLine [string] false none none
»»»» addressType AddressTypeEnum false none none
»»»» buildingNumber string false none none
»»»» country string false none none
»»»» county [string] false none none
»»»» department string false none none
»»»» postCode string false none none
»»»» streetName string false none none
»»»» subDepartment string false none none
»»»» townName string false none none
»»» merchantCategoryCode string false none none
»»» merchantId string false none none
»»» name string false none none
»» payer Payer false none none
»»» accountIdentifications [AccountIdentification] false none none
»»» address Address false none none
»»» name string false none none
»» paymentIdempotencyId string false none none
»» paymentLifecycleId string false none none
»» previousPaymentAmount Amount false none none
»» previousPaymentDateTime string false none none
»» priority string false none none
»» purpose string false none none
»» reference string false none none
»» scheduledPaymentDateTime string false none none
»» scheduledPaymentType string false none none
»» status PaymentStatus false none none
»» statusDetails PaymentStatusDetails false none none
»»» status PaymentStatus false none none
»»» statusReason string false none none
»»» statusReasonDescription string false none none
»»» statusUpdateDate string false none none
»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»» status string false none none
»»»» numberOfAuthorisationRequired integer false none none
»»»» numberOfAuthorisationReceived integer false none none
»»»» lastUpdatedDateTime string false none none
»»»» expirationDateTime string false none 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 Required Description
consent header string true The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false Raw parameter available for debugging purposes
body body BulkPaymentRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data PaymentResponse false none none
»» amount integer(decimal) false none none
»» amountDetails Amount false none none
»»» amount integer(float) false none none
»»» currency string false none none
»» bulkAmountSum integer(decimal) false none none
»» chargeDetails [ChargeDetails] false none none
»»» chargeAmount Amount false none none
»»» chargeTo string false none none
»»» chargeType string false none none
»» createdAt string false none none
»» currency string false none none
»» currencyOfTransfer string false none none
»» exchangeRate ExchangeRateInformationResponse false none none
»»» exchangeRateExpiryDate string false none none
»» finalPaymentAmount Amount false none none
»» finalPaymentDateTime string false none none
»» firstPaymentAmount Amount false none none
»» firstPaymentDateTime string false none none
»» frequency FrequencyRequest false none none
»»» executionDay integer false none none
»»» intervalMonth integer false none none
»»» intervalWeek integer false none none
»»» type FrequencyEnumExtended false none none
»» id string false none none
»» institutionConsentId string false none none
»» nextPaymentAmount Amount false none none
»» nextPaymentDateTime string false none none
»» numberOfPayments integer false none none
»» payeeDetails Payee false none none
»»» accountIdentifications [AccountIdentification] false none none
»»»» identification string false none none
»»»» type AccountIdentificationType false none none
»»» address Address false none none
»»»» addressLine [string] false none none
»»»» addressType AddressTypeEnum false none none
»»»» buildingNumber string false none none
»»»» country string false none none
»»»» county [string] false none none
»»»» department string false none none
»»»» postCode string false none none
»»»» streetName string false none none
»»»» subDepartment string false none none
»»»» townName string false none none
»»» merchantCategoryCode string false none none
»»» merchantId string false none none
»»» name string false none none
»» payer Payer false none none
»»» accountIdentifications [AccountIdentification] false none none
»»» address Address false none none
»»» name string false none none
»» paymentIdempotencyId string false none none
»» paymentLifecycleId string false none none
»» previousPaymentAmount Amount false none none
»» previousPaymentDateTime string false none none
»» priority string false none none
»» purpose string false none none
»» reference string false none none
»» scheduledPaymentDateTime string false none none
»» scheduledPaymentType string false none none
»» status PaymentStatus false none none
»» statusDetails PaymentStatusDetails false none none
»»» status PaymentStatus false none none
»»» statusReason string false none none
»»» statusReasonDescription string false none none
»»» statusUpdateDate string false none none
»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»» status string false none none
»»»» numberOfAuthorisationRequired integer false none none
»»»» numberOfAuthorisationReceived integer false none none
»»»» lastUpdatedDateTime string false none none
»»»» expirationDateTime string false none 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 Required Description
payment-id path string true The ID of the Payment
consent header string true The Consent-Token obtained from the original authorisation.
psu-id header string false Conditional. Represents the user's login ID for the Institution to a personal account.
psu-corporate-id header string false Conditional. Represents the user's login ID for the Institution to a business account.
psu-ip-address header string false Conditional. The IP address of the PSU.
raw query boolean false 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data PaymentResponses false none none
»» payments [PaymentResponse] false none none
»»» amount integer(decimal) false none none
»»» amountDetails Amount false none none
»»»» amount integer(float) false none none
»»»» currency string false none none
»»» bulkAmountSum integer(decimal) false none none
»»» chargeDetails [ChargeDetails] false none none
»»»» chargeAmount Amount false none none
»»»» chargeTo string false none none
»»»» chargeType string false none none
»»» createdAt string false none none
»»» currency string false none none
»»» currencyOfTransfer string false none none
»»» exchangeRate ExchangeRateInformationResponse false none none
»»»» exchangeRateExpiryDate string false none none
»»» finalPaymentAmount Amount false none none
»»» finalPaymentDateTime string false none none
»»» firstPaymentAmount Amount false none none
»»» firstPaymentDateTime string false none none
»»» frequency FrequencyRequest false none none
»»»» executionDay integer false none none
»»»» intervalMonth integer false none none
»»»» intervalWeek integer false none none
»»»» type FrequencyEnumExtended false none none
»»» id string false none none
»»» institutionConsentId string false none none
»»» nextPaymentAmount Amount false none none
»»» nextPaymentDateTime string false none none
»»» numberOfPayments integer false none none
»»» payeeDetails Payee false none none
»»»» accountIdentifications [AccountIdentification] false none none
»»»»» identification string false none none
»»»»» type AccountIdentificationType false none none
»»»» address Address false none none
»»»»» addressLine [string] false none none
»»»»» addressType AddressTypeEnum false none none
»»»»» buildingNumber string false none none
»»»»» country string false none none
»»»»» county [string] false none none
»»»»» department string false none none
»»»»» postCode string false none none
»»»»» streetName string false none none
»»»»» subDepartment string false none none
»»»»» townName string false none none
»»»» merchantCategoryCode string false none none
»»»» merchantId string false none none
»»»» name string false none none
»»» payer Payer false none none
»»»» accountIdentifications [AccountIdentification] false none none
»»»» address Address false none none
»»»» name string false none none
»»» paymentIdempotencyId string false none none
»»» paymentLifecycleId string false none none
»»» previousPaymentAmount Amount false none none
»»» previousPaymentDateTime string false none none
»»» priority string false none none
»»» purpose string false none none
»»» reference string false none none
»»» scheduledPaymentDateTime string false none none
»»» scheduledPaymentType string false none none
»»» status PaymentStatus false none none
»»» statusDetails PaymentStatusDetails false none none
»»»» status PaymentStatus false none none
»»»» statusReason string false none none
»»»» statusReasonDescription string false none none
»»»» statusUpdateDate string false none none
»»»» multiAuthorisationStatus MultiAuthorisation false none none
»»»»» status string false none none
»»»»» numberOfAuthorisationRequired integer false none none
»»»»» numberOfAuthorisationReceived integer false none none
»»»»» lastUpdatedDateTime string false none none
»»»»» expirationDateTime string false none 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 Required Description
account-id path string true The ID of the Account
consent header string true The Consent-Token obtained from the original authorisation.
raw query boolean false Raw parameter available for debugging purposes
body body TransferRequest true 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 Required Restrictions Description
» meta ResponseMeta false none An object containing a tracingId of the request
»» tracingId string false none none
» data TransferResponse false none none
»» balance integer(decimal) false none none
»» createdAt string false none none
»» currency string false none none
»» fromAccountId string false none none
»» reference string false none none
»» status Status false none none
»» toAccountId string false none 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 Required Restrictions Description
accessToken string false none none
authorisedAt string false none none
expiresIn integer false none none
refreshToken string false none none
scope string false none none
tokenType string false none 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 Required Restrictions Description
accountBalances [AccountBalance] false none none
accountIdentifications [AccountIdentification] false none none
accountNames [AccountName] false none none
accountType AccountType false none none
balance integer(decimal) false none none
currency string false none none
description string false none none
details string false none none
id string false none none
nickname string false none none
type string false none none
usageType UsageType false none 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 Required Restrictions Description
anonymous AuthorisationRequest false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» accountRequest AccountRequest false none 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 Required Restrictions Description
balanceAmount Amount false none none
creditLineIncluded boolean false none none
creditLines [CreditLine] false none none
dateTime string false none none
type AccountBalanceType false none none

AccountBalanceType

"CLOSING_AVAILABLE"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

AccountIdentification

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

Properties

Name Type Required Restrictions Description
identification string false none none
type AccountIdentificationType false none none

AccountIdentificationType

"SORT_CODE"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

AccountInfo

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

Properties

Name Type Required Restrictions Description
accountId string false none none
accountIdentification AccountIdentification false none none

AccountName

{
  "name": "name"
}

Properties

Name Type Required Restrictions Description
name string false none 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 Required Restrictions Description
accountIdentifiers AccountInfo false none none
accountIdentifiersForBalance [AccountInfo] false none none
accountIdentifiersForTransaction [AccountInfo] false none none
expiresAt string false none none
featureScope [string] false none none
psuCorporateId string false none none
psuId string false none none
transactionsFrom string false none none
transactionsTo string false none none

AccountStatement

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

Properties

Name Type Required Restrictions Description
creationDateTime string false none none
endDateTime string false none none
id string false none none
startDateTime string false none none

AccountType

"CASH_TRADING"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous CASH_TRADING
anonymous CASH_INCOME
anonymous CASH_PAYMENT
anonymous CHARGE_CARD
anonymous CHARGES
anonymous COMMISSION
anonymous CREDIT_CARD
anonymous CURRENT
anonymous E_MONEY
anonymous LIMITED_LIQUIDITY_SAVINGS_ACCOUNT
anonymous LOAN
anonymous MARGINAL_LENDING
anonymous MONEY_MARKET
anonymous MORTGAGE
anonymous NON_RESIDENT_EXTERNAL
anonymous OTHER
anonymous OVERDRAFT
anonymous OVERNIGHT_DEPOSIT
anonymous PREPAID_CARD
anonymous SALARY
anonymous SAVINGS
anonymous SETTLEMENT
anonymous TAX
anonymous 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 Required Restrictions Description
addressLine [string] false none none
addressType AddressTypeEnum false none none
buildingNumber string false none none
country string false none none
county [string] false none none
department string false none none
postCode string false none none
streetName string false none none
subDepartment string false none none
townName string false none none

AddressDetails

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

Properties

Name Type Required Restrictions Description
addressLine string false none none

AddressTypeEnum

"BUSINESS"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

Amount

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

Properties

Name Type Required Restrictions Description
amount integer(float) false none none
currency string false none none

AmountFrequency

"DAILY"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous DAILY
anonymous WEEKLY
anonymous MONTHLY
anonymous 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 Required Restrictions Description
code integer false none none
institutionError InstitutionError false none none
message string false none none
source string false none none
status HttpStatus false none none
tracingId string false none 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 Required Restrictions Description
data string false none An array of objects, depending on the endpoint
links [Map] false none none
meta ResponseListMeta false none An object containing a tracingId of the request
raw [RawResponse] false none [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 Required Restrictions Description
data string false none An object, depending on the endpoint
links [Map] false none none
meta ResponseMeta false none An object containing a tracingId of the request
raw [RawResponse] false none [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 Required Restrictions Description
error ApiError false none none
monitoring [MonitoringEndpointStatus] false none none
raw [RawResponse] false none [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 Required Restrictions Description
active boolean false none none
authCallbacks [string] false none none
created string false none none
institutions [Institution] false none none
media [Media] false none none
name string false none none
updated string false none none
uuid string false none none

ApplicationCallback

{
  "authCallbackURL": "authCallbackURL"
}

Properties

Name Type Required Restrictions Description
authCallbackURL string false none 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 Required Restrictions Description
applicationUserId string false none none
callback string false none Max length 4096.
forwardParameters [string] false none none
institutionId string false none none
oneTimeToken boolean false none none
userUuid string false none 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 Required Restrictions Description
anonymous Consent false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» authorisationUrl string false none none
» qrCodeUrl string false none none

AuthorisationStatus

"AWAITING_AUTHORIZATION"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

Balance

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

Properties

Name Type Required Restrictions Description
balanceAmount Amount false none none
type AccountBalanceType false none 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 Required Restrictions Description
balances [AccountBalance] false none none
mainBalanceAmount Amount false none 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 Required Restrictions Description
anonymous AuthorisationRequest false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» applicationUserId string false none none
» callback string false none Max Length 4096.
» forwardParameters [string] false none none
» institutionId string false none none
» oneTimeToken boolean false none none
» paymentRequest BulkPaymentRequest false none none
» userUuid string false none 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 Required Restrictions Description
executionDateTime string false none none
originatorIdentificationNumber string false none none
payments [PaymentRequest] false none none

BulkUserDelete

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

Properties

Name Type Required Restrictions Description
id string false none none
links [Map] false none none
startedAt string false none none
status DeleteTaskStatus false none 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 Required Restrictions Description
invalidApplicationUserIds [string] false none none
invalidUserUuids [string] false none none
users [UserDeleteResponse] false none [An object returned from a successful user delete request]

Categorisation

{
  "category": {
    "id": "",
    "label": ""
  }
}

Properties

Name Type Required Restrictions Description
category Category false none none

Category

{
  "id": "",
  "label": ""
}

Properties

Name Type Required Restrictions Description
id string false none none
label string false none none

ChargeDetails

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

Properties

Name Type Required Restrictions Description
chargeAmount Amount false none none
chargeTo string false none none
chargeType string false none 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 Required Restrictions Description
applicationUserId string false none none
authorizedAt string false none none
consentToken string false none none
createdAt string false none none
expiresAt string false none none
featureScope [FeatureEnum] false none none
id string false none none
institutionId string false none none
referenceId string false none none
state string false none none
status AuthorisationStatus false none none
timeToExpire string false none none
transactionFrom string false none none
transactionTo string false none none
userUuid string false none none

ConsentAuthCodeRequest

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

Properties

Name Type Required Restrictions Description
authCode string true none none
authState string true none 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 Required Restrictions Description
creationDate string false none none
deleteStatus DeleteStatusEnum false none none
id string false none none
institutionConsentId string false none none
institutionId string false none none

ConsentRedirectRequest

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

Properties

Name Type Required Restrictions Description
code string false none none
error string false none none
state string false none none
twofoldRedirect boolean false none none

Country

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

Properties

Name Type Required Restrictions Description
countryCode2 string false none none
displayName string false none none

CreateConsentAccessToken

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

Properties

Name Type Required Restrictions Description
accessToken string true none none
institutionId string true none none
refreshToken string false none none
scope string false none none

CredentialsType

"OAUTH1"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

CreditLine

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

Properties

Name Type Required Restrictions Description
creditLineAmount Amount false none none
type CreditLineType false none none

CreditLineType

"AVAILABLE"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous AVAILABLE
anonymous CREDIT
anonymous EMERGENCY
anonymous PRE_AGREED
anonymous TEMPORARY
anonymous OTHER
anonymous UNKNOWN

CurrencyExchange

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

Properties

Name Type Required Restrictions Description
exchangeRate integer false none none
sourceCurrency string false none none
targetCurrency string false none none
unitCurrency string false none none

DeleteStatusEnum

"SUCCESS"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SUCCESS
anonymous FAILED

DeleteTaskStatus

"IN_PROGRESS"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous IN_PROGRESS
anonymous COMPLETED
anonymous FAILED

DeregistrationResult

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

Properties

Name Type Required Restrictions Description
applicationId string false none none
institutionId string false none none

Enrichment

{
  "categorisation": {
    "category": {
      "id": "",
      "label": ""
    }
  },
  "transactionHash": {
    "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
  }
}

Properties

Name Type Required Restrictions Description
categorisation Categorisation false none none
transactionHash TransactionHash false none none

EnvironmentType

"SANDBOX"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SANDBOX
anonymous MOCK
anonymous LIVE

ExchangeRateInformationResponse

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

Properties

Name Type Required Restrictions Description
exchangeRateExpiryDate string false none 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 Required Restrictions Description
documentationUrl string false none none
endpoint string false none none
feature FeatureEnum false none none

FeatureEnum

"INITIATE_PRE_AUTHORISATION"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

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

FeatureStatusEnum

"UP"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous UP
anonymous DOWN
anonymous WARNING
anonymous UNKNOWN
anonymous EXPIRED

FilterAndSort

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

An object for filter and sort information

Properties

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

FrequencyEnumExtended

"DAILY"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous DAILY
anonymous EVERY_WORKING_DAY
anonymous CALENDAR_DAY
anonymous WEEKLY
anonymous EVERY_TWO_WEEKS
anonymous MONTHLY
anonymous EVERY_TWO_MONTHS
anonymous QUARTERLY
anonymous SEMIANNUAL
anonymous ANNUAL

FrequencyRequest

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

Properties

Name Type Required Restrictions Description
executionDay integer false none none
intervalMonth integer false none none
intervalWeek integer false none none
type FrequencyEnumExtended false none none

HttpStatus

"BAD_REQUEST"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous BAD_REQUEST
anonymous UNAUTHORIZED
anonymous PAYMENT_REQUIRED
anonymous FORBIDDEN
anonymous NOT_FOUND
anonymous METHOD_NOT_ALLOWED
anonymous NOT_ACCEPTABLE
anonymous PROXY_AUTHENTICATION_REQUIRED
anonymous REQUEST_TIMEOUT
anonymous CONFLICT
anonymous GONE
anonymous LENGTH_REQUIRED
anonymous PRECONDITION_FAILED
anonymous PAYLOAD_TOO_LARGE
anonymous URI_TOO_LONG
anonymous UNSUPPORTED_MEDIA_TYPE
anonymous REQUESTED_RANGE_NOT_SATISFIABLE
anonymous EXPECTATION_FAILED
anonymous I_AM_A_TEAPOT
anonymous INSUFFICIENT_SPACE_ON_RESOURCE
anonymous METHOD_FAILURE
anonymous DESTINATION_LOCKED
anonymous UNPROCESSABLE_ENTITY
anonymous LOCKED
anonymous FAILED_DEPENDENCY
anonymous UPGRADE_REQUIRED
anonymous PRECONDITION_REQUIRED
anonymous TOO_MANY_REQUESTS
anonymous REQUEST_HEADER_FIELDS_TOO_LARGE
anonymous UNAVAILABLE_FOR_LEGAL_REASONS
anonymous INTERNAL_SERVER_ERROR
anonymous NOT_IMPLEMENTED
anonymous BAD_GATEWAY
anonymous SERVICE_UNAVAILABLE
anonymous GATEWAY_TIMEOUT
anonymous HTTP_VERSION_NOT_SUPPORTED
anonymous VARIANT_ALSO_NEGOTIATES
anonymous INSUFFICIENT_STORAGE
anonymous LOOP_DETECTED
anonymous BANDWIDTH_LIMIT_EXCEEDED
anonymous NOT_EXTENDED
anonymous 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 Required Restrictions Description
addresses [IdentityAddress] false none none
birthdate string false none none
email string false none none
firstName string false none none
fullName string false none none
gender string false none none
id string false none none
lastName string false none none
phone string false none none

IdentityAddress

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

Properties

Name Type Required Restrictions Description
addressLine [string] false none none
buildingNumber string false none none
city string false none none
country string false none none
county string false none none
postalCode string false none none
streetName string false none none
type AddressTypeEnum false none 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 Required Restrictions Description
countries [Country] false none none
credentialsType CredentialsType false none none
environmentType EnvironmentType false none none
features [FeatureEnum] false none none
fullName string false none none
id string false none none
media [Media] false none none
name string false none none

InstitutionConsent

{
  "institutionId": "yapily-mock"
}

Properties

Name Type Required Restrictions Description
institutionId string false none 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 Required Restrictions Description
errorMessage string false none none
httpStatusCode integer false none none

InstitutionTypeEnum

"SANDBOX"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SANDBOX
anonymous MOCK
anonymous LIVE

InternationalPaymentRequest

{
  "id": "277ca9eb968948d4b5f8bfa4b6b6b16f"
}

Properties

Name Type Required Restrictions Description
id string false none none

IsoBankTransactionCode

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

Properties

Name Type Required Restrictions Description
domainCode IsoCodeDetails false none none
familyCode IsoCodeDetails false none none
subFamilyCode IsoCodeDetails false none none

IsoCodeDetails

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

Properties

Name Type Required Restrictions Description
code string false none none
name string false none none

Map

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

Properties

Name Type Required Restrictions Description
name string false none none
value string false none none

Media

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

Properties

Name Type Required Restrictions Description
source string false none none
type string false none none

Merchant

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

Properties

Name Type Required Restrictions Description
merchantCategoryCode string false none none
merchantName string false none none

MonitoringEndpointStatus

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

Properties

Name Type Required Restrictions Description
lastTested string false none none
resourceEndpoint string false none none
span string false none none
status FeatureStatusEnum false none none

NewApplicationUser

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

Properties

Name Type Required Restrictions Description
applicationUserId string false none none
referenceId string false none none

Next

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

An object for filter and sort information

Properties

Name Type Required Restrictions Description
before string false none none
cursor string false none none
from string false none none
limit integer false none none

OneTimeTokenRequest

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

Properties

Name Type Required Restrictions Description
oneTimeToken string false none 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 Required Restrictions Description
next Next false none An object for filter and sort information
self FilterAndSort false none An object for filter and sort information
totalCount integer false none 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 Required Restrictions Description
accountIdentifications [AccountIdentification] false none none
address Address false none none
merchantCategoryCode string false none none
merchantId string false none none
name string false none 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 Required Restrictions Description
accountIdentifications [AccountIdentification] false none none
address Address false none none
name string false none 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 Required Restrictions Description
anonymous AuthorisationRequest false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» allowOverdraft boolean false none none
» expiresAt string false none none
» maxAmountPerRequest integer(decimal) false none none
» paymentRequest PaymentRequest false none none
» startsAt string false none none
» totalMaxAmount integer(decimal) false none none
» totalMaxAmountFrequency AmountFrequency false none 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 Required Restrictions Description
anonymous Consent false none none

and

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

PaymentContextType

"BILL"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous BILL
anonymous GOODS
anonymous SERVICES
anonymous OTHER
anonymous 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 Required Restrictions Description
amount Amount false none none
contextType PaymentContextType false none none
internationalPayment InternationalPaymentRequest false none none
payee Payee false none none
payer Payer false none none
paymentDateTime string false none none
paymentIdempotencyId string false none none
periodicPayment PeriodicPaymentRequest false none none
psuCorporateId string false none none
psuId string false none none
readRefundAccount boolean false none none
reference string false none none
type PaymentType false none 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 Required Restrictions Description
amount integer(decimal) false none none
amountDetails Amount false none none
bulkAmountSum integer(decimal) false none none
chargeDetails [ChargeDetails] false none none
createdAt string false none none
currency string false none none
currencyOfTransfer string false none none
exchangeRate ExchangeRateInformationResponse false none none
finalPaymentAmount Amount false none none
finalPaymentDateTime string false none none
firstPaymentAmount Amount false none none
firstPaymentDateTime string false none none
frequency FrequencyRequest false none none
id string false none none
institutionConsentId string false none none
nextPaymentAmount Amount false none none
nextPaymentDateTime string false none none
numberOfPayments integer false none none
payeeDetails Payee false none none
payer Payer false none none
paymentIdempotencyId string false none none
paymentLifecycleId string false none none
previousPaymentAmount Amount false none none
previousPaymentDateTime string false none none
priority string false none none
purpose string false none none
reference string false none none
scheduledPaymentDateTime string false none none
scheduledPaymentType string false none none
status PaymentStatus false none none
statusDetails PaymentStatusDetails false none 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 Required Restrictions Description
payments [PaymentResponse] false none none

PaymentStatus

"PENDING"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PENDING
anonymous FAILED
anonymous DECLINED
anonymous COMPLETED
anonymous COMPLETED_SETTLEMENT_IN_PROCESS
anonymous EXPIRED
anonymous UNKNOWN
anonymous ACTIVE
anonymous INACTIVE

PaymentStatusDetails

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

Properties

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

MultiAuthorisation

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

Properties

Name Type Required Restrictions Description
status string false none none
numberOfAuthorisationRequired integer false none none
numberOfAuthorisationReceived integer false none none
lastUpdatedDateTime string false none none
expirationDateTime string false none none

PaymentType

"DOMESTIC_PAYMENT"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous DOMESTIC_PAYMENT
anonymous DOMESTIC_INSTANT_PAYMENT
anonymous DOMESTIC_VARIABLE_RECURRING_PAYMENT
anonymous DOMESTIC_SCHEDULED_PAYMENT
anonymous DOMESTIC_PERIODIC_PAYMENT
anonymous INTERNATIONAL_PAYMENT
anonymous INTERNATIONAL_SCHEDULED_PAYMENT
anonymous INTERNATIONAL_PERIODIC_PAYMENT
anonymous 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 Required Restrictions Description
finalPaymentAmount Amount false none none
finalPaymentDateTime string false none none
frequency FrequencyRequest false none none
nextPaymentAmount Amount false none none
nextPaymentDateTime string false none none
numberOfPayments integer false none 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 Required Restrictions Description
anonymous AuthorisationRequest false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» scope PreAuthScope true none none

PreAuthScope

"AIS"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous AIS
anonymous PIS

ProprietaryBankTransactionCode

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

Properties

Name Type Required Restrictions Description
code string false none none
issuer string false none none

RawRequest

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

Properties

Name Type Required Restrictions Description
method string false none none
requestInstant string false none none
templateUri string false none none
url string false none 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 Required Restrictions Description
duration string false none none
headers [Map] false none none
request RawRequest false none none
result string false none none
resultCode integer false none 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 Required Restrictions Description
authorisationUrl string false none none
charges [ChargeDetails] false none none
exchangeRateInformation ExchangeRateInformationResponse false none none
qrCodeUrl string false none none

RegistrationRequest

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

Properties

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

RegistrationResult

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

Properties

Name Type Required Restrictions Description
applicationId string false none none
clientId string false none none
clientName string false none none
clientSecret string false none none
clientUri string false none none
institutionId string false none none
registrationResponse string false none none
signingCertificateId string false none none
signingKeyId string false none none
signingKeyStore string false none none
softwareId string false none none
ssaJwt string false none none
termsOfServiceUri string false none none
tppId string false none none
transportCertificateId string false none none
transportKeyId string false none none
transportKeyStore string false none 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 Required Restrictions Description
count integer false none none
pagination Pagination false none An object containing pagination information in ResponseListMeta
tracingId string false none none

ResponseMeta

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

An object containing a tracingId of the request

Properties

Name Type Required Restrictions Description
tracingId string false none none

SSAResult

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

Properties

Name Type Required Restrictions Description
applicationId string false none none
institutionId string false none none
ssaJwt string false none 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 Required Restrictions Description
anonymous AuthorisationRequest false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» paymentRequest SortCodePaymentRequest false none none

SortCodePaymentRequest

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

Properties

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

SortEnum

"DATE_ASCENDING(\"date\")"

Valid options for the sort parameter

Properties

Name Type Required Restrictions Description
anonymous string false none Valid options for the sort parameter

Enumerated Values

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

StatementReference

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

Properties

Name Type Required Restrictions Description
value string false none none

Status

"PENDING"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PENDING
anonymous FAILED
anonymous DECLINED
anonymous COMPLETED
anonymous 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": {
      "category": {
        "id": "",
        "label": ""
      }
    },
    "transactionHash": {
      "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
    }
  },
  "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 Required Restrictions Description
addressDetails AddressDetails false none none
amount integer(decimal) false none none
balance Balance false none none
bookingDateTime string false none none
chargeDetails ChargeDetails false none none
currency string false none none
currencyExchange CurrencyExchange false none none
date string false none none
description string false none none
enrichment Enrichment false none none
id string false none none
isoBankTransactionCode IsoBankTransactionCode false none none
merchant Merchant false none none
proprietaryBankTransactionCode ProprietaryBankTransactionCode false none none
reference string false none none
statementReferences [StatementReference] false none none
status TransactionStatusEnum false none none
supplementaryData Map false none none
transactionAmount Amount false none none
transactionInformation [string] false none none
valueDateTime string false none none

TransactionHash

{
  "hash": "b0781fd71caa48c75039ec01c0ffb011.1"
}

Properties

Name Type Required Restrictions Description
hash string false none none

TransactionStatusEnum

"BOOKED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous BOOKED
anonymous PENDING

TransferRequest

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

Properties

Name Type Required Restrictions Description
accountId string false none none
amount integer(decimal) false none none
currency string false none none
reference string false none none
transferReferenceId string false none 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 Required Restrictions Description
balance integer(decimal) false none none
createdAt string false none none
currency string false none none
fromAccountId string false none none
reference string false none none
status Status false none none
toAccountId string false none none

UsageType

"PERSONAL"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PERSONAL
anonymous BUSINESS
anonymous OTHER
anonymous 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 Required Restrictions Description
applicationUserId string false none none
applicationUuid string false none none
institutionConsents [InstitutionConsent] false none none
referenceId string false none none
uuid string false none none

UserDeleteRequest

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

Properties

Name Type Required Restrictions Description
applicationUserIds [string] false none none
userUuids [string] false none 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 Required Restrictions Description
creationDate string false none none
deleteStatus DeleteStatusEnum false none none
id string false none none
userConsents [ConsentDeleteResponse] false none [An object returned from a UserDeleteResponse]