From f19e7eeeec820914bb0586ce17b31e6eaf7422be Mon Sep 17 00:00:00 2001 From: eddiechayes Date: Fri, 29 Mar 2024 10:53:46 -0700 Subject: [PATCH] pseo: add nuapay --- .../from-custom-request_nuapay.com.yaml | 651 +++ sdks/db/category-cache.yaml | 1 + sdks/db/custom-request-last-fetched.yaml | 1 + sdks/db/custom-request-specs/nuapay.com.yaml | 3552 ++++++++++++++++ .../fixed-specs-cache/nuapay-fixed-spec.yaml | 3607 +++++++++++++++++ sdks/db/fixed-specs/nuapay-fixed-spec.yaml | 3554 ++++++++++++++++ .../nuapay.json | 3 + .../nuapay/openapi.yaml | 3552 ++++++++++++++++ .../nuapay.com.yaml | 46 + sdks/db/progress/nuapay-progress.yaml | 89 + .../from-custom-request_nuapay.com.json | 1054 +++++ .../from-custom-request_nuapay.com.json | 57 + sdks/publish.yaml | 53 + sdks/src/collect-from-custom-requests.ts | 4 + 14 files changed, 16224 insertions(+) create mode 100644 sdks/db/cached-method-objects/from-custom-request_nuapay.com.yaml create mode 100644 sdks/db/custom-request-specs/nuapay.com.yaml create mode 100644 sdks/db/fixed-specs-cache/nuapay-fixed-spec.yaml create mode 100644 sdks/db/fixed-specs/nuapay-fixed-spec.yaml create mode 100644 sdks/db/generate-repository-description-cache/nuapay.json create mode 100644 sdks/db/intermediate-fixed-specs/nuapay/openapi.yaml create mode 100644 sdks/db/processed-custom-request-cache/nuapay.com.yaml create mode 100644 sdks/db/progress/nuapay-progress.yaml create mode 100644 sdks/db/published/from-custom-request_nuapay.com.json create mode 100644 sdks/db/spec-data/from-custom-request_nuapay.com.json diff --git a/sdks/db/cached-method-objects/from-custom-request_nuapay.com.yaml b/sdks/db/cached-method-objects/from-custom-request_nuapay.com.yaml new file mode 100644 index 0000000000..9231b29262 --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_nuapay.com.yaml @@ -0,0 +1,651 @@ +hash: f65f065ede93065885a7b61da882de7a9caf2f0e588bfb1bc23c1850dbc02fe4 +methodObjects: + - url: /bankfamilies + method: viewBankFamilies + httpMethod: get + tag: Bank Service + typeScriptTag: bankService + description: View Bank Families + parameters: + - name: pagenumber + schema: integer + required: false + description: Page number + default: 1 + - name: pagesize + schema: integer + required: false + description: Page size + default: 20 + - name: supportedcurrencies + schema: array + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /bankfamilies/{bankfamilyId} + method: getBankFamily + httpMethod: get + tag: Bank Service + typeScriptTag: bankService + description: View Bank Family + parameters: + - name: bankfamilyId + schema: string + required: true + description: Bank Family id returned by Get Bank Families endpoint. + example: BANKFAMILYID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /banks + method: getSupportedBanks + httpMethod: get + tag: Bank Service + typeScriptTag: bankService + description: Retrieve Banks + parameters: + - name: country + schema: array + required: false + description: >- + CountryCode - ISO country code - indicates where bank is domiciled + (ISO 3166 Alpha-2) + - name: debtoraccountrequired + schema: boolean + required: false + description: >- + Allows to filter the banks that requires debtor account to be provided + when initiating payment. + - name: pagenumber + schema: integer + required: false + description: Page number + default: 1 + - name: pagesize + schema: integer + required: false + description: Page size + default: 20 + - name: supportedcurrencies + schema: array + required: false + description: '' + - name: bankfamilyid + schema: string + required: false + description: Allows filtering by Bank Family via the Bank Family Id. + - name: excludebankfamily + schema: boolean + required: false + description: Allows filtering by Banks without an associated Bank Family. + - name: services + schema: array + required: false + description: >- + Filter the bank list by service provided returns both AISPs and PISPs, + 'AISP' returns only AISPs and 'PISP' returns only PISPs. When not + provided returns all banks regardless of service. + - name: sepainstantreachability + schema: boolean + required: false + description: >- + Filter the bank list by payment method. When not provided or false, + returns the full list of banks. When true, the only banks that + supports SEPA Instant Payments are returned. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /payments + method: listPayments + httpMethod: get + tag: PISP Service + typeScriptTag: pispService + description: List payments + parameters: + - name: fromdatetime + schema: string + required: false + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date is + provided returns results for the last 30 days. + - name: todatetime + schema: string + required: false + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date is + provided returns results for the last 30 days. + - name: fromamount + schema: number + required: false + description: >- + When provided only payments with amount equal or higher than provided + amount will be returned + - name: toamount + schema: number + required: false + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + - name: userinterfacepaymentid + schema: string + required: false + description: >- + This is used in UI flows to get payment details. Applicable for + payments created with REDIRECT, CHECKOUT integration type. + - name: paymentstatus + schema: array + required: false + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + - name: payername + schema: string + required: false + description: Payer name. This parameter supports searching with wildcards + - name: payeremail + schema: string + required: false + description: Payer e-mail. This parameter supports searching with wildcards + - name: reference + schema: string + required: false + description: >- + Payment reference will attempt to match endToEndIdentification, + remittanceInformation.reference and + remittanceInformation.unstructured. Will return all matches and + partial matches if using wildcard searches. This parameter supports + searching with wildcards + - name: currency + schema: string + required: false + description: Currency + - name: pagenumber + schema: integer + required: false + description: Page number + default: 1 + - name: pagesize + schema: integer + required: false + description: Page size + default: 20 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /payments + method: makePayment + httpMethod: post + tag: PISP Service + typeScriptTag: pispService + description: Create Payment + parameters: + - name: idempotencyKey + schema: string + required: false + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + - name: psuId + schema: string + required: false + description: Client ID of the PSU in the ASPSP client interface. + - name: customerIpAddress + schema: string + required: false + description: The PSU's IP address if the PSU is currently logged in with the TPP. + - name: amount + schema: number + required: true + description: '' + example: 0 + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: countryCode + schema: string + required: true + description: '' + example: COUNTRYCODE + - name: language + schema: string + required: false + description: '' + - name: email + schema: string + required: false + description: '' + - name: orderDetails + schema: object + required: false + description: '' + - name: integrationType + schema: string + required: false + description: '' + - name: merchantPostAuthUrl + schema: string + required: false + description: '' + - name: bankId + schema: string + required: false + description: '' + - name: endToEndIdentification + schema: string + required: false + description: '' + - name: paymentTimeout + schema: integer + required: false + description: '' + - name: remittanceInformation + schema: object + required: false + description: '' + - name: requestedExecutionDate + schema: string + required: false + description: '' + - name: debtorAccount + schema: object + required: false + description: '' + - name: debtorAddress + schema: object + required: false + description: '' + - name: creditorAccount + schema: object + required: false + description: '' + - name: creditorAddress + schema: object + required: false + description: '' + - name: paymentScheme + schema: string + required: false + description: '' + - name: risk + schema: object + required: false + description: '' + - name: merchantDisplayName + schema: string + required: false + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '422' + description: '' + - statusCode: '429' + description: '' + - url: /payments/callback + method: forwardPaymentCallback + httpMethod: post + tag: PISP Service + typeScriptTag: pispService + description: Forward Payment Callback + parameters: + - name: idempotencyKey + schema: string + required: false + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + responses: + - statusCode: '200' + description: Ok + - statusCode: '202' + description: ACCEPTED + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '422' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId} + method: getPayment + httpMethod: get + tag: PISP Service + typeScriptTag: pispService + description: Retrieve Payment + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the payment for which you want to retrieve details + example: PAYMENTID + responses: + - statusCode: '200' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId} + method: retryPaymentPatch + httpMethod: patch + tag: PISP Service + typeScriptTag: pispService + description: Retry Payment + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the payment that you want to retry + example: PAYMENTID + - name: customerIpAddress + schema: string + required: false + description: The PSU's IP address if the PSU is currently logged in with the TPP. + - name: bankId + schema: string + required: true + description: '' + example: BANKID + - name: psuId + schema: string + required: false + description: '' + - name: debtorAccount + schema: object + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '422' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId}/history + method: getPaymentHistory + httpMethod: get + tag: PISP Service + typeScriptTag: pispService + description: Retrieve Payment History + parameters: + - name: paymentId + schema: string + required: true + description: >- + The ID of the payment for which you want to retrieve audit trail + history + example: PAYMENTID + - name: pagenumber + schema: integer + required: false + description: Page number + default: 1 + - name: pagesize + schema: integer + required: false + description: Page size + default: 20 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId}/refunds + method: getPaymentRefunds + httpMethod: get + tag: PISP Service + typeScriptTag: pispService + description: List Payment Refunds + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the payment for which you want to list refunds + example: PAYMENTID + - name: fromcreationdatetime + schema: string + required: false + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + - name: tocreationdatetime + schema: string + required: false + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + - name: fromrefundamount + schema: number + required: false + description: >- + When provided only payments with amount equal or higher than provided + amount will be returned + - name: torefundamount + schema: number + required: false + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + - name: refundstatus + schema: array + required: false + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + - name: pagenumber + schema: integer + required: false + description: Page number + default: 1 + - name: pagesize + schema: integer + required: false + description: Page size + default: 20 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '422' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId}/refunds + method: refundPayment + httpMethod: post + tag: PISP Service + typeScriptTag: pispService + description: Refund Payment + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the payment which you want to refund + example: PAYMENTID + - name: idempotencyKey + schema: string + required: false + description: >- + Every request will be processed only once per x-idempotency-key. The + Idempotency Key will be valid for 24 hours. + - name: refundAmount + schema: number + required: true + description: '' + example: 0 + - name: compensationAmount + schema: number + required: false + description: '' + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: endToEndIdentification + schema: string + required: false + description: '' + - name: remittanceInformation + schema: object + required: false + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '422' + description: '' + - statusCode: '429' + description: '' + - url: /payments/{paymentId}/refunds/{refundId} + method: getRefund + httpMethod: get + tag: PISP Service + typeScriptTag: pispService + description: Retrieve Refund + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the payment for which you want to retrieve details + example: PAYMENTID + - name: refundId + schema: string + required: true + description: The ID of the refund for which you want to retrieve details + example: REFUNDID + responses: + - statusCode: '200' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '429' + description: '' +numberOfSchemas: 31 +apiDescription: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints diff --git a/sdks/db/category-cache.yaml b/sdks/db/category-cache.yaml index 310e44fd0f..c9224c7140 100644 --- a/sdks/db/category-cache.yaml +++ b/sdks/db/category-cache.yaml @@ -272,3 +272,4 @@ apis: LogisticsOS-undefined: AI Tools Hathora-undefined: Gaming Seyna-undefined: Insurance + Nuapay-undefined: Payment Processing diff --git a/sdks/db/custom-request-last-fetched.yaml b/sdks/db/custom-request-last-fetched.yaml index 6c6102c35d..8baa6f1422 100644 --- a/sdks/db/custom-request-last-fetched.yaml +++ b/sdks/db/custom-request-last-fetched.yaml @@ -252,3 +252,4 @@ lastUpdated: logisticsos.com: 2024-03-29T17:31:17.971Z hathora.dev: 2024-03-29T17:41:04.731Z seyna.eu: 2024-03-29T17:45:04.282Z + nuapay.com: 2024-03-29T17:50:40.361Z diff --git a/sdks/db/custom-request-specs/nuapay.com.yaml b/sdks/db/custom-request-specs/nuapay.com.yaml new file mode 100644 index 0000000000..3ab31c1d8d --- /dev/null +++ b/sdks/db/custom-request-specs/nuapay.com.yaml @@ -0,0 +1,3552 @@ +openapi: 3.0.0 +info: + description: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints + version: 1.16.1 + title: Nuapay TPP API Specification + contact: + name: Nuapay + email: api.support@nuapay.com + license: + name: Nuapay + url: https://sentenial.com + x-logo: + backgroundColor: '#FFFFFF' + url: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg +tags: + - name: Bank Service + description: |- + Bank endpoints allow a merchant to, + - Retrieve a list of banks that support the Open Banking scheme + - View details of a specific bank that supports the Open Banking scheme + - name: PISP Service + description: |- + Payment initiation endpoints allow a merchant to, + - Initiate payment requests in Open Banking + - Retrieve the status of a previously initiated payment request +paths: + /bankfamilies: + get: + tags: + - Bank Service + summary: View Bank Families + description: Get list of Bank Families + operationId: getBankFamiliesUsingGET + parameters: + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListBankFamiliesResponseEnvelope' + examples: + response: + value: + uri: /bankFamilies + data: + - id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + - id: 1xf48y2zds + uri: /bankFamilies/1xf48y2zds + name: Nuapay UK + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + page: + pageNumber: 1 + pageSize: 10 + totalElements: 2 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /bankfamilies/{bankfamilyId}: + get: + tags: + - Bank Service + summary: View Bank Family + description: View Bank Family Details + operationId: getBankFamilyUsingGET + parameters: + - name: bankfamilyId + in: path + description: Bank Family id returned by Get Bank Families endpoint. + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BankFamilyResponseEnvelope' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /banks: + get: + tags: + - Bank Service + summary: Retrieve Banks + description: Get Supported Banks On This TPP + operationId: getBanksUsingGET + parameters: + - name: country + in: query + required: false + description: >- + CountryCode - ISO country code - indicates where bank is domiciled + (ISO 3166 Alpha-2) + explode: true + schema: + type: array + items: + type: string + - name: debtoraccountrequired + in: query + required: false + description: >- + Allows to filter the banks that requires debtor account to be + provided when initiating payment. + schema: + type: boolean + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: bankfamilyid + in: query + description: Allows filtering by Bank Family via the Bank Family Id. + required: false + schema: + type: string + - name: excludebankfamily + in: query + description: Allows filtering by Banks without an associated Bank Family. + required: false + schema: + type: boolean + - name: services + in: query + description: >- + Filter the bank list by service provided returns both AISPs and + PISPs, 'AISP' returns only AISPs and 'PISP' returns only PISPs. When + not provided returns all banks regardless of service. + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - AISP + - PISP + - name: sepainstantreachability + in: query + description: >- + Filter the bank list by payment method. When not provided or false, + returns the full list of banks. When true, the only banks that + supports SEPA Instant Payments are returned. + required: false + schema: + type: boolean + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BanksResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /payments: + post: + tags: + - PISP Service + summary: Create Payment + description: Create a payment request POST endpoint + operationId: createPaymentUsingPOST + parameters: + - name: Idempotency-Key + in: header + x-sentenial: + enriched: 'true' + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + - name: PSU-ID + in: header + description: Client ID of the PSU in the ASPSP client interface. + required: false + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequest' + description: Create a Payment Request + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List payments + description: GET payments list endpoint + operationId: getPaymentListUsingGet + parameters: + - name: fromdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: todatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: toamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: userinterfacepaymentid + in: query + description: >- + This is used in UI flows to get payment details. Applicable for + payments created with REDIRECT, CHECKOUT integration type. + required: false + schema: + type: string + - name: paymentstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + - name: payername + in: query + description: Payer name. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: payeremail + in: query + description: Payer e-mail. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: reference + in: query + description: >- + Payment reference will attempt to match endToEndIdentification, + remittanceInformation.reference and + remittanceInformation.unstructured. Will return all matches and + partial matches if using wildcard searches. This parameter supports + searching with wildcards + required: false + schema: + type: string + - name: currency + in: query + description: Currency + required: false + schema: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListPaymentResponseEnvelope' + examples: + response: + value: + uri: /payments + data: + - id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorBankName: Test Bank Name + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0002 + description: Field is invalid + field: fromdatetime + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_pisp + - PartnerApiKey: [] + /payments/callback: + post: + tags: + - PISP Service + summary: Forward Payment Callback + description: Forward Payment Callback POST endpoint + operationId: forwardPaymentCallbackPOST + parameters: + - name: Idempotency-Key + in: header + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + x-sentenial: + enriched: 'true' + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + example: + code: KaIpmx + state: 3410742c-304d-4311-a54f-323f1f20f96f + id_token: >- + eyJraWQiOiJOdWFwYXlCYW5rX0tleUlEIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJjZDBlNDkxNC1jNjRlLTQyODQtYTg0ZS0yYzc2NGI3NzU5MWYiLCJhdWQiOiJ0ZXN0IiwiY19oYXNoIjoiU2VWM1ZYU3YyVHNMVXhLdVdLWE9PUSIsImFjciI6WyJ1cm46b3BlbmJhbmtpbmc6cHNkMjpzY2EiXSwic19oYXNoIjoicjNHcm53YjFzNXZYaHRwOU1oYm1zdyIsIm9wZW5iYW5raW5nX2ludGVudF9pZCI6ImNkMGU0OTE0LWM2NGUtNDI4NC1hODRlLTJjNzY0Yjc3NTkxZiIsImtpZCI6Ik51YXBheUJhbmtfS2V5SUQiLCJpc3MiOiJodHRwczpcL1wvYXBpLmFscGhhbmJhbmsuY29tIiwiZXhwIjoxNTUzMDA4MTkwLCJpYXQiOjE1NTMwMDc1OTAsIm5vbmNlIjoiODJiMTNjMzYtZTIzOC00MDA2LTkzMjQtNDJhZmQ2YjMwOTJlIiwianRpIjoiNGI4ODk3NjQtOWQwMy00YWM1LTg2MDgtOGMzZGU2NzU2N2VkIn0.fRBht6BQtqNxbUKmeoNqzWyFykTVX6zMCLcqvnPt1m665l9a8Zuwa4oaY_-2pULshjwD9yptgRdQ8KbkQ1SddwQacZYwUvzzbE1kV6GwhuwvGNU9TihPvh55eE3nY9kYJywn5m6hgC0x81m1MhMeAikanNZIia7rryB30CKxDMt0sL-5CvnFdyr2_csjuXotekC_weDsY4WNqCu5LfZhVk0IixXNiDXFxxnR9qNOjQ5fTljITWoPQ0G1KYfW3DOs4Nb23oZe8b-RxLebD9R2kBiIWh79oGOg-8RZz36FDNSn5Skt1KAz_c9bv7Vbt-au6VY1_tPdvZ8sgd44M__rZQ + description: Create a Payment Callback Request + required: true + responses: + '200': + description: Ok + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + ASPSP-SCA-Redirect-URL: + description: Holds url of the ASPSP SCA redirect for pre-authorisation flow. + schema: + type: string + '202': + description: ACCEPTED + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: XXXXX + description: No payment matched based on provided parameters. + field: null + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + x-sentenial: + enriched: 'true' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_callback + - PartnerOAuth2: + - openbanking_callback + /payments/{paymentId}: + get: + tags: + - PISP Service + summary: Retrieve Payment + description: GET Payment details endpoint + operationId: getPaymentUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + patch: + tags: + - PISP Service + summary: Retry Payment + description: Retry Payment + operationId: setBankIdForPaymentUsingPATCH + parameters: + - name: paymentId + in: path + description: The ID of the payment that you want to retry + required: true + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SetBankPaymentRequest' + description: Retry Payment Request + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: lyboxy9bqp + bankName: Nuapay + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: bankId + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + - code: TBD + description: The payment can't be processed with provided bank. + field: bankId + - code: TBD + description: Bank cannot be found. + field: bankId + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + /payments/{paymentId}/history: + get: + tags: + - PISP Service + summary: Retrieve Payment History + description: Retrieve Payment History + operationId: getPaymentHistoryUsingGET + parameters: + - name: paymentId + in: path + description: >- + The ID of the payment for which you want to retrieve audit trail + history + required: true + schema: + type: string + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentHistoryResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/history + data: + - status: PENDING + createDateTime: '2019-02-28T10:43:07+00:00' + - status: PENDING_APPROVAL + createDateTime: '2019-02-28T10:44:07+01:00' + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page Number is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds: + post: + tags: + - PISP Service + summary: Refund Payment + description: Refund a payment using POST + operationId: refundPaymentUsingPOST + parameters: + - name: paymentId + in: path + description: The ID of the payment which you want to refund + required: true + schema: + type: string + - name: Idempotency-Key + x-sentenial: + enriched: true + in: header + description: >- + Every request will be processed only once per x-idempotency-key. + The Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundRequest' + description: Refund an exising payment + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List Payment Refunds + description: List refunds using GET + operationId: listRefundsUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to list refunds + required: true + schema: + type: string + - name: fromcreationdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: tocreationdatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromrefundamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: torefundamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: refundstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - ALL + - REFUND_REJECTED + - REFUND_COMPLETE + - REFUND_PENDING + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundListResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/ + data: + - id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds/{refundId}: + get: + tags: + - PISP Service + summary: Retrieve Refund + description: GET Refund details endpoint + operationId: getRefundUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + - name: refundId + in: path + description: The ID of the refund for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_REJECTED + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: + - '5008' + - '5016' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] +servers: + - url: https://api.nuapay.com/tpp +components: + securitySchemes: + MerchantApiKey: + type: http + scheme: basic + PartnerApiKey: + type: http + scheme: basic + MerchantOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_refund: Open Banking Refund access + openbanking_refund_read: Read Open Banking Refunds access + openbanking_callback: Open Banking callback forwarding access + PartnerOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_aisp: Account Information Service Provider access + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_callback: Open Banking callback forwarding access + schemas: + Address: + description: Postal Address Details. + type: object + properties: + streetName: + description: Name of a street or thoroughfare. + type: string + minLength: 1 + maxLength: 70 + buildingNumber: + description: Number that identifies the position of a building on a street. + type: string + minLength: 1 + maxLength: 16 + postCode: + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + type: string + minLength: 1 + maxLength: 16 + townName: + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + type: string + minLength: 1 + maxLength: 35 + country: + description: ISO 3166 ALPHA2 country code. + type: string + pattern: ^[A-Z]{2,2}$ + addressLine: + items: + type: string + minLength: 1 + maxLength: 70 + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, presented in free format text. + minItems: 0 + maxItems: 2 + Bank: + type: object + required: + - id + - uri + - logo + - name + - supportedCurrencies + - country + - countries + - debtorAccountRequired + - services + properties: + id: + type: string + description: The Banks Id + uri: + type: string + description: Uri to Bank Resource + name: + type: string + description: The Banks Name + logo: + type: string + description: The Banks Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the bank can process. + items: + type: string + description: ISO currency code. + country: + type: string + description: >- + The main country the bank operates. ISO country code - indicates + where the Bank is located (ISO 3166 Alpha-2) + countries: + type: array + description: Holds the list of countries the bank operates. + items: + type: string + description: >- + ISO country code - indicates where the Bank is located (ISO 3166 + Alpha-2) + debtorAccountRequired: + type: boolean + description: TRUE if debtorAccount is required by Aspsp. + lastUpdateDateTime: + type: string + format: date-time + description: Last date and time when bank's settings were updated. + bankMetaData: + $ref: '#/components/schemas/BankMetaData' + services: + type: array + description: >- + AISP if bank provides only AISP services and PISP if bank provides + only PISP services. + items: + type: string + description: Either AISP or PISP. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: Bank + BankMetaData: + type: object + description: >- + Array containing additional bank meta data, includes parameters that are + either required, optional or not supported at a specific bank + properties: + debtorAddress: + type: string + description: >- + Indicates if 'Debtor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + creditorAddress: + type: string + description: >- + Indicates if 'Creditor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + remittanceInformation: + type: string + description: >- + Indicates if 'Remittance Information' is required by the bank. + Returns either, 'required', 'optional' or 'notSupported'. + psuId: + type: string + description: >- + Indicates if 'PSU-ID' is required by the bank. Returns either, + 'required', 'optional' or 'notSupported'. + customerIpAddress: + type: string + description: >- + Indicates if 'Customer IP Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + sepaInstantReachability: + type: boolean + description: Indicates if SEPA instant payments are supported by the bank. + minimumPaymentValue: + type: number + description: >- + Indicates the minimum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + maximumPaymentValue: + type: number + description: >- + Indicates the maximum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + BanksResponse: + type: object + required: + - data + - uri + - page + - sort + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Banks collection + items: + $ref: '#/components/schemas/Bank' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: BanksResponse + example: + uri: /banks + data: + - id: 8ow24y2pdx + uri: /banks/8ow24y2pdx + name: Nuapay + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + - EUR + country: GB + countries: + - GB + - IE + debtorAccountRequired: false + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + bankMetaData: + debtorAddress: required + creditorAddress: required + remittanceInformation: optional + psuId: notSupported + customerIpAddress: notSupported + sepaInstantReachability: true + minimumPaymentValue: 0.01 + maximumPaymentValue: 9999.99 + services: + - AISP + - PISP + links: + - id: 8ww64y0phx + resourceType: bankFamily + uri: /bankFamilies/8ww64y0phx + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + BankFamilyResponse: + type: object + required: + - id + - uri + - name + - logo + - supportedCurrencies + properties: + id: + type: string + description: The Banks Family Id, used to group branches belong to the same Bank + uri: + type: string + description: Uri to Bank Family Resource + name: + type: string + description: The Bank Family Name + logo: + type: string + description: The Bank Family Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the Bank Family can process. + items: + type: string + description: ISO currency code. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: BankFamilyResponse + BankFamilyResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Bank Family collection + items: + $ref: '#/components/schemas/BankFamilyResponse' + title: BankFamilyResponseEnvelope + example: + uri: /bankFamily/ + data: + id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + CreditorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage - The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: CreditorAccount + description: >- + Unambiguous identification of the account of the creditor to which a + credit entry will be made as a result of the transaction. + DebtorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage: The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: DebtorAccount + description: >- + Unambiguous identification of the account of the debtor to which a debit + entry will be made as a result of the transaction. + DeliveryAddress: + type: object + required: + - country + - townName + properties: + addressLine: + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, that is presented in free format text. + items: + type: string + minLength: 1 + maxLength: 70 + maxItems: 2 + minItems: 0 + streetName: + type: string + description: Name of a street or thoroughfare. + minLength: 1 + maxLength: 70 + buildingNumber: + type: string + description: Number that identifies the position of a building on a street. + minLength: 1 + maxLength: 16 + postCode: + type: string + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + minLength: 1 + maxLength: 16 + townName: + type: string + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + minLength: 1 + maxLength: 35 + countrySubDivision: + type: array + description: >- + Identifies a subdivision of a country, for instance state, region, + county. + items: + type: string + minLength: 1 + maxLength: 35 + maxItems: 2 + minItems: 0 + country: + type: string + description: Nation with its own government, occupying a particular territory. + pattern: ^[A-Z]{2,2}$ + title: DeliveryAddress + description: >- + Information that locates and identifies a specific address, as defined + by postal services or in free format text. + ErrorDetail: + type: object + properties: + code: + type: string + description: Error code + description: + type: string + description: Error description + field: + type: string + description: JSON path to request object property the error is related to + title: ErrorDetail + ErrorResponse: + type: object + properties: + details: + type: array + description: Holds list of input validation errors + items: + $ref: '#/components/schemas/ErrorDetail' + returnCode: + type: string + description: Error type code + returnDescription: + type: string + description: Error type description + title: ErrorResponse + Items: + type: object + properties: + name: + type: string + description: The name of the item being purchased by the PSU. + minLength: 1 + maxLength: 35 + description: + type: string + description: Brief description of the item being purchased by the PSU + minLength: 1 + maxLength: 254 + quantity: + type: integer + format: int32 + description: Quantiy of the particular item being purchased by the PSU. + amount: + type: number + description: Amount of payment in the specified currency at the specified rate. + minimum: -999999999999.99 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + title: Items + MultiAuthorisation: + type: object + description: The multiple authorisation flow response from the ASPSP. + properties: + status: + description: Specifies the status of the authorisation flow in code form. + type: string + enum: + - AUTHORISED + - AWAITING_FURTHER_AUTHORISATION + - REJECTED + numberRequired: + description: >- + Number of authorisations required for payment order (total required + at the start of the multi authorisation journey). + type: integer + format: int32 + numberReceived: + description: Number of authorisations received. + type: integer + format: int32 + lastUpdateDateTime: + description: Last date and time at the authorisation flow was updated. + type: string + format: date-time + expirationDateTime: + description: >- + Date and time at which the requested authorisation flow must be + completed. + type: string + format: date-time + required: + - status + OrderDetails: + type: object + description: Holds Order Details related to payment amount. + properties: + items: + type: array + description: Holds list of the line items to be returned to the TPP UI + items: + $ref: '#/components/schemas/Items' + title: OrderDetails + PaginatedListPaymentResponseEnvelope: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + uri: + type: string + description: resource Uri + PaginatedListBankFamiliesResponseEnvelope: + type: object + required: + - uri + - data + - page + - sort + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/BankFamilyResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: PaginatedListBankFamiliesResponseEnvelope + PaymentRefundListResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/PaymentRefundResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri. + data: + type: array + items: + $ref: '#/components/schemas/PaymentHistoryEvent' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryEvent: + type: object + required: + - createDateTime + - status + properties: + id: + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + uri: + type: string + status: + type: string + description: paymentStatus + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + createDateTime: + type: string + format: date-time + description: >- + Date and time when a status has changed. An example is below: + 2019-02-28T10:43:07+00:00 + PaymentRequest: + type: object + required: + - amount + - countryCode + - currency + properties: + amount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + minLength: 1 + maxLength: 35 + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: >- + Date the payment should be executed on. Defaults to current + processing date. Future date allowed only for EUR payments processed + by French Banks under STET standard. + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + title: PaymentRequest + example: + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + endToEndIdentification: endToEndIdentification123 + remittanceInformation: + reference: reference123 + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + debtorAccount: + identification: 60161331926819 + schemeName: SortCodeAccountNumber + PaymentResponse: + type: object + required: + - amount + - countryCode + - currency + - id + - merchantId + - organisationId + - creationDateTime + - uri + - status + - paymentTimeout + properties: + id: + type: string + description: id, this is used to get updates on the payment + userInterfacePaymentId: + type: string + description: >- + userInterfacePaymentId, this is used in UI flows to get updates on + the payment + uri: + type: string + description: Location of the resource + merchantId: + type: string + description: The ID of the merchant associated to the payment + organisationId: + type: string + description: Id of the Merchant Organisation. + creationDateTime: + type: string + format: date-time + description: Creation date and time for the payment resource + status: + type: string + description: paymentStatus, the latest payment status + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + amount: + type: number + description: Amount of the payment + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + aspspAuthUrl: + type: string + description: >- + The ASPSP url to redirect the PSU to for authorization of the + payment + minLength: 1 + maxLength: 2048 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: Date that the payment has been requested to be executed on. + debtorBankName: + type: string + description: The name of the debtor bank + minLength: 1 + maxLength: 70 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + cutOffDateTime: + type: string + format: date-time + description: Specified cut-off date and time for the payment consent. + expectedExecutionDateTime: + type: string + format: date-time + description: Expected execution date and time for the payment resource. + expectedSettlementDateTime: + type: string + format: date-time + description: Expected settlement date and time for the payment resource. + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + multiAuthorisation: + $ref: '#/components/schemas/MultiAuthorisation' + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentResponse + PaymentResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentResponse' + title: PaymentResponseEnvelope + example: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: 0 + amount: -5 + - name: Total + description: null + quantity: 0 + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + psuId: 12345678-UE3212 + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + PaymentRefundRequest: + type: object + required: + - refundAmount + - currency + properties: + refundAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + compensationAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency, must match original payment currency + enum: + - GBP + - EUR + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. Note that the field length + is limited to 31 characters for payments in GBP currency, processed + via UK Faster Payments scheme + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + PaymentRefundResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentRefundResponse' + title: refundPaymentResponseEnvelope + example: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + reference: reference + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + unstructured: unstructuredRemittanceInfo + PaymentRefundResponse: + type: object + required: + - refundAmount + - currency + - id + - uri + - reference + - status + - creationDateTime + properties: + id: + type: string + description: id, this is used to get updates on the payment + uri: + type: string + description: Holds resource uri. + creationDateTime: + type: string + format: date-time + description: Date and time when refund was created. + lastUpdateDateTime: + type: string + format: date-time + description: Date and time when refund was last updated. + status: + type: string + description: paymentStatus, the latest payment status + enum: + - REFUND_PENDING + - REFUND_COMPLETE + - REFUND_REJECTED + - UNKNOWN + refundAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + compensationAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + maxLength: 35 + errorDetails: + type: array + description: List of error codes associated to the refund request + items: + type: string + description: Payment error code(s) + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentRefundResponse + RemittanceInformation: + type: object + properties: + reference: + type: string + description: >- + Unique reference, as assigned by the creditor, to unambiguously + refer to the payment transaction. Usage: If available, the + initiating party should provide this reference in the structured + remittance information, to enable reconciliation by the creditor + upon receipt of the amount of money. If the business context + requires the use of a creditor reference or a payment remit + identification, and only one identifier can be passed through the + end-to-end chain, the creditor's reference or payment remittance + identification should be quoted in the end-to-end transaction + identification. OB: The Faster Payments Scheme can only accept 18 + characters for the ReferenceInformation field - which is where this + ISO field will be mapped. + minLength: 1 + maxLength: 35 + unstructured: + type: string + description: >- + Information supplied to enable the matching/reconciliation of an + entry with the items that the payment is intended to settle, such as + commercial invoices in an accounts receivable system, in an + unstructured form. 120 characters are available for client use. 20 + characters are reserved for internal use. + minLength: 1 + maxLength: 140 + title: RemittanceInformation + description: >- + Information supplied to enable the matching of an entry with the items + that the transfer is intended to settle, such as commercial invoices in + an accounts receivable system. + RestResponsePaginationDetails: + type: object + properties: + pageNumber: + type: integer + format: int32 + description: Page Number + pageSize: + type: integer + format: int32 + description: Page Size + totalElements: + type: integer + format: int32 + description: Total Number of elements returned. Response parameter only + totalPages: + type: integer + format: int32 + description: Total Number of pages returned. Response parameter only + Risk: + type: object + properties: + paymentContextCode: + type: string + description: Specifies the payment context. + enum: + - BillingGoodsAndServicesInAdvance + - BillingGoodsAndServicesInArrears + - PispPayee + - EcommerceMerchantInitiatedPayment + - FaceToFacePointOfSale + - TransferToSelf + - TransferToThirdParty + - BillPayment + - EcommerceGoods + - EcommerceServices + - Other + - PartyToParty + merchantCategoryCode: + type: string + description: >- + Category code conforms to ISO 18245, related to the type of services + or goods the merchant provides for the transaction. + minLength: 3 + maxLength: 4 + merchantCustomerIdentification: + type: string + description: The unique customer identifier of the PSU with the merchant. + minLength: 1 + maxLength: 70 + deliveryAddress: + $ref: '#/components/schemas/DeliveryAddress' + contractPresentIndicator: + type: boolean + description: Indicates if Payee has a contractual relationship with the PISP. + paymentPurposeCode: + type: string + description: >- + Category code, related to the type of services or goods that + corresponds to the underlying purpose of the payment that conforms + to Recommended UK Purpose Code in ISO 20022 Payment Messaging List + minLength: 3 + maxLength: 4 + beneficiaryPrepopulatedIndicator: + type: boolean + description: >- + Indicates if PISP has immutably prepopulated payment details in for + the PSU. + beneficiaryAccountType: + type: string + description: Specifies the extended type of account. + enum: + - Business + - BusinessSavingsAccount + - Charity + - Collection + - Corporate + - Ewallet + - Government + - Investment + - ISA + - JointPersonal + - Pension + - Personal + - PersonalSavingsAccount + - Premier + - Wealth + title: Risk + description: Risk + RestResponseLink: + type: object + properties: + id: + type: string + description: Encoded Id of linked resource + resourceType: + type: string + description: |- + Available link types, + - settings + - refunds + - history + - audit + - bankFamily + uri: + type: string + description: Resource URI + SetBankPaymentRequest: + type: object + required: + - bankId + properties: + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + example: + bankId: ybo8zd8j2q + psuId: 12345678-UE3212 + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN diff --git a/sdks/db/fixed-specs-cache/nuapay-fixed-spec.yaml b/sdks/db/fixed-specs-cache/nuapay-fixed-spec.yaml new file mode 100644 index 0000000000..b03339e19b --- /dev/null +++ b/sdks/db/fixed-specs-cache/nuapay-fixed-spec.yaml @@ -0,0 +1,3607 @@ +publishJson: + company: Nuapay + serviceName: false + sdkName: nuapay-{language}-sdk + clientName: Nuapay + metaDescription: >- + Nuapay is a pioneer of Open Banking and the industry's leading + Account-2-Account payment environment. We securely process over €42bn every + year as an outsourcing provider to many of the world's leading Banks, PSPs + and Corporates – we have worked tirelessly to reinvent what's possible from + a modern banking and payment solution. Today, we offer partners a fully + comprehensive, integrated payment solution that removes all traditional + banking inefficiencies and unnecessary costs, saving time, money and + resources at every turn. This is banking as it should be. + + + Our Vision + + + For over 20 years, Nuapay has been at the forefront of Account-to-Account + payments and the Open Banking movement. Through our market-leading payments + and accounts platform, partner ecosystem and focus on quality we've helped + thousands of clients (banks, payment providers, software platforms and + businesses) deliver innovative, profitable and seamless payment services. + Nuapay's flexible, secure approach will cover all your needs, underpinned by + our 20 year heritage. + + + Our Mission + + + Here at Nuapay we know that perfecting the payments experience brings + transformational benefits to customers and the businesses who serve them. We + believe Account-to-Account payments and Open Banking can achieve that better + than any other option – and are, together, the future of payments. + + + www.nuapay.com / @NUAPAY + + + Get in touch with us here: www.nuapay.com/contact/ + apiStatusUrls: inherit + homepage: nuapay.com/ + developerDocumentation: developer.nuapay.com/ + categories: + - finance + - banking + - payments + - fintech + - financial_technology + - b_2_b_payments + - payment_services + - financial_services +rawSpecString: | + openapi: 3.0.0 + info: + description: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints + version: 1.16.1 + title: Nuapay TPP API Specification + contact: + name: Nuapay + email: api.support@nuapay.com + license: + name: Nuapay + url: https://sentenial.com + x-logo: + backgroundColor: '#FFFFFF' + url: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + tags: + - name: Bank Service + description: |- + Bank endpoints allow a merchant to, + - Retrieve a list of banks that support the Open Banking scheme + - View details of a specific bank that supports the Open Banking scheme + - name: PISP Service + description: |- + Payment initiation endpoints allow a merchant to, + - Initiate payment requests in Open Banking + - Retrieve the status of a previously initiated payment request + paths: + /bankfamilies: + get: + tags: + - Bank Service + summary: View Bank Families + description: Get list of Bank Families + operationId: getBankFamiliesUsingGET + parameters: + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListBankFamiliesResponseEnvelope' + examples: + response: + value: + uri: /bankFamilies + data: + - id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + - id: 1xf48y2zds + uri: /bankFamilies/1xf48y2zds + name: Nuapay UK + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + page: + pageNumber: 1 + pageSize: 10 + totalElements: 2 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /bankfamilies/{bankfamilyId}: + get: + tags: + - Bank Service + summary: View Bank Family + description: View Bank Family Details + operationId: getBankFamilyUsingGET + parameters: + - name: bankfamilyId + in: path + description: Bank Family id returned by Get Bank Families endpoint. + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BankFamilyResponseEnvelope' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /banks: + get: + tags: + - Bank Service + summary: Retrieve Banks + description: Get Supported Banks On This TPP + operationId: getBanksUsingGET + parameters: + - name: country + in: query + required: false + description: >- + CountryCode - ISO country code - indicates where bank is domiciled + (ISO 3166 Alpha-2) + explode: true + schema: + type: array + items: + type: string + - name: debtoraccountrequired + in: query + required: false + description: >- + Allows to filter the banks that requires debtor account to be + provided when initiating payment. + schema: + type: boolean + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: bankfamilyid + in: query + description: Allows filtering by Bank Family via the Bank Family Id. + required: false + schema: + type: string + - name: excludebankfamily + in: query + description: Allows filtering by Banks without an associated Bank Family. + required: false + schema: + type: boolean + - name: services + in: query + description: >- + Filter the bank list by service provided returns both AISPs and + PISPs, 'AISP' returns only AISPs and 'PISP' returns only PISPs. When + not provided returns all banks regardless of service. + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - AISP + - PISP + - name: sepainstantreachability + in: query + description: >- + Filter the bank list by payment method. When not provided or false, + returns the full list of banks. When true, the only banks that + supports SEPA Instant Payments are returned. + required: false + schema: + type: boolean + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BanksResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /payments: + post: + tags: + - PISP Service + summary: Create Payment + description: Create a payment request POST endpoint + operationId: createPaymentUsingPOST + parameters: + - name: Idempotency-Key + in: header + x-sentenial: + enriched: 'true' + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + - name: PSU-ID + in: header + description: Client ID of the PSU in the ASPSP client interface. + required: false + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequest' + description: Create a Payment Request + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List payments + description: GET payments list endpoint + operationId: getPaymentListUsingGet + parameters: + - name: fromdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: todatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: toamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: userinterfacepaymentid + in: query + description: >- + This is used in UI flows to get payment details. Applicable for + payments created with REDIRECT, CHECKOUT integration type. + required: false + schema: + type: string + - name: paymentstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + - name: payername + in: query + description: Payer name. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: payeremail + in: query + description: Payer e-mail. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: reference + in: query + description: >- + Payment reference will attempt to match endToEndIdentification, + remittanceInformation.reference and + remittanceInformation.unstructured. Will return all matches and + partial matches if using wildcard searches. This parameter supports + searching with wildcards + required: false + schema: + type: string + - name: currency + in: query + description: Currency + required: false + schema: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListPaymentResponseEnvelope' + examples: + response: + value: + uri: /payments + data: + - id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorBankName: Test Bank Name + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0002 + description: Field is invalid + field: fromdatetime + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_pisp + - PartnerApiKey: [] + /payments/callback: + post: + tags: + - PISP Service + summary: Forward Payment Callback + description: Forward Payment Callback POST endpoint + operationId: forwardPaymentCallbackPOST + parameters: + - name: Idempotency-Key + in: header + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + x-sentenial: + enriched: 'true' + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + example: + code: KaIpmx + state: 3410742c-304d-4311-a54f-323f1f20f96f + id_token: >- + eyJraWQiOiJOdWFwYXlCYW5rX0tleUlEIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJjZDBlNDkxNC1jNjRlLTQyODQtYTg0ZS0yYzc2NGI3NzU5MWYiLCJhdWQiOiJ0ZXN0IiwiY19oYXNoIjoiU2VWM1ZYU3YyVHNMVXhLdVdLWE9PUSIsImFjciI6WyJ1cm46b3BlbmJhbmtpbmc6cHNkMjpzY2EiXSwic19oYXNoIjoicjNHcm53YjFzNXZYaHRwOU1oYm1zdyIsIm9wZW5iYW5raW5nX2ludGVudF9pZCI6ImNkMGU0OTE0LWM2NGUtNDI4NC1hODRlLTJjNzY0Yjc3NTkxZiIsImtpZCI6Ik51YXBheUJhbmtfS2V5SUQiLCJpc3MiOiJodHRwczpcL1wvYXBpLmFscGhhbmJhbmsuY29tIiwiZXhwIjoxNTUzMDA4MTkwLCJpYXQiOjE1NTMwMDc1OTAsIm5vbmNlIjoiODJiMTNjMzYtZTIzOC00MDA2LTkzMjQtNDJhZmQ2YjMwOTJlIiwianRpIjoiNGI4ODk3NjQtOWQwMy00YWM1LTg2MDgtOGMzZGU2NzU2N2VkIn0.fRBht6BQtqNxbUKmeoNqzWyFykTVX6zMCLcqvnPt1m665l9a8Zuwa4oaY_-2pULshjwD9yptgRdQ8KbkQ1SddwQacZYwUvzzbE1kV6GwhuwvGNU9TihPvh55eE3nY9kYJywn5m6hgC0x81m1MhMeAikanNZIia7rryB30CKxDMt0sL-5CvnFdyr2_csjuXotekC_weDsY4WNqCu5LfZhVk0IixXNiDXFxxnR9qNOjQ5fTljITWoPQ0G1KYfW3DOs4Nb23oZe8b-RxLebD9R2kBiIWh79oGOg-8RZz36FDNSn5Skt1KAz_c9bv7Vbt-au6VY1_tPdvZ8sgd44M__rZQ + description: Create a Payment Callback Request + required: true + responses: + '200': + description: Ok + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + ASPSP-SCA-Redirect-URL: + description: Holds url of the ASPSP SCA redirect for pre-authorisation flow. + schema: + type: string + '202': + description: ACCEPTED + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: XXXXX + description: No payment matched based on provided parameters. + field: null + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + x-sentenial: + enriched: 'true' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_callback + - PartnerOAuth2: + - openbanking_callback + /payments/{paymentId}: + get: + tags: + - PISP Service + summary: Retrieve Payment + description: GET Payment details endpoint + operationId: getPaymentUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + patch: + tags: + - PISP Service + summary: Retry Payment + description: Retry Payment + operationId: setBankIdForPaymentUsingPATCH + parameters: + - name: paymentId + in: path + description: The ID of the payment that you want to retry + required: true + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SetBankPaymentRequest' + description: Retry Payment Request + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: lyboxy9bqp + bankName: Nuapay + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: bankId + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + - code: TBD + description: The payment can't be processed with provided bank. + field: bankId + - code: TBD + description: Bank cannot be found. + field: bankId + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + /payments/{paymentId}/history: + get: + tags: + - PISP Service + summary: Retrieve Payment History + description: Retrieve Payment History + operationId: getPaymentHistoryUsingGET + parameters: + - name: paymentId + in: path + description: >- + The ID of the payment for which you want to retrieve audit trail + history + required: true + schema: + type: string + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentHistoryResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/history + data: + - status: PENDING + createDateTime: '2019-02-28T10:43:07+00:00' + - status: PENDING_APPROVAL + createDateTime: '2019-02-28T10:44:07+01:00' + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page Number is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds: + post: + tags: + - PISP Service + summary: Refund Payment + description: Refund a payment using POST + operationId: refundPaymentUsingPOST + parameters: + - name: paymentId + in: path + description: The ID of the payment which you want to refund + required: true + schema: + type: string + - name: Idempotency-Key + x-sentenial: + enriched: true + in: header + description: >- + Every request will be processed only once per x-idempotency-key. + The Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundRequest' + description: Refund an exising payment + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List Payment Refunds + description: List refunds using GET + operationId: listRefundsUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to list refunds + required: true + schema: + type: string + - name: fromcreationdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: tocreationdatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromrefundamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: torefundamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: refundstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - ALL + - REFUND_REJECTED + - REFUND_COMPLETE + - REFUND_PENDING + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundListResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/ + data: + - id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds/{refundId}: + get: + tags: + - PISP Service + summary: Retrieve Refund + description: GET Refund details endpoint + operationId: getRefundUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + - name: refundId + in: path + description: The ID of the refund for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_REJECTED + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: + - '5008' + - '5016' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + servers: + - url: https://api.nuapay.com/tpp + components: + securitySchemes: + MerchantApiKey: + type: http + scheme: basic + PartnerApiKey: + type: http + scheme: basic + MerchantOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_refund: Open Banking Refund access + openbanking_refund_read: Read Open Banking Refunds access + openbanking_callback: Open Banking callback forwarding access + PartnerOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_aisp: Account Information Service Provider access + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_callback: Open Banking callback forwarding access + schemas: + Address: + description: Postal Address Details. + type: object + properties: + streetName: + description: Name of a street or thoroughfare. + type: string + minLength: 1 + maxLength: 70 + buildingNumber: + description: Number that identifies the position of a building on a street. + type: string + minLength: 1 + maxLength: 16 + postCode: + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + type: string + minLength: 1 + maxLength: 16 + townName: + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + type: string + minLength: 1 + maxLength: 35 + country: + description: ISO 3166 ALPHA2 country code. + type: string + pattern: ^[A-Z]{2,2}$ + addressLine: + items: + type: string + minLength: 1 + maxLength: 70 + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, presented in free format text. + minItems: 0 + maxItems: 2 + Bank: + type: object + required: + - id + - uri + - logo + - name + - supportedCurrencies + - country + - countries + - debtorAccountRequired + - services + properties: + id: + type: string + description: The Banks Id + uri: + type: string + description: Uri to Bank Resource + name: + type: string + description: The Banks Name + logo: + type: string + description: The Banks Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the bank can process. + items: + type: string + description: ISO currency code. + country: + type: string + description: >- + The main country the bank operates. ISO country code - indicates + where the Bank is located (ISO 3166 Alpha-2) + countries: + type: array + description: Holds the list of countries the bank operates. + items: + type: string + description: >- + ISO country code - indicates where the Bank is located (ISO 3166 + Alpha-2) + debtorAccountRequired: + type: boolean + description: TRUE if debtorAccount is required by Aspsp. + lastUpdateDateTime: + type: string + format: date-time + description: Last date and time when bank's settings were updated. + bankMetaData: + $ref: '#/components/schemas/BankMetaData' + services: + type: array + description: >- + AISP if bank provides only AISP services and PISP if bank provides + only PISP services. + items: + type: string + description: Either AISP or PISP. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: Bank + BankMetaData: + type: object + description: >- + Array containing additional bank meta data, includes parameters that are + either required, optional or not supported at a specific bank + properties: + debtorAddress: + type: string + description: >- + Indicates if 'Debtor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + creditorAddress: + type: string + description: >- + Indicates if 'Creditor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + remittanceInformation: + type: string + description: >- + Indicates if 'Remittance Information' is required by the bank. + Returns either, 'required', 'optional' or 'notSupported'. + psuId: + type: string + description: >- + Indicates if 'PSU-ID' is required by the bank. Returns either, + 'required', 'optional' or 'notSupported'. + customerIpAddress: + type: string + description: >- + Indicates if 'Customer IP Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + sepaInstantReachability: + type: boolean + description: Indicates if SEPA instant payments are supported by the bank. + minimumPaymentValue: + type: number + description: >- + Indicates the minimum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + maximumPaymentValue: + type: number + description: >- + Indicates the maximum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + BanksResponse: + type: object + required: + - data + - uri + - page + - sort + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Banks collection + items: + $ref: '#/components/schemas/Bank' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: BanksResponse + example: + uri: /banks + data: + - id: 8ow24y2pdx + uri: /banks/8ow24y2pdx + name: Nuapay + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + - EUR + country: GB + countries: + - GB + - IE + debtorAccountRequired: false + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + bankMetaData: + debtorAddress: required + creditorAddress: required + remittanceInformation: optional + psuId: notSupported + customerIpAddress: notSupported + sepaInstantReachability: true + minimumPaymentValue: 0.01 + maximumPaymentValue: 9999.99 + services: + - AISP + - PISP + links: + - id: 8ww64y0phx + resourceType: bankFamily + uri: /bankFamilies/8ww64y0phx + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + BankFamilyResponse: + type: object + required: + - id + - uri + - name + - logo + - supportedCurrencies + properties: + id: + type: string + description: The Banks Family Id, used to group branches belong to the same Bank + uri: + type: string + description: Uri to Bank Family Resource + name: + type: string + description: The Bank Family Name + logo: + type: string + description: The Bank Family Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the Bank Family can process. + items: + type: string + description: ISO currency code. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: BankFamilyResponse + BankFamilyResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Bank Family collection + items: + $ref: '#/components/schemas/BankFamilyResponse' + title: BankFamilyResponseEnvelope + example: + uri: /bankFamily/ + data: + id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + CreditorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage - The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: CreditorAccount + description: >- + Unambiguous identification of the account of the creditor to which a + credit entry will be made as a result of the transaction. + DebtorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage: The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: DebtorAccount + description: >- + Unambiguous identification of the account of the debtor to which a debit + entry will be made as a result of the transaction. + DeliveryAddress: + type: object + required: + - country + - townName + properties: + addressLine: + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, that is presented in free format text. + items: + type: string + minLength: 1 + maxLength: 70 + maxItems: 2 + minItems: 0 + streetName: + type: string + description: Name of a street or thoroughfare. + minLength: 1 + maxLength: 70 + buildingNumber: + type: string + description: Number that identifies the position of a building on a street. + minLength: 1 + maxLength: 16 + postCode: + type: string + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + minLength: 1 + maxLength: 16 + townName: + type: string + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + minLength: 1 + maxLength: 35 + countrySubDivision: + type: array + description: >- + Identifies a subdivision of a country, for instance state, region, + county. + items: + type: string + minLength: 1 + maxLength: 35 + maxItems: 2 + minItems: 0 + country: + type: string + description: Nation with its own government, occupying a particular territory. + pattern: ^[A-Z]{2,2}$ + title: DeliveryAddress + description: >- + Information that locates and identifies a specific address, as defined + by postal services or in free format text. + ErrorDetail: + type: object + properties: + code: + type: string + description: Error code + description: + type: string + description: Error description + field: + type: string + description: JSON path to request object property the error is related to + title: ErrorDetail + ErrorResponse: + type: object + properties: + details: + type: array + description: Holds list of input validation errors + items: + $ref: '#/components/schemas/ErrorDetail' + returnCode: + type: string + description: Error type code + returnDescription: + type: string + description: Error type description + title: ErrorResponse + Items: + type: object + properties: + name: + type: string + description: The name of the item being purchased by the PSU. + minLength: 1 + maxLength: 35 + description: + type: string + description: Brief description of the item being purchased by the PSU + minLength: 1 + maxLength: 254 + quantity: + type: integer + format: int32 + description: Quantiy of the particular item being purchased by the PSU. + amount: + type: number + description: Amount of payment in the specified currency at the specified rate. + minimum: -999999999999.99 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + title: Items + MultiAuthorisation: + type: object + description: The multiple authorisation flow response from the ASPSP. + properties: + status: + description: Specifies the status of the authorisation flow in code form. + type: string + enum: + - AUTHORISED + - AWAITING_FURTHER_AUTHORISATION + - REJECTED + numberRequired: + description: >- + Number of authorisations required for payment order (total required + at the start of the multi authorisation journey). + type: integer + format: int32 + numberReceived: + description: Number of authorisations received. + type: integer + format: int32 + lastUpdateDateTime: + description: Last date and time at the authorisation flow was updated. + type: string + format: date-time + expirationDateTime: + description: >- + Date and time at which the requested authorisation flow must be + completed. + type: string + format: date-time + required: + - status + OrderDetails: + type: object + description: Holds Order Details related to payment amount. + properties: + items: + type: array + description: Holds list of the line items to be returned to the TPP UI + items: + $ref: '#/components/schemas/Items' + title: OrderDetails + PaginatedListPaymentResponseEnvelope: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + uri: + type: string + description: resource Uri + PaginatedListBankFamiliesResponseEnvelope: + type: object + required: + - uri + - data + - page + - sort + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/BankFamilyResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: PaginatedListBankFamiliesResponseEnvelope + PaymentRefundListResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/PaymentRefundResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri. + data: + type: array + items: + $ref: '#/components/schemas/PaymentHistoryEvent' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryEvent: + type: object + required: + - createDateTime + - status + properties: + id: + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + uri: + type: string + status: + type: string + description: paymentStatus + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + createDateTime: + type: string + format: date-time + description: >- + Date and time when a status has changed. An example is below: + 2019-02-28T10:43:07+00:00 + PaymentRequest: + type: object + required: + - amount + - countryCode + - currency + properties: + amount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + minLength: 1 + maxLength: 35 + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: >- + Date the payment should be executed on. Defaults to current + processing date. Future date allowed only for EUR payments processed + by French Banks under STET standard. + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + title: PaymentRequest + example: + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + endToEndIdentification: endToEndIdentification123 + remittanceInformation: + reference: reference123 + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + debtorAccount: + identification: 60161331926819 + schemeName: SortCodeAccountNumber + PaymentResponse: + type: object + required: + - amount + - countryCode + - currency + - id + - merchantId + - organisationId + - creationDateTime + - uri + - status + - paymentTimeout + properties: + id: + type: string + description: id, this is used to get updates on the payment + userInterfacePaymentId: + type: string + description: >- + userInterfacePaymentId, this is used in UI flows to get updates on + the payment + uri: + type: string + description: Location of the resource + merchantId: + type: string + description: The ID of the merchant associated to the payment + organisationId: + type: string + description: Id of the Merchant Organisation. + creationDateTime: + type: string + format: date-time + description: Creation date and time for the payment resource + status: + type: string + description: paymentStatus, the latest payment status + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + amount: + type: number + description: Amount of the payment + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + aspspAuthUrl: + type: string + description: >- + The ASPSP url to redirect the PSU to for authorization of the + payment + minLength: 1 + maxLength: 2048 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: Date that the payment has been requested to be executed on. + debtorBankName: + type: string + description: The name of the debtor bank + minLength: 1 + maxLength: 70 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + cutOffDateTime: + type: string + format: date-time + description: Specified cut-off date and time for the payment consent. + expectedExecutionDateTime: + type: string + format: date-time + description: Expected execution date and time for the payment resource. + expectedSettlementDateTime: + type: string + format: date-time + description: Expected settlement date and time for the payment resource. + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + multiAuthorisation: + $ref: '#/components/schemas/MultiAuthorisation' + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentResponse + PaymentResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentResponse' + title: PaymentResponseEnvelope + example: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: 0 + amount: -5 + - name: Total + description: null + quantity: 0 + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + psuId: 12345678-UE3212 + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + PaymentRefundRequest: + type: object + required: + - refundAmount + - currency + properties: + refundAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + compensationAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency, must match original payment currency + enum: + - GBP + - EUR + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. Note that the field length + is limited to 31 characters for payments in GBP currency, processed + via UK Faster Payments scheme + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + PaymentRefundResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentRefundResponse' + title: refundPaymentResponseEnvelope + example: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + reference: reference + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + unstructured: unstructuredRemittanceInfo + PaymentRefundResponse: + type: object + required: + - refundAmount + - currency + - id + - uri + - reference + - status + - creationDateTime + properties: + id: + type: string + description: id, this is used to get updates on the payment + uri: + type: string + description: Holds resource uri. + creationDateTime: + type: string + format: date-time + description: Date and time when refund was created. + lastUpdateDateTime: + type: string + format: date-time + description: Date and time when refund was last updated. + status: + type: string + description: paymentStatus, the latest payment status + enum: + - REFUND_PENDING + - REFUND_COMPLETE + - REFUND_REJECTED + - UNKNOWN + refundAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + compensationAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + maxLength: 35 + errorDetails: + type: array + description: List of error codes associated to the refund request + items: + type: string + description: Payment error code(s) + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentRefundResponse + RemittanceInformation: + type: object + properties: + reference: + type: string + description: >- + Unique reference, as assigned by the creditor, to unambiguously + refer to the payment transaction. Usage: If available, the + initiating party should provide this reference in the structured + remittance information, to enable reconciliation by the creditor + upon receipt of the amount of money. If the business context + requires the use of a creditor reference or a payment remit + identification, and only one identifier can be passed through the + end-to-end chain, the creditor's reference or payment remittance + identification should be quoted in the end-to-end transaction + identification. OB: The Faster Payments Scheme can only accept 18 + characters for the ReferenceInformation field - which is where this + ISO field will be mapped. + minLength: 1 + maxLength: 35 + unstructured: + type: string + description: >- + Information supplied to enable the matching/reconciliation of an + entry with the items that the payment is intended to settle, such as + commercial invoices in an accounts receivable system, in an + unstructured form. 120 characters are available for client use. 20 + characters are reserved for internal use. + minLength: 1 + maxLength: 140 + title: RemittanceInformation + description: >- + Information supplied to enable the matching of an entry with the items + that the transfer is intended to settle, such as commercial invoices in + an accounts receivable system. + RestResponsePaginationDetails: + type: object + properties: + pageNumber: + type: integer + format: int32 + description: Page Number + pageSize: + type: integer + format: int32 + description: Page Size + totalElements: + type: integer + format: int32 + description: Total Number of elements returned. Response parameter only + totalPages: + type: integer + format: int32 + description: Total Number of pages returned. Response parameter only + Risk: + type: object + properties: + paymentContextCode: + type: string + description: Specifies the payment context. + enum: + - BillingGoodsAndServicesInAdvance + - BillingGoodsAndServicesInArrears + - PispPayee + - EcommerceMerchantInitiatedPayment + - FaceToFacePointOfSale + - TransferToSelf + - TransferToThirdParty + - BillPayment + - EcommerceGoods + - EcommerceServices + - Other + - PartyToParty + merchantCategoryCode: + type: string + description: >- + Category code conforms to ISO 18245, related to the type of services + or goods the merchant provides for the transaction. + minLength: 3 + maxLength: 4 + merchantCustomerIdentification: + type: string + description: The unique customer identifier of the PSU with the merchant. + minLength: 1 + maxLength: 70 + deliveryAddress: + $ref: '#/components/schemas/DeliveryAddress' + contractPresentIndicator: + type: boolean + description: Indicates if Payee has a contractual relationship with the PISP. + paymentPurposeCode: + type: string + description: >- + Category code, related to the type of services or goods that + corresponds to the underlying purpose of the payment that conforms + to Recommended UK Purpose Code in ISO 20022 Payment Messaging List + minLength: 3 + maxLength: 4 + beneficiaryPrepopulatedIndicator: + type: boolean + description: >- + Indicates if PISP has immutably prepopulated payment details in for + the PSU. + beneficiaryAccountType: + type: string + description: Specifies the extended type of account. + enum: + - Business + - BusinessSavingsAccount + - Charity + - Collection + - Corporate + - Ewallet + - Government + - Investment + - ISA + - JointPersonal + - Pension + - Personal + - PersonalSavingsAccount + - Premier + - Wealth + title: Risk + description: Risk + RestResponseLink: + type: object + properties: + id: + type: string + description: Encoded Id of linked resource + resourceType: + type: string + description: |- + Available link types, + - settings + - refunds + - history + - audit + - bankFamily + uri: + type: string + description: Resource URI + SetBankPaymentRequest: + type: object + required: + - bankId + properties: + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + example: + bankId: ybo8zd8j2q + psuId: 12345678-UE3212 + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs/nuapay-fixed-spec.yaml b/sdks/db/fixed-specs/nuapay-fixed-spec.yaml new file mode 100644 index 0000000000..1f9867b36c --- /dev/null +++ b/sdks/db/fixed-specs/nuapay-fixed-spec.yaml @@ -0,0 +1,3554 @@ +openapi: 3.0.0 +info: + title: Nuapay TPP API Specification + description: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints + version: 1.16.1 + contact: + name: Nuapay + email: api.support@nuapay.com + license: + name: Nuapay + url: https://sentenial.com + x-logo: + backgroundColor: '#FFFFFF' + url: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg +servers: + - url: https://api.nuapay.com/tpp +tags: + - description: |- + Payment initiation endpoints allow a merchant to, + - Initiate payment requests in Open Banking + - Retrieve the status of a previously initiated payment request + name: PISP Service + - description: |- + Bank endpoints allow a merchant to, + - Retrieve a list of banks that support the Open Banking scheme + - View details of a specific bank that supports the Open Banking scheme + name: Bank Service +paths: + /bankfamilies: + get: + tags: + - Bank Service + summary: View Bank Families + operationId: BankService_viewBankFamilies + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + description: Get list of Bank Families + parameters: + - description: Page number + name: pagenumber + in: query + required: false + schema: + type: integer + format: int32 + default: 1 + - description: Page size + name: pagesize + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListBankFamiliesResponseEnvelope' + examples: + response: + value: + uri: /bankFamilies + data: + - id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + - id: 1xf48y2zds + uri: /bankFamilies/1xf48y2zds + name: Nuapay UK + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + page: + pageNumber: 1 + pageSize: 10 + totalElements: 2 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Page is invalid + code: T0001 + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /bankfamilies/{bankfamilyId}: + get: + tags: + - Bank Service + summary: View Bank Family + operationId: BankService_getBankFamily + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + description: View Bank Family Details + parameters: + - description: Bank Family id returned by Get Bank Families endpoint. + name: bankfamilyId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BankFamilyResponseEnvelope' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Page is invalid + code: T0001 + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /banks: + get: + tags: + - Bank Service + summary: Retrieve Banks + operationId: BankService_getSupportedBanks + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + description: Get Supported Banks On This TPP + parameters: + - description: >- + CountryCode - ISO country code - indicates where bank is domiciled + (ISO 3166 Alpha-2) + name: country + in: query + required: false + explode: true + schema: + type: array + items: + type: string + - description: >- + Allows to filter the banks that requires debtor account to be + provided when initiating payment. + name: debtoraccountrequired + in: query + required: false + schema: + type: boolean + - description: Page number + name: pagenumber + in: query + required: false + schema: + type: integer + format: int32 + default: 1 + - description: Page size + name: pagesize + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - description: Allows filtering by Bank Family via the Bank Family Id. + name: bankfamilyid + in: query + required: false + schema: + type: string + - description: Allows filtering by Banks without an associated Bank Family. + name: excludebankfamily + in: query + required: false + schema: + type: boolean + - description: >- + Filter the bank list by service provided returns both AISPs and + PISPs, 'AISP' returns only AISPs and 'PISP' returns only PISPs. When + not provided returns all banks regardless of service. + name: services + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - AISP + - PISP + - description: >- + Filter the bank list by payment method. When not provided or false, + returns the full list of banks. When true, the only banks that + supports SEPA Instant Payments are returned. + name: sepainstantreachability + in: query + required: false + schema: + type: boolean + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BanksResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Page is invalid + code: T0001 + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments: + post: + tags: + - PISP Service + summary: Create Payment + operationId: PispService_makePayment + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + description: Create a payment request POST endpoint + parameters: + - description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + name: Idempotency-Key + in: header + x-sentenial: + enriched: 'true' + required: false + schema: + type: string + maxLength: 50 + - description: Client ID of the PSU in the ASPSP client interface. + name: PSU-ID + in: header + required: false + schema: + type: string + - description: The PSU's IP address if the PSU is currently logged in with the TPP. + name: Customer-IP-Address + in: header + required: false + schema: + type: string + maxLength: 50 + requestBody: + description: Create a Payment Request + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequest' + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: null + amount: -5 + - description: null + name: Total + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dwX + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dwX + resourceType: history + uri: /payments/re27gry2dw/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0004 + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Amount has to be greater than 0. + code: T0016 + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + get: + tags: + - PISP Service + summary: List payments + operationId: PispService_listPayments + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_pisp + - PartnerApiKey: [] + description: GET payments list endpoint + parameters: + - description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + name: fromdatetime + in: query + required: false + schema: + type: string + - description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + name: todatetime + in: query + required: false + schema: + type: string + - description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + name: fromamount + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + name: toamount + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - description: >- + This is used in UI flows to get payment details. Applicable for + payments created with REDIRECT, CHECKOUT integration type. + name: userinterfacepaymentid + in: query + required: false + schema: + type: string + - description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + name: paymentstatus + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + - description: Payer name. This parameter supports searching with wildcards + name: payername + in: query + required: false + schema: + type: string + - description: Payer e-mail. This parameter supports searching with wildcards + name: payeremail + in: query + required: false + schema: + type: string + - description: >- + Payment reference will attempt to match endToEndIdentification, + remittanceInformation.reference and + remittanceInformation.unstructured. Will return all matches and + partial matches if using wildcard searches. This parameter supports + searching with wildcards + name: reference + in: query + required: false + schema: + type: string + - description: Currency + name: currency + in: query + required: false + schema: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - description: Page number + name: pagenumber + in: query + required: false + schema: + type: integer + format: int32 + default: 1 + - description: Page size + name: pagesize + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListPaymentResponseEnvelope' + examples: + response: + value: + uri: /payments + data: + - id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: null + amount: -5 + - description: null + name: Total + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorBankName: Test Bank Name + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0002 + field: fromdatetime + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments/callback: + post: + tags: + - PISP Service + summary: Forward Payment Callback + operationId: PispService_forwardPaymentCallback + security: + - MerchantOAuth2: + - openbanking_callback + - PartnerOAuth2: + - openbanking_callback + description: Forward Payment Callback POST endpoint + parameters: + - description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + name: Idempotency-Key + in: header + required: false + x-sentenial: + enriched: 'true' + schema: + type: string + maxLength: 50 + requestBody: + description: Create a Payment Callback Request + content: + application/json: + schema: + $ref: '#/components/schemas/PispServiceForwardPaymentCallbackRequest' + required: true + responses: + '200': + description: Ok + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + ASPSP-SCA-Redirect-URL: + description: Holds url of the ASPSP SCA redirect for pre-authorisation flow. + schema: + type: string + '202': + description: ACCEPTED + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0004 + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: No payment matched based on provided parameters. + code: XXXXX + field: null + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + x-sentenial: + enriched: 'true' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments/{paymentId}: + get: + tags: + - PISP Service + summary: Retrieve Payment + operationId: PispService_getPayment + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + description: GET Payment details endpoint + parameters: + - description: The ID of the payment for which you want to retrieve details + name: paymentId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2qX + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: null + amount: -5 + - description: null + name: Total + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + patch: + tags: + - PISP Service + summary: Retry Payment + operationId: PispService_retryPaymentPatch + security: + - MerchantOAuth2: + - openbanking_pisp + description: Retry Payment + parameters: + - description: The ID of the payment that you want to retry + name: paymentId + in: path + required: true + schema: + type: string + - description: The PSU's IP address if the PSU is currently logged in with the TPP. + name: Customer-IP-Address + in: header + required: false + schema: + type: string + requestBody: + description: Retry Payment Request + content: + application/json: + schema: + $ref: '#/components/schemas/SetBankPaymentRequest' + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2qX + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: null + amount: -5 + - description: null + name: Total + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: lyboxy9bqp + bankName: Nuapay + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0004 + field: bankId + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + - description: The payment can't be processed with provided bank. + code: TBD + field: bankId + - description: Bank cannot be found. + code: TBD + field: bankId + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments/{paymentId}/history: + get: + tags: + - PISP Service + summary: Retrieve Payment History + operationId: PispService_getPaymentHistory + security: + - MerchantOAuth2: + - openbanking_pisp_read + - MerchantApiKey: [] + description: Retrieve Payment History + parameters: + - description: >- + The ID of the payment for which you want to retrieve audit trail + history + name: paymentId + in: path + required: true + schema: + type: string + - description: Page number + name: pagenumber + in: query + required: false + schema: + type: integer + format: int32 + default: 1 + - description: Page size + name: pagesize + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentHistoryResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/history + data: + - status: PENDING + createDateTime: '2019-02-28T10:43:07+00:00' + - status: PENDING_APPROVAL + createDateTime: '2019-02-28T10:44:07+01:00' + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Page Number is invalid + code: T0001 + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments/{paymentId}/refunds: + post: + tags: + - PISP Service + summary: Refund Payment + operationId: PispService_refundPayment + security: + - MerchantOAuth2: + - openbanking_refund + - MerchantApiKey: [] + description: Refund a payment using POST + parameters: + - description: The ID of the payment which you want to refund + name: paymentId + in: path + required: true + schema: + type: string + - description: >- + Every request will be processed only once per x-idempotency-key. + The Idempotency Key will be valid for 24 hours. + name: Idempotency-Key + x-sentenial: + enriched: true + in: header + required: false + schema: + type: string + maxLength: 50 + requestBody: + description: Refund an exising payment + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundRequest' + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0004 + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Amount has to be greater than 0. + code: T0016 + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + get: + tags: + - PISP Service + summary: List Payment Refunds + operationId: PispService_getPaymentRefunds + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + description: List refunds using GET + parameters: + - description: The ID of the payment for which you want to list refunds + name: paymentId + in: path + required: true + schema: + type: string + - description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + name: fromcreationdatetime + in: query + required: false + schema: + type: string + - description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + name: tocreationdatetime + in: query + required: false + schema: + type: string + - description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + name: fromrefundamount + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + name: torefundamount + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + name: refundstatus + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - ALL + - REFUND_REJECTED + - REFUND_COMPLETE + - REFUND_PENDING + - description: Page number + name: pagenumber + in: query + required: false + schema: + type: integer + format: int32 + default: 1 + - description: Page size + name: pagesize + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundListResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/ + data: + - id: azo4kal13bX + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Field is invalid + code: T0004 + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + description: Amount has to be greater than 0. + code: T0016 + field: amount + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + /payments/{paymentId}/refunds/{refundId}: + get: + tags: + - PISP Service + summary: Retrieve Refund + operationId: PispService_getRefund + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + description: GET Refund details endpoint + parameters: + - description: The ID of the payment for which you want to retrieve details + name: paymentId + in: path + required: true + schema: + type: string + - description: The ID of the refund for which you want to retrieve details + name: refundId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13bX + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_REJECTED + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: + - '5008' + - '5016' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null +components: + securitySchemes: + MerchantApiKey: + type: http + scheme: basic + PartnerApiKey: + type: http + scheme: basic + MerchantOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_refund: Open Banking Refund access + openbanking_refund_read: Read Open Banking Refunds access + openbanking_callback: Open Banking callback forwarding access + PartnerOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_aisp: Account Information Service Provider access + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_callback: Open Banking callback forwarding access + schemas: + Address: + description: Postal Address Details. + type: object + properties: + streetName: + description: Name of a street or thoroughfare. + type: string + minLength: 1 + maxLength: 70 + buildingNumber: + description: Number that identifies the position of a building on a street. + type: string + minLength: 1 + maxLength: 16 + postCode: + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + type: string + minLength: 1 + maxLength: 16 + townName: + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + type: string + minLength: 1 + maxLength: 35 + country: + description: ISO 3166 ALPHA2 country code. + type: string + pattern: ^[A-Z]{2,2}$ + addressLine: + description: >- + Information that locates and identifies a specific address, as + defined by postal services, presented in free format text. + items: + type: string + minLength: 1 + maxLength: 70 + type: array + minItems: 0 + maxItems: 2 + Bank: + title: Bank + type: object + required: + - id + - uri + - logo + - name + - supportedCurrencies + - country + - countries + - debtorAccountRequired + - services + properties: + id: + description: The Banks Id + type: string + uri: + description: Uri to Bank Resource + type: string + name: + description: The Banks Name + type: string + logo: + description: The Banks Logo http location + type: string + supportedCurrencies: + description: Holds list of payment currencies that the bank can process. + type: array + items: + description: ISO currency code. + type: string + country: + description: >- + The main country the bank operates. ISO country code - indicates + where the Bank is located (ISO 3166 Alpha-2) + type: string + countries: + description: Holds the list of countries the bank operates. + type: array + items: + description: >- + ISO country code - indicates where the Bank is located (ISO 3166 + Alpha-2) + type: string + debtorAccountRequired: + description: TRUE if debtorAccount is required by Aspsp. + type: boolean + lastUpdateDateTime: + description: Last date and time when bank's settings were updated. + type: string + format: date-time + bankMetaData: + $ref: '#/components/schemas/BankMetaData' + services: + description: >- + AISP if bank provides only AISP services and PISP if bank provides + only PISP services. + type: array + items: + description: Either AISP or PISP. + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + BankMetaData: + description: >- + Array containing additional bank meta data, includes parameters that are + either required, optional or not supported at a specific bank + type: object + properties: + debtorAddress: + description: >- + Indicates if 'Debtor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + type: string + creditorAddress: + description: >- + Indicates if 'Creditor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + type: string + remittanceInformation: + description: >- + Indicates if 'Remittance Information' is required by the bank. + Returns either, 'required', 'optional' or 'notSupported'. + type: string + psuId: + description: >- + Indicates if 'PSU-ID' is required by the bank. Returns either, + 'required', 'optional' or 'notSupported'. + type: string + customerIpAddress: + description: >- + Indicates if 'Customer IP Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + type: string + sepaInstantReachability: + description: Indicates if SEPA instant payments are supported by the bank. + type: boolean + minimumPaymentValue: + description: >- + Indicates the minimum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + type: number + maximumPaymentValue: + description: >- + Indicates the maximum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + type: number + BanksResponse: + title: BanksResponse + type: object + required: + - data + - uri + - page + - sort + properties: + uri: + description: Holds queried resource uri. + type: string + data: + description: Banks collection + type: array + items: + $ref: '#/components/schemas/Bank' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + example: + uri: /banks + data: + - id: 8ow24y2pdx + uri: /banks/8ow24y2pdx + name: Nuapay + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + - EUR + country: GB + countries: + - GB + - IE + debtorAccountRequired: false + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + bankMetaData: + debtorAddress: required + creditorAddress: required + remittanceInformation: optional + psuId: notSupported + customerIpAddress: notSupported + sepaInstantReachability: true + minimumPaymentValue: 0.01 + maximumPaymentValue: 9999.99 + services: + - AISP + - PISP + links: + - id: 8ww64y0phxX + resourceType: bankFamily + uri: /bankFamilies/8ww64y0phx + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + BankFamilyResponse: + title: BankFamilyResponse + type: object + required: + - id + - uri + - name + - logo + - supportedCurrencies + properties: + id: + description: The Banks Family Id, used to group branches belong to the same Bank + type: string + uri: + description: Uri to Bank Family Resource + type: string + name: + description: The Bank Family Name + type: string + logo: + description: The Bank Family Logo http location + type: string + supportedCurrencies: + description: Holds list of payment currencies that the Bank Family can process. + type: array + items: + description: ISO currency code. + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + BankFamilyResponseEnvelope: + title: BankFamilyResponseEnvelope + type: object + required: + - data + - uri + properties: + uri: + description: Holds queried resource uri. + type: string + data: + description: Bank Family collection + type: array + items: + $ref: '#/components/schemas/BankFamilyResponse' + example: + uri: /bankFamily/ + data: + id: 8ww64y0phxX + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + CreditorAccount: + title: CreditorAccount + description: >- + Unambiguous identification of the account of the creditor to which a + credit entry will be made as a result of the transaction. + type: object + required: + - identification + - schemeName + properties: + identification: + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + type: string + minLength: 1 + maxLength: 34 + name: + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage - The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + type: string + minLength: 1 + maxLength: 70 + schemeName: + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + type: string + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + type: string + minLength: 1 + maxLength: 34 + DebtorAccount: + title: DebtorAccount + description: >- + Unambiguous identification of the account of the debtor to which a debit + entry will be made as a result of the transaction. + type: object + required: + - identification + - schemeName + properties: + identification: + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + type: string + minLength: 1 + maxLength: 34 + name: + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage: The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + type: string + minLength: 1 + maxLength: 70 + schemeName: + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + type: string + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + type: string + minLength: 1 + maxLength: 34 + DeliveryAddress: + title: DeliveryAddress + description: >- + Information that locates and identifies a specific address, as defined + by postal services or in free format text. + type: object + required: + - country + - townName + properties: + addressLine: + description: >- + Information that locates and identifies a specific address, as + defined by postal services, that is presented in free format text. + type: array + items: + type: string + minLength: 1 + maxLength: 70 + maxItems: 2 + minItems: 0 + streetName: + description: Name of a street or thoroughfare. + type: string + minLength: 1 + maxLength: 70 + buildingNumber: + description: Number that identifies the position of a building on a street. + type: string + minLength: 1 + maxLength: 16 + postCode: + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + type: string + minLength: 1 + maxLength: 16 + townName: + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + type: string + minLength: 1 + maxLength: 35 + countrySubDivision: + description: >- + Identifies a subdivision of a country, for instance state, region, + county. + type: array + items: + type: string + minLength: 1 + maxLength: 35 + maxItems: 2 + minItems: 0 + country: + description: Nation with its own government, occupying a particular territory. + type: string + pattern: ^[A-Z]{2,2}$ + ErrorDetail: + title: ErrorDetail + type: object + properties: + description: + description: Error description + type: string + code: + description: Error code + type: string + field: + description: JSON path to request object property the error is related to + type: string + ErrorResponse: + title: ErrorResponse + type: object + properties: + details: + description: Holds list of input validation errors + type: array + items: + $ref: '#/components/schemas/ErrorDetail' + returnCode: + description: Error type code + type: string + returnDescription: + description: Error type description + type: string + Items: + title: Items + type: object + properties: + description: + description: Brief description of the item being purchased by the PSU + type: string + minLength: 1 + maxLength: 254 + name: + description: The name of the item being purchased by the PSU. + type: string + minLength: 1 + maxLength: 35 + quantity: + description: Quantiy of the particular item being purchased by the PSU. + type: integer + format: int32 + amount: + description: Amount of payment in the specified currency at the specified rate. + type: number + minimum: -999999999999.99 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + MultiAuthorisation: + description: The multiple authorisation flow response from the ASPSP. + type: object + properties: + status: + description: Specifies the status of the authorisation flow in code form. + type: string + enum: + - AUTHORISED + - AWAITING_FURTHER_AUTHORISATION + - REJECTED + numberRequired: + description: >- + Number of authorisations required for payment order (total required + at the start of the multi authorisation journey). + type: integer + format: int32 + numberReceived: + description: Number of authorisations received. + type: integer + format: int32 + lastUpdateDateTime: + description: Last date and time at the authorisation flow was updated. + type: string + format: date-time + expirationDateTime: + description: >- + Date and time at which the requested authorisation flow must be + completed. + type: string + format: date-time + required: + - status + OrderDetails: + title: OrderDetails + description: Holds Order Details related to payment amount. + type: object + properties: + items: + description: Holds list of the line items to be returned to the TPP UI + type: array + items: + $ref: '#/components/schemas/Items' + PaginatedListPaymentResponseEnvelope: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + uri: + description: resource Uri + type: string + PaginatedListBankFamiliesResponseEnvelope: + title: PaginatedListBankFamiliesResponseEnvelope + type: object + required: + - uri + - data + - page + - sort + properties: + uri: + description: resource Uri + type: string + data: + type: array + items: + $ref: '#/components/schemas/BankFamilyResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentRefundListResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + description: resource Uri + type: string + data: + type: array + items: + $ref: '#/components/schemas/PaymentRefundResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + description: resource Uri. + type: string + data: + type: array + items: + $ref: '#/components/schemas/PaymentHistoryEvent' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryEvent: + type: object + required: + - createDateTime + - status + properties: + id: + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + uri: + type: string + status: + description: paymentStatus + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + createDateTime: + description: >- + Date and time when a status has changed. An example is below: + 2019-02-28T10:43:07+00:00 + type: string + format: date-time + PaymentRequest: + title: PaymentRequest + type: object + required: + - amount + - countryCode + - currency + properties: + amount: + description: amount + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + description: transaction currency + type: string + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + type: string + pattern: ^[A-Z]{2}$ + language: + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + type: string + pattern: ^[a-z]{2}$ + email: + description: Email address where payment status notifications will be sent to + type: string + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + type: string + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + type: string + minLength: 1 + maxLength: 255 + bankId: + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + type: string + minLength: 1 + maxLength: 10 + endToEndIdentification: + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + type: string + minLength: 1 + maxLength: 35 + paymentTimeout: + description: A time in which the PSU can authorise the payment in seconds + type: integer + format: int32 + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + description: >- + Date the payment should be executed on. Defaults to current + processing date. Future date allowed only for EUR payments processed + by French Banks under STET standard. + type: string + format: date + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + type: string + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + description: Sets the Merchant's display name on the payment UI. + type: string + minLength: 1 + maxLength: 70 + example: + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + endToEndIdentification: endToEndIdentification123 + remittanceInformation: + reference: reference123 + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: null + amount: -5 + - description: null + name: Total + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + debtorAccount: + identification: 60161331926819 + schemeName: SortCodeAccountNumber + PaymentResponse: + title: PaymentResponse + type: object + required: + - amount + - countryCode + - currency + - id + - merchantId + - organisationId + - creationDateTime + - uri + - status + - paymentTimeout + properties: + id: + description: id, this is used to get updates on the payment + type: string + userInterfacePaymentId: + description: >- + userInterfacePaymentId, this is used in UI flows to get updates on + the payment + type: string + uri: + description: Location of the resource + type: string + merchantId: + description: The ID of the merchant associated to the payment + type: string + organisationId: + description: Id of the Merchant Organisation. + type: string + creationDateTime: + description: Creation date and time for the payment resource + type: string + format: date-time + status: + description: paymentStatus, the latest payment status + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + amount: + description: Amount of the payment + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + description: Transaction currency + type: string + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + type: string + pattern: ^[A-Z]{2}$ + language: + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + type: string + pattern: ^[a-z]{2}$ + email: + description: Email address where payment status notifications will be sent to + type: string + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + type: string + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + type: string + minLength: 1 + maxLength: 255 + bankId: + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + type: string + minLength: 1 + maxLength: 10 + aspspAuthUrl: + description: >- + The ASPSP url to redirect the PSU to for authorization of the + payment + type: string + minLength: 1 + maxLength: 2048 + endToEndIdentification: + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction + type: string + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + description: Date that the payment has been requested to be executed on. + type: string + format: date + debtorBankName: + description: The name of the debtor bank + type: string + minLength: 1 + maxLength: 70 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + type: string + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + description: Sets the Merchant's display name on the payment UI. + type: string + minLength: 1 + maxLength: 70 + cutOffDateTime: + description: Specified cut-off date and time for the payment consent. + type: string + format: date-time + expectedExecutionDateTime: + description: Expected execution date and time for the payment resource. + type: string + format: date-time + expectedSettlementDateTime: + description: Expected settlement date and time for the payment resource. + type: string + format: date-time + paymentTimeout: + description: A time in which the PSU can authorise the payment in seconds + type: integer + format: int32 + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + psuId: + description: Client ID of the PSU in the ASPSP client interface. + type: string + minLength: 1 + maxLength: 60 + multiAuthorisation: + $ref: '#/components/schemas/MultiAuthorisation' + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + PaymentResponseEnvelope: + title: PaymentResponseEnvelope + type: object + required: + - data + - uri + properties: + uri: + description: Holds resource uri. + type: string + data: + $ref: '#/components/schemas/PaymentResponse' + example: + uri: /payments/re27gry2dw + data: + id: re27gry2dwX + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Outbound + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 50 + - description: Dublin(DUB) to London(LCY) - Adult Fare + name: Flights Return + quantity: 2 + amount: 30 + - description: null + name: Discounts + quantity: 0 + amount: -5 + - description: null + name: Total + quantity: 0 + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + psuId: 12345678-UE3212 + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dwX + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dwX + resourceType: history + uri: /payments/re27gry2dw/history + PaymentRefundRequest: + type: object + required: + - refundAmount + - currency + properties: + refundAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + compensationAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + description: Transaction currency, must match original payment currency + type: string + enum: + - GBP + - EUR + endToEndIdentification: + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. Note that the field length + is limited to 31 characters for payments in GBP currency, processed + via UK Faster Payments scheme + type: string + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + PaymentRefundResponseEnvelope: + title: refundPaymentResponseEnvelope + type: object + required: + - data + - uri + properties: + uri: + description: Holds resource uri. + type: string + data: + $ref: '#/components/schemas/PaymentRefundResponse' + example: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13bX + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + reference: reference + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + unstructured: unstructuredRemittanceInfo + PaymentRefundResponse: + title: PaymentRefundResponse + type: object + required: + - refundAmount + - currency + - id + - uri + - reference + - status + - creationDateTime + properties: + id: + description: id, this is used to get updates on the payment + type: string + uri: + description: Holds resource uri. + type: string + creationDateTime: + description: Date and time when refund was created. + type: string + format: date-time + lastUpdateDateTime: + description: Date and time when refund was last updated. + type: string + format: date-time + status: + description: paymentStatus, the latest payment status + type: string + enum: + - REFUND_PENDING + - REFUND_COMPLETE + - REFUND_REJECTED + - UNKNOWN + refundAmount: + description: amount + type: number + minimum: 0.01 + maximum: 999999999999.99 + compensationAmount: + description: amount + type: number + minimum: 0.01 + maximum: 999999999999.99 + currency: + description: transaction currency + type: string + enum: + - GBP + - EUR + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + endToEndIdentification: + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + type: string + maxLength: 35 + errorDetails: + description: List of error codes associated to the refund request + type: array + items: + description: Payment error code(s) + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + RemittanceInformation: + title: RemittanceInformation + description: >- + Information supplied to enable the matching of an entry with the items + that the transfer is intended to settle, such as commercial invoices in + an accounts receivable system. + type: object + properties: + reference: + description: >- + Unique reference, as assigned by the creditor, to unambiguously + refer to the payment transaction. Usage: If available, the + initiating party should provide this reference in the structured + remittance information, to enable reconciliation by the creditor + upon receipt of the amount of money. If the business context + requires the use of a creditor reference or a payment remit + identification, and only one identifier can be passed through the + end-to-end chain, the creditor's reference or payment remittance + identification should be quoted in the end-to-end transaction + identification. OB: The Faster Payments Scheme can only accept 18 + characters for the ReferenceInformation field - which is where this + ISO field will be mapped. + type: string + minLength: 1 + maxLength: 35 + unstructured: + description: >- + Information supplied to enable the matching/reconciliation of an + entry with the items that the payment is intended to settle, such as + commercial invoices in an accounts receivable system, in an + unstructured form. 120 characters are available for client use. 20 + characters are reserved for internal use. + type: string + minLength: 1 + maxLength: 140 + RestResponsePaginationDetails: + type: object + properties: + pageNumber: + description: Page Number + type: integer + format: int32 + pageSize: + description: Page Size + type: integer + format: int32 + totalElements: + description: Total Number of elements returned. Response parameter only + type: integer + format: int32 + totalPages: + description: Total Number of pages returned. Response parameter only + type: integer + format: int32 + Risk: + title: Risk + description: Risk + type: object + properties: + paymentContextCode: + description: Specifies the payment context. + type: string + enum: + - BillingGoodsAndServicesInAdvance + - BillingGoodsAndServicesInArrears + - PispPayee + - EcommerceMerchantInitiatedPayment + - FaceToFacePointOfSale + - TransferToSelf + - TransferToThirdParty + - BillPayment + - EcommerceGoods + - EcommerceServices + - Other + - PartyToParty + merchantCategoryCode: + description: >- + Category code conforms to ISO 18245, related to the type of services + or goods the merchant provides for the transaction. + type: string + minLength: 3 + maxLength: 4 + merchantCustomerIdentification: + description: The unique customer identifier of the PSU with the merchant. + type: string + minLength: 1 + maxLength: 70 + deliveryAddress: + $ref: '#/components/schemas/DeliveryAddress' + contractPresentIndicator: + description: Indicates if Payee has a contractual relationship with the PISP. + type: boolean + paymentPurposeCode: + description: >- + Category code, related to the type of services or goods that + corresponds to the underlying purpose of the payment that conforms + to Recommended UK Purpose Code in ISO 20022 Payment Messaging List + type: string + minLength: 3 + maxLength: 4 + beneficiaryPrepopulatedIndicator: + description: >- + Indicates if PISP has immutably prepopulated payment details in for + the PSU. + type: boolean + beneficiaryAccountType: + description: Specifies the extended type of account. + type: string + enum: + - Business + - BusinessSavingsAccount + - Charity + - Collection + - Corporate + - Ewallet + - Government + - Investment + - ISA + - JointPersonal + - Pension + - Personal + - PersonalSavingsAccount + - Premier + - Wealth + RestResponseLink: + type: object + properties: + id: + description: Encoded Id of linked resource + type: string + resourceType: + description: |- + Available link types, + - settings + - refunds + - history + - audit + - bankFamily + type: string + uri: + description: Resource URI + type: string + SetBankPaymentRequest: + type: object + required: + - bankId + properties: + bankId: + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + type: string + minLength: 1 + maxLength: 10 + psuId: + description: Client ID of the PSU in the ASPSP client interface. + type: string + minLength: 1 + maxLength: 60 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + example: + bankId: ybo8zd8j2q + psuId: 12345678-UE3212 + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + PispServiceForwardPaymentCallbackRequest: + type: object + additionalProperties: + type: string + example: + code: KaIpmx + state: 3410742c-304d-4311-a54f-323f1f20f96f + id_token: >- + eyJraWQiOiJOdWFwYXlCYW5rX0tleUlEIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJjZDBlNDkxNC1jNjRlLTQyODQtYTg0ZS0yYzc2NGI3NzU5MWYiLCJhdWQiOiJ0ZXN0IiwiY19oYXNoIjoiU2VWM1ZYU3YyVHNMVXhLdVdLWE9PUSIsImFjciI6WyJ1cm46b3BlbmJhbmtpbmc6cHNkMjpzY2EiXSwic19oYXNoIjoicjNHcm53YjFzNXZYaHRwOU1oYm1zdyIsIm9wZW5iYW5raW5nX2ludGVudF9pZCI6ImNkMGU0OTE0LWM2NGUtNDI4NC1hODRlLTJjNzY0Yjc3NTkxZiIsImtpZCI6Ik51YXBheUJhbmtfS2V5SUQiLCJpc3MiOiJodHRwczpcL1wvYXBpLmFscGhhbmJhbmsuY29tIiwiZXhwIjoxNTUzMDA4MTkwLCJpYXQiOjE1NTMwMDc1OTAsIm5vbmNlIjoiODJiMTNjMzYtZTIzOC00MDA2LTkzMjQtNDJhZmQ2YjMwOTJlIiwianRpIjoiNGI4ODk3NjQtOWQwMy00YWM1LTg2MDgtOGMzZGU2NzU2N2VkIn0.fRBht6BQtqNxbUKmeoNqzWyFykTVX6zMCLcqvnPt1m665l9a8Zuwa4oaY_-2pULshjwD9yptgRdQ8KbkQ1SddwQacZYwUvzzbE1kV6GwhuwvGNU9TihPvh55eE3nY9kYJywn5m6hgC0x81m1MhMeAikanNZIia7rryB30CKxDMt0sL-5CvnFdyr2_csjuXotekC_weDsY4WNqCu5LfZhVk0IixXNiDXFxxnR9qNOjQ5fTljITWoPQ0G1KYfW3DOs4Nb23oZe8b-RxLebD9R2kBiIWh79oGOg-8RZz36FDNSn5Skt1KAz_c9bv7Vbt-au6VY1_tPdvZ8sgd44M__rZQ diff --git a/sdks/db/generate-repository-description-cache/nuapay.json b/sdks/db/generate-repository-description-cache/nuapay.json new file mode 100644 index 0000000000..1164fa1376 --- /dev/null +++ b/sdks/db/generate-repository-description-cache/nuapay.json @@ -0,0 +1,3 @@ +{ + "Nuapay is a pioneer of Open Banking and the industry's leading Account-2-Account payment environment. We securely process over €42bn every year as an outsourcing provider to many of the world's leading Banks, PSPs and Corporates – we have worked tirelessly to reinvent what's possible from a modern banking and payment solution. Today, we offer partners a fully comprehensive, integrated payment solution that removes all traditional banking inefficiencies and unnecessary costs, saving time, money and resources at every turn. This is banking as it should be.\n\nOur Vision\n\nFor over 20 years, Nuapay has been at the forefront of Account-to-Account payments and the Open Banking movement. Through our market-leading payments and accounts platform, partner ecosystem and focus on quality we've helped thousands of clients (banks, payment providers, software platforms and businesses) deliver innovative, profitable and seamless payment services. Nuapay's flexible, secure approach will cover all your needs, underpinned by our 20 year heritage.\n\nOur Mission\n\nHere at Nuapay we know that perfecting the payments experience brings transformational benefits to customers and the businesses who serve them. We believe Account-to-Account payments and Open Banking can achieve that better than any other option – and are, together, the future of payments.\n\nwww.nuapay.com / @NUAPAY\n\nGet in touch with us here: www.nuapay.com/contact/": "Nuapay is a leading provider in Open Banking, processing over €42bn annually for top global Banks, PSPs, and Corporates. We offer a cutting-edge, integrated payment solution, eliminating inefficiencies and costs to redefine modern banking. Nuapay's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/intermediate-fixed-specs/nuapay/openapi.yaml b/sdks/db/intermediate-fixed-specs/nuapay/openapi.yaml new file mode 100644 index 0000000000..3ab31c1d8d --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/nuapay/openapi.yaml @@ -0,0 +1,3552 @@ +openapi: 3.0.0 +info: + description: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints + version: 1.16.1 + title: Nuapay TPP API Specification + contact: + name: Nuapay + email: api.support@nuapay.com + license: + name: Nuapay + url: https://sentenial.com + x-logo: + backgroundColor: '#FFFFFF' + url: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg +tags: + - name: Bank Service + description: |- + Bank endpoints allow a merchant to, + - Retrieve a list of banks that support the Open Banking scheme + - View details of a specific bank that supports the Open Banking scheme + - name: PISP Service + description: |- + Payment initiation endpoints allow a merchant to, + - Initiate payment requests in Open Banking + - Retrieve the status of a previously initiated payment request +paths: + /bankfamilies: + get: + tags: + - Bank Service + summary: View Bank Families + description: Get list of Bank Families + operationId: getBankFamiliesUsingGET + parameters: + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListBankFamiliesResponseEnvelope' + examples: + response: + value: + uri: /bankFamilies + data: + - id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + - id: 1xf48y2zds + uri: /bankFamilies/1xf48y2zds + name: Nuapay UK + logo: >- + https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + page: + pageNumber: 1 + pageSize: 10 + totalElements: 2 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /bankfamilies/{bankfamilyId}: + get: + tags: + - Bank Service + summary: View Bank Family + description: View Bank Family Details + operationId: getBankFamilyUsingGET + parameters: + - name: bankfamilyId + in: path + description: Bank Family id returned by Get Bank Families endpoint. + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BankFamilyResponseEnvelope' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /banks: + get: + tags: + - Bank Service + summary: Retrieve Banks + description: Get Supported Banks On This TPP + operationId: getBanksUsingGET + parameters: + - name: country + in: query + required: false + description: >- + CountryCode - ISO country code - indicates where bank is domiciled + (ISO 3166 Alpha-2) + explode: true + schema: + type: array + items: + type: string + - name: debtoraccountrequired + in: query + required: false + description: >- + Allows to filter the banks that requires debtor account to be + provided when initiating payment. + schema: + type: boolean + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + - name: supportedcurrencies + in: query + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: bankfamilyid + in: query + description: Allows filtering by Bank Family via the Bank Family Id. + required: false + schema: + type: string + - name: excludebankfamily + in: query + description: Allows filtering by Banks without an associated Bank Family. + required: false + schema: + type: boolean + - name: services + in: query + description: >- + Filter the bank list by service provided returns both AISPs and + PISPs, 'AISP' returns only AISPs and 'PISP' returns only PISPs. When + not provided returns all banks regardless of service. + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - AISP + - PISP + - name: sepainstantreachability + in: query + description: >- + Filter the bank list by payment method. When not provided or false, + returns the full list of banks. When true, the only banks that + supports SEPA Instant Payments are returned. + required: false + schema: + type: boolean + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/BanksResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_aisp + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_aisp + - openbanking_pisp + - PartnerApiKey: [] + /payments: + post: + tags: + - PISP Service + summary: Create Payment + description: Create a payment request POST endpoint + operationId: createPaymentUsingPOST + parameters: + - name: Idempotency-Key + in: header + x-sentenial: + enriched: 'true' + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + - name: PSU-ID + in: header + description: Client ID of the PSU in the ASPSP client interface. + required: false + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequest' + description: Create a Payment Request + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List payments + description: GET payments list endpoint + operationId: getPaymentListUsingGet + parameters: + - name: fromdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: todatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum date from/to date range is 30 days. If neither from/to date + is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: toamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: userinterfacepaymentid + in: query + description: >- + This is used in UI flows to get payment details. Applicable for + payments created with REDIRECT, CHECKOUT integration type. + required: false + schema: + type: string + - name: paymentstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + - name: payername + in: query + description: Payer name. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: payeremail + in: query + description: Payer e-mail. This parameter supports searching with wildcards + required: false + schema: + type: string + - name: reference + in: query + description: >- + Payment reference will attempt to match endToEndIdentification, + remittanceInformation.reference and + remittanceInformation.unstructured. Will return all matches and + partial matches if using wildcard searches. This parameter supports + searching with wildcards + required: false + schema: + type: string + - name: currency + in: query + description: Currency + required: false + schema: + type: string + enum: + - EUR + - GBP + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListPaymentResponseEnvelope' + examples: + response: + value: + uri: /payments + data: + - id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorBankName: Test Bank Name + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0002 + description: Field is invalid + field: fromdatetime + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + - PartnerOAuth2: + - openbanking_pisp + - PartnerApiKey: [] + /payments/callback: + post: + tags: + - PISP Service + summary: Forward Payment Callback + description: Forward Payment Callback POST endpoint + operationId: forwardPaymentCallbackPOST + parameters: + - name: Idempotency-Key + in: header + description: >- + Every request will be processed only once per Idempotency-Key. The + Idempotency Key will be valid for 24 hours. + required: false + x-sentenial: + enriched: 'true' + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + example: + code: KaIpmx + state: 3410742c-304d-4311-a54f-323f1f20f96f + id_token: >- + eyJraWQiOiJOdWFwYXlCYW5rX0tleUlEIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJjZDBlNDkxNC1jNjRlLTQyODQtYTg0ZS0yYzc2NGI3NzU5MWYiLCJhdWQiOiJ0ZXN0IiwiY19oYXNoIjoiU2VWM1ZYU3YyVHNMVXhLdVdLWE9PUSIsImFjciI6WyJ1cm46b3BlbmJhbmtpbmc6cHNkMjpzY2EiXSwic19oYXNoIjoicjNHcm53YjFzNXZYaHRwOU1oYm1zdyIsIm9wZW5iYW5raW5nX2ludGVudF9pZCI6ImNkMGU0OTE0LWM2NGUtNDI4NC1hODRlLTJjNzY0Yjc3NTkxZiIsImtpZCI6Ik51YXBheUJhbmtfS2V5SUQiLCJpc3MiOiJodHRwczpcL1wvYXBpLmFscGhhbmJhbmsuY29tIiwiZXhwIjoxNTUzMDA4MTkwLCJpYXQiOjE1NTMwMDc1OTAsIm5vbmNlIjoiODJiMTNjMzYtZTIzOC00MDA2LTkzMjQtNDJhZmQ2YjMwOTJlIiwianRpIjoiNGI4ODk3NjQtOWQwMy00YWM1LTg2MDgtOGMzZGU2NzU2N2VkIn0.fRBht6BQtqNxbUKmeoNqzWyFykTVX6zMCLcqvnPt1m665l9a8Zuwa4oaY_-2pULshjwD9yptgRdQ8KbkQ1SddwQacZYwUvzzbE1kV6GwhuwvGNU9TihPvh55eE3nY9kYJywn5m6hgC0x81m1MhMeAikanNZIia7rryB30CKxDMt0sL-5CvnFdyr2_csjuXotekC_weDsY4WNqCu5LfZhVk0IixXNiDXFxxnR9qNOjQ5fTljITWoPQ0G1KYfW3DOs4Nb23oZe8b-RxLebD9R2kBiIWh79oGOg-8RZz36FDNSn5Skt1KAz_c9bv7Vbt-au6VY1_tPdvZ8sgd44M__rZQ + description: Create a Payment Callback Request + required: true + responses: + '200': + description: Ok + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + ASPSP-SCA-Redirect-URL: + description: Holds url of the ASPSP SCA redirect for pre-authorisation flow. + schema: + type: string + '202': + description: ACCEPTED + headers: + Location: + description: >- + Holds uri of payment that was mapped using provided callback + parameters + schema: + type: string + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: XXXXX + description: No payment matched based on provided parameters. + field: null + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + x-sentenial: + enriched: 'true' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_callback + - PartnerOAuth2: + - openbanking_callback + /payments/{paymentId}: + get: + tags: + - PISP Service + summary: Retrieve Payment + description: GET Payment details endpoint + operationId: getPaymentUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: null + bankName: null + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + - MerchantApiKey: [] + patch: + tags: + - PISP Service + summary: Retry Payment + description: Retry Payment + operationId: setBankIdForPaymentUsingPATCH + parameters: + - name: paymentId + in: path + description: The ID of the payment that you want to retry + required: true + schema: + type: string + - name: Customer-IP-Address + in: header + description: The PSU's IP address if the PSU is currently logged in with the TPP. + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SetBankPaymentRequest' + description: Retry Payment Request + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q + data: + id: ybo8zayk2q + uri: /payments/ybo8zayk2q + merchantId: b0zaq1klpt + creationDateTime: '2019-02-28T10:43:07.00Z' + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + remittanceInformation: + unstructured: The Remittance Information + endToEndIdentification: endToEndIdentification + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: CHECKOUT + merchantPostAuthUrl: null + bankId: lyboxy9bqp + bankName: Nuapay + aspspAuthUrl: null + status: PENDING_APPROVAL + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN + links: + - id: null + resourceType: refunds + uri: /payments/ybo8zayk2q/refunds + - id: null + resourceType: history + uri: /payment/{paymentId}/history + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: bankId + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + - code: TBD + description: The payment can't be processed with provided bank. + field: bankId + - code: TBD + description: Bank cannot be found. + field: bankId + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp + /payments/{paymentId}/history: + get: + tags: + - PISP Service + summary: Retrieve Payment History + description: Retrieve Payment History + operationId: getPaymentHistoryUsingGET + parameters: + - name: paymentId + in: path + description: >- + The ID of the payment for which you want to retrieve audit trail + history + required: true + schema: + type: string + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentHistoryResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/history + data: + - status: PENDING + createDateTime: '2019-02-28T10:43:07+00:00' + - status: PENDING_APPROVAL + createDateTime: '2019-02-28T10:44:07+01:00' + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0001 + description: Page Number is invalid + field: page + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_pisp_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds: + post: + tags: + - PISP Service + summary: Refund Payment + description: Refund a payment using POST + operationId: refundPaymentUsingPOST + parameters: + - name: paymentId + in: path + description: The ID of the payment which you want to refund + required: true + schema: + type: string + - name: Idempotency-Key + x-sentenial: + enriched: true + in: header + description: >- + Every request will be processed only once per x-idempotency-key. + The Idempotency Key will be valid for 24 hours. + required: false + schema: + type: string + maxLength: 50 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundRequest' + description: Refund an exising payment + required: true + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '415': + description: Unsupported Media Type + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund + - MerchantApiKey: [] + get: + tags: + - PISP Service + summary: List Payment Refunds + description: List refunds using GET + operationId: listRefundsUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to list refunds + required: true + schema: + type: string + - name: fromcreationdatetime + in: query + description: >- + Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: tocreationdatetime + in: query + description: >- + Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', + maximum create date from/to create date range is 30 days. If neither + from/to date is provided returns results for the last 30 days. + required: false + schema: + type: string + - name: fromrefundamount + in: query + description: >- + When provided only payments with amount equal or higher than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: torefundamount + in: query + description: >- + When provided only payments with amount equal or smaller than + provided amount will be returned + required: false + schema: + type: number + minimum: 0 + maximum: 999999999.99 + - name: refundstatus + in: query + description: >- + A number of statuses can be queried within a single request by + providing multiple occurences of the parameter. If not provided all + statuses will be returned + required: false + explode: true + schema: + type: array + items: + type: string + enum: + - ALL + - REFUND_REJECTED + - REFUND_COMPLETE + - REFUND_PENDING + - name: pagenumber + in: query + description: Page number + required: false + schema: + type: integer + format: int32 + default: 1 + - name: pagesize + in: query + description: Page size + required: false + schema: + type: integer + format: int32 + default: 20 + responses: + '200': + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundListResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/ + data: + - id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: null + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0004 + description: Field is invalid + field: email + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '422': + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: T0000 + returnDescription: Validation errors occurred. Please see details. + details: + code: T0016 + description: Amount has to be greater than 0. + field: amount + '429': + description: Too Many Requests + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] + /payments/{paymentId}/refunds/{refundId}: + get: + tags: + - PISP Service + summary: Retrieve Refund + description: GET Refund details endpoint + operationId: getRefundUsingGET + parameters: + - name: paymentId + in: path + description: The ID of the payment for which you want to retrieve details + required: true + schema: + type: string + - name: refundId + in: path + description: The ID of the refund for which you want to retrieve details + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRefundResponseEnvelope' + examples: + response: + value: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + status: REFUND_REJECTED + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + reference: reference + unstructured: unstructuredRemittanceInfo + endToEndIdentification: endToEndIdentification + errorDetails: + - '5008' + - '5016' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + '429': + description: Too Many Requests + x-sentenial: + enriched: 'true' + headers: + Retry-After: + description: Number in seconds to wait + schema: + type: integer + format: int32 + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + response: + value: + returnCode: null + returnDescription: null + details: null + security: + - MerchantOAuth2: + - openbanking_refund_read + - MerchantApiKey: [] +servers: + - url: https://api.nuapay.com/tpp +components: + securitySchemes: + MerchantApiKey: + type: http + scheme: basic + PartnerApiKey: + type: http + scheme: basic + MerchantOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_refund: Open Banking Refund access + openbanking_refund_read: Read Open Banking Refunds access + openbanking_callback: Open Banking callback forwarding access + PartnerOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_aisp: Account Information Service Provider access + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_callback: Open Banking callback forwarding access + schemas: + Address: + description: Postal Address Details. + type: object + properties: + streetName: + description: Name of a street or thoroughfare. + type: string + minLength: 1 + maxLength: 70 + buildingNumber: + description: Number that identifies the position of a building on a street. + type: string + minLength: 1 + maxLength: 16 + postCode: + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + type: string + minLength: 1 + maxLength: 16 + townName: + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + type: string + minLength: 1 + maxLength: 35 + country: + description: ISO 3166 ALPHA2 country code. + type: string + pattern: ^[A-Z]{2,2}$ + addressLine: + items: + type: string + minLength: 1 + maxLength: 70 + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, presented in free format text. + minItems: 0 + maxItems: 2 + Bank: + type: object + required: + - id + - uri + - logo + - name + - supportedCurrencies + - country + - countries + - debtorAccountRequired + - services + properties: + id: + type: string + description: The Banks Id + uri: + type: string + description: Uri to Bank Resource + name: + type: string + description: The Banks Name + logo: + type: string + description: The Banks Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the bank can process. + items: + type: string + description: ISO currency code. + country: + type: string + description: >- + The main country the bank operates. ISO country code - indicates + where the Bank is located (ISO 3166 Alpha-2) + countries: + type: array + description: Holds the list of countries the bank operates. + items: + type: string + description: >- + ISO country code - indicates where the Bank is located (ISO 3166 + Alpha-2) + debtorAccountRequired: + type: boolean + description: TRUE if debtorAccount is required by Aspsp. + lastUpdateDateTime: + type: string + format: date-time + description: Last date and time when bank's settings were updated. + bankMetaData: + $ref: '#/components/schemas/BankMetaData' + services: + type: array + description: >- + AISP if bank provides only AISP services and PISP if bank provides + only PISP services. + items: + type: string + description: Either AISP or PISP. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: Bank + BankMetaData: + type: object + description: >- + Array containing additional bank meta data, includes parameters that are + either required, optional or not supported at a specific bank + properties: + debtorAddress: + type: string + description: >- + Indicates if 'Debtor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + creditorAddress: + type: string + description: >- + Indicates if 'Creditor Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + remittanceInformation: + type: string + description: >- + Indicates if 'Remittance Information' is required by the bank. + Returns either, 'required', 'optional' or 'notSupported'. + psuId: + type: string + description: >- + Indicates if 'PSU-ID' is required by the bank. Returns either, + 'required', 'optional' or 'notSupported'. + customerIpAddress: + type: string + description: >- + Indicates if 'Customer IP Address' is required by the bank. Returns + either, 'required', 'optional' or 'notSupported'. + sepaInstantReachability: + type: boolean + description: Indicates if SEPA instant payments are supported by the bank. + minimumPaymentValue: + type: number + description: >- + Indicates the minimum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + maximumPaymentValue: + type: number + description: >- + Indicates the maximum payment value accepted by the bank. A value of + 0.00 indicates this parameter is not supported by the bank. + BanksResponse: + type: object + required: + - data + - uri + - page + - sort + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Banks collection + items: + $ref: '#/components/schemas/Bank' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: BanksResponse + example: + uri: /banks + data: + - id: 8ow24y2pdx + uri: /banks/8ow24y2pdx + name: Nuapay + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - GBP + - EUR + country: GB + countries: + - GB + - IE + debtorAccountRequired: false + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + bankMetaData: + debtorAddress: required + creditorAddress: required + remittanceInformation: optional + psuId: notSupported + customerIpAddress: notSupported + sepaInstantReachability: true + minimumPaymentValue: 0.01 + maximumPaymentValue: 9999.99 + services: + - AISP + - PISP + links: + - id: 8ww64y0phx + resourceType: bankFamily + uri: /bankFamilies/8ww64y0phx + page: + pageNumber: 1 + pageSize: 10 + totalElements: 1 + totalPages: 1 + sort: [] + BankFamilyResponse: + type: object + required: + - id + - uri + - name + - logo + - supportedCurrencies + properties: + id: + type: string + description: The Banks Family Id, used to group branches belong to the same Bank + uri: + type: string + description: Uri to Bank Family Resource + name: + type: string + description: The Bank Family Name + logo: + type: string + description: The Bank Family Logo http location + supportedCurrencies: + type: array + description: Holds list of payment currencies that the Bank Family can process. + items: + type: string + description: ISO currency code. + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: BankFamilyResponse + BankFamilyResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds queried resource uri. + data: + type: array + description: Bank Family collection + items: + $ref: '#/components/schemas/BankFamilyResponse' + title: BankFamilyResponseEnvelope + example: + uri: /bankFamily/ + data: + id: 8ww64y0phx + uri: /bankFamilies/8ww64y0phx + name: Nuapay France + logo: https://www.nuapay.com/wp-content/uploads/2018/04/nuapay.svg + supportedCurrencies: + - EUR + CreditorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage - The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: CreditorAccount + description: >- + Unambiguous identification of the account of the creditor to which a + credit entry will be made as a result of the transaction. + DebtorAccount: + type: object + required: + - identification + - schemeName + properties: + identification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + name: + type: string + description: >- + Name of the account, as assigned by the account servicing + institution, in agreement with the account owner in order to provide + an additional means of identification of the account. Usage: The + account name is different from the account owner name. The account + name is used in certain user communities to provide a means of + identifying the account, in addition to the account owner's identity + and the account number. + minLength: 1 + maxLength: 70 + schemeName: + type: string + description: >- + Name of the identification scheme, in a coded form as published in + an external list. + enum: + - IBAN + - SortCodeAccountNumber + secondaryIdentification: + type: string + description: >- + Identification assigned by an institution to identify an account. + This identification is known by the account owner. + minLength: 1 + maxLength: 34 + title: DebtorAccount + description: >- + Unambiguous identification of the account of the debtor to which a debit + entry will be made as a result of the transaction. + DeliveryAddress: + type: object + required: + - country + - townName + properties: + addressLine: + type: array + description: >- + Information that locates and identifies a specific address, as + defined by postal services, that is presented in free format text. + items: + type: string + minLength: 1 + maxLength: 70 + maxItems: 2 + minItems: 0 + streetName: + type: string + description: Name of a street or thoroughfare. + minLength: 1 + maxLength: 70 + buildingNumber: + type: string + description: Number that identifies the position of a building on a street. + minLength: 1 + maxLength: 16 + postCode: + type: string + description: >- + Identifier consisting of a group of letters and/or numbers that is + added to a postal address to assist the sorting of mail. + minLength: 1 + maxLength: 16 + townName: + type: string + description: >- + Name of a built-up area, with defined boundaries, and a local + government. + minLength: 1 + maxLength: 35 + countrySubDivision: + type: array + description: >- + Identifies a subdivision of a country, for instance state, region, + county. + items: + type: string + minLength: 1 + maxLength: 35 + maxItems: 2 + minItems: 0 + country: + type: string + description: Nation with its own government, occupying a particular territory. + pattern: ^[A-Z]{2,2}$ + title: DeliveryAddress + description: >- + Information that locates and identifies a specific address, as defined + by postal services or in free format text. + ErrorDetail: + type: object + properties: + code: + type: string + description: Error code + description: + type: string + description: Error description + field: + type: string + description: JSON path to request object property the error is related to + title: ErrorDetail + ErrorResponse: + type: object + properties: + details: + type: array + description: Holds list of input validation errors + items: + $ref: '#/components/schemas/ErrorDetail' + returnCode: + type: string + description: Error type code + returnDescription: + type: string + description: Error type description + title: ErrorResponse + Items: + type: object + properties: + name: + type: string + description: The name of the item being purchased by the PSU. + minLength: 1 + maxLength: 35 + description: + type: string + description: Brief description of the item being purchased by the PSU + minLength: 1 + maxLength: 254 + quantity: + type: integer + format: int32 + description: Quantiy of the particular item being purchased by the PSU. + amount: + type: number + description: Amount of payment in the specified currency at the specified rate. + minimum: -999999999999.99 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + title: Items + MultiAuthorisation: + type: object + description: The multiple authorisation flow response from the ASPSP. + properties: + status: + description: Specifies the status of the authorisation flow in code form. + type: string + enum: + - AUTHORISED + - AWAITING_FURTHER_AUTHORISATION + - REJECTED + numberRequired: + description: >- + Number of authorisations required for payment order (total required + at the start of the multi authorisation journey). + type: integer + format: int32 + numberReceived: + description: Number of authorisations received. + type: integer + format: int32 + lastUpdateDateTime: + description: Last date and time at the authorisation flow was updated. + type: string + format: date-time + expirationDateTime: + description: >- + Date and time at which the requested authorisation flow must be + completed. + type: string + format: date-time + required: + - status + OrderDetails: + type: object + description: Holds Order Details related to payment amount. + properties: + items: + type: array + description: Holds list of the line items to be returned to the TPP UI + items: + $ref: '#/components/schemas/Items' + title: OrderDetails + PaginatedListPaymentResponseEnvelope: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + uri: + type: string + description: resource Uri + PaginatedListBankFamiliesResponseEnvelope: + type: object + required: + - uri + - data + - page + - sort + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/BankFamilyResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + title: PaginatedListBankFamiliesResponseEnvelope + PaymentRefundListResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri + data: + type: array + items: + $ref: '#/components/schemas/PaymentRefundResponse' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: resource Uri. + data: + type: array + items: + $ref: '#/components/schemas/PaymentHistoryEvent' + page: + $ref: '#/components/schemas/RestResponsePaginationDetails' + sort: + type: array + items: + type: string + PaymentHistoryEvent: + type: object + required: + - createDateTime + - status + properties: + id: + type: string + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + uri: + type: string + status: + type: string + description: paymentStatus + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + createDateTime: + type: string + format: date-time + description: >- + Date and time when a status has changed. An example is below: + 2019-02-28T10:43:07+00:00 + PaymentRequest: + type: object + required: + - amount + - countryCode + - currency + properties: + amount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + minLength: 1 + maxLength: 35 + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: >- + Date the payment should be executed on. Defaults to current + processing date. Future date allowed only for EUR payments processed + by French Banks under STET standard. + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + title: PaymentRequest + example: + amount: 99.99 + countryCode: GB + currency: GBP + email: client@example.com + language: en + endToEndIdentification: endToEndIdentification123 + remittanceInformation: + reference: reference123 + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: null + amount: -5 + - name: Total + description: null + quantity: null + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + debtorAccount: + identification: 60161331926819 + schemeName: SortCodeAccountNumber + PaymentResponse: + type: object + required: + - amount + - countryCode + - currency + - id + - merchantId + - organisationId + - creationDateTime + - uri + - status + - paymentTimeout + properties: + id: + type: string + description: id, this is used to get updates on the payment + userInterfacePaymentId: + type: string + description: >- + userInterfacePaymentId, this is used in UI flows to get updates on + the payment + uri: + type: string + description: Location of the resource + merchantId: + type: string + description: The ID of the merchant associated to the payment + organisationId: + type: string + description: Id of the Merchant Organisation. + creationDateTime: + type: string + format: date-time + description: Creation date and time for the payment resource + status: + type: string + description: paymentStatus, the latest payment status + enum: + - PENDING + - PENDING_APPROVAL + - OAUTH_CALLBACK_COMPLETE + - AUTHORISED + - DECLINED + - SETTLEMENT_REJECTED + - SETTLEMENT_PENDING + - SETTLEMENT_IN_PROGRESS + - SETTLEMENT_COMPLETE + - CONSENT_API_REJECTED + - TIMEOUT + - CONSENT_TIMEOUT + - UNEXPECTED_ERROR + - UNKNOWN + - PAYMENT_RECEIVED + amount: + type: number + description: Amount of the payment + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency + enum: + - GBP + - EUR + - PLN + - BGN + - HRK + - CZK + - DKK + - HUF + - RON + - SEK + countryCode: + type: string + description: >- + countryCode - ISO country code - indicates where customer is + domiciled (ISO 3166 Alpha-2) + pattern: ^[A-Z]{2}$ + language: + type: string + description: >- + the customers preferred language, defaults to en ISO 639-1: + two-letter codes, one per language + pattern: ^[a-z]{2}$ + email: + type: string + description: Email address where payment status notifications will be sent to + minLength: 1 + maxLength: 254 + pattern: .*@.* + orderDetails: + $ref: '#/components/schemas/OrderDetails' + integrationType: + type: string + description: >- + Allows to specify if the UI integration is done via Checkout, + Redirect or it is Self Hosted by the merchant. + enum: + - CHECKOUT + - SELF_HOSTED + - SELF_HOSTED_CALLBACK + - REDIRECT + merchantPostAuthUrl: + type: string + description: >- + The merchant url to redirect PSU post authorization step. The field + is required for following integration types SELF_HOSTED, + SELF_HOSTED_CALLBACK, REDIRECT. + minLength: 1 + maxLength: 255 + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + aspspAuthUrl: + type: string + description: >- + The ASPSP url to redirect the PSU to for authorization of the + payment + minLength: 1 + maxLength: 2048 + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + requestedExecutionDate: + type: string + format: date + description: Date that the payment has been requested to be executed on. + debtorBankName: + type: string + description: The name of the debtor bank + minLength: 1 + maxLength: 70 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + debtorAddress: + $ref: '#/components/schemas/Address' + creditorAccount: + $ref: '#/components/schemas/CreditorAccount' + creditorAddress: + $ref: '#/components/schemas/Address' + paymentScheme: + type: string + description: >- + Allows to select payment scheme the payment should be initiated + with. Defaults to UK Faster Payments for GBP, SEPA Credit Transfer + for EUR, ELIXIR for PLN & DOMESTIC_PAYMENT for every other currency. + enum: + - UK_FASTER_PAYMENT + - SEPA_CREDIT_TRANSFER + - SEPA_INSTANT_CREDIT_TRANSFER + - ELIXIR_STANDARD_CREDIT_TRANSFER + - ELIXIR_EXPRESS_CREDIT_TRANSFER + - DOMESTIC_PAYMENT + risk: + $ref: '#/components/schemas/Risk' + merchantDisplayName: + type: string + description: Sets the Merchant's display name on the payment UI. + minLength: 1 + maxLength: 70 + cutOffDateTime: + type: string + format: date-time + description: Specified cut-off date and time for the payment consent. + expectedExecutionDateTime: + type: string + format: date-time + description: Expected execution date and time for the payment resource. + expectedSettlementDateTime: + type: string + format: date-time + description: Expected settlement date and time for the payment resource. + paymentTimeout: + type: integer + format: int32 + description: A time in which the PSU can authorise the payment in seconds + minimum: 1 + maximum: 7776000 + exclusiveMinimum: false + exclusiveMaximum: false + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + multiAuthorisation: + $ref: '#/components/schemas/MultiAuthorisation' + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentResponse + PaymentResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentResponse' + title: PaymentResponseEnvelope + example: + uri: /payments/re27gry2dw + data: + id: re27gry2dw + uri: /payments/re27gry2dw + endToEndIdentification: endToEndIdentification123 + debtorAccount: + identification: 60161331926819 + name: null + schemeName: SortCodeAccountNumber + secondaryIdentification: null + risk: + paymentContextCode: Other + merchantCategoryCode: null + merchantCustomerIdentification: null + deliveryAddress: null + remittanceInformation: + reference: reference123 + unstructured: null + status: PENDING_APPROVAL + amount: 99.99 + currency: GBP + countryCode: GB + language: en + email: client@example.com + orderDetails: + items: + - name: Flights Outbound + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 50 + - name: Flights Return + description: Dublin(DUB) to London(LCY) - Adult Fare + quantity: 2 + amount: 30 + - name: Discounts + description: null + quantity: 0 + amount: -5 + - name: Total + description: null + quantity: 0 + amount: 125 + integrationType: SELF_HOSTED + merchantPostAuthUrl: https://merchant.openbanking.com/result + bankId: lyboxy9bqp + aspspAuthUrl: >- + https://any-aspsp.com/openbanking/authorize?response_type=code+id_token&scope=openid+payments&client_id=377aaa6a-70bf-4e95-ac19-2bac5270bacd&redirect_uri=https%3A%2F%2Fapi.nuapay.com%2Ftpp%2Fpayment-requests%2Foauth&state=df78b5f6-12c0-4646-b47c-4362217acb0a&nonce=bea92693-19da-4609-858e-86c79e908a08&request=eyJraWQiOiI2QlJZamgtc0VRUTNmNWlzc0lxWU9WNGNXdVUiLCJ0eXAiOiJKV1QiLCJhbGciOiJQUzI1NiJ9.eyJpc3MiOiIzNzdhYWE2YS03MGJmLTRlOTUtYWMxOS0yYmFjNTI3MGJhY2QiLCJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsIm5vbmNlIjoiYmVhOTI2OTMtMTlkYS00NjA5LTg1OGUtODZjNzllOTA4YTA4IiwiY2xpZW50X2lkIjoiMzc3YWFhNmEtNzBiZi00ZTk1LWFjMTktMmJhYzUyNzBiYWNkIiwibWF4X2FnZSI6ODY0MDAsImF1ZCI6Imh0dHBzOlwvXC9hdXRob3Jpc2UtYXBpLmxsb3lkc2JhbmsuY28udWtcL3Byb2QwMVwvY2hhbm5lbFwvbHlkcyIsInNjb3BlIjoib3BlbmlkIHBheW1lbnRzIiwiY2xhaW1zIjp7InVzZXJpbmZvIjp7Im9wZW5iYW5raW5nX2ludGVudF9pZCI6eyJ2YWx1ZSI6IjY0YWQ5NWEwLWUzMWYtNGNiOC04NjM3LTdjOGRmOTc3MTJmOSIsImVzc2VudGlhbCI6dHJ1ZX19LCJpZF90b2tlbiI6eyJvcGVuYmFua2luZ19pbnRlbnRfaWQiOnsidmFsdWUiOiI2NGFkOTVhMC1lMzFmLTRjYjgtODYzNy03YzhkZjk3NzEyZjkiLCJlc3NlbnRpYWwiOnRydWV9LCJhY3IiOnsiZXNzZW50aWFsIjp0cnVlLCJ2YWx1ZXMiOlsidXJuOm9wZW5iYW5raW5nOnBzZDI6c2NhIiwidXJuOm9wZW5iYW5raW5nOnBzZDI6Y2EiXX19fSwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2FwaS5udWFwYXkuY29tXC90cHBcL3BheW1lbnQtcmVxdWVzdHNcL29hdXRoIiwic3RhdGUiOiJkZjc4YjVmNi0xMmMwLTQ2NDYtYjQ3Yy00MzYyMjE3YWNiMGEiLCJleHAiOjE1NzU0NTg3MTYsImlhdCI6MTU3NTQ1ODQxNiwianRpIjoiNDQyYmY4N2YtYzIxNC00NjgxLTk3ODYtZjIwZGM1YjIzOWYxIn0.IyeHKQQeU6x32CdUllkskLFWEjkJZKzvp8D4ZOwtlN3v32qmbh4hkGtwNilqZetqqq1ESB1InzfyAlb5S3GyZ_1pTV5UmFqsY60w4jIvSVQXmxKyCYIDrdgTvfa3IYOtA3vStpRpnHyXZfke7mBLGM0nn3YLEmujQ88T1kzq8v9rKTUKwgAE-NYLsYnXNg8dNlrl_lvXVou-J26keS5EaYMVSwHRXcZ8Vp51Hro5L3Py5KyG270RL-7AfJCrEOcvwKbHWOYthoZj1FcuuJWoCT80H1rtkw80vI8QpaQHhp8xYOGft4n6uf2WBhUVb9eBrl9B0GtWe3opBeFXzOtKyg + cutOffDateTime: null + expectedExecutionDateTime: null + expectedSettlementDateTime: null + merchantId: gabxwwv2l5 + creationDateTime: '2020-05-01T08:25:29.291Z' + debtorBankName: Bank Name + psuId: 12345678-UE3212 + multiAuthorisation: + status: null + numberRequired: null + numberReceived: null + lastUpdateDateTime: null + expirationDateTime: null + links: + - id: re27gry2dw + resourceType: refunds + uri: /payments/re27gry2dw/refunds + - id: re27gry2dw + resourceType: history + uri: /payments/re27gry2dw/history + PaymentRefundRequest: + type: object + required: + - refundAmount + - currency + properties: + refundAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + compensationAmount: + type: number + minimum: 0.01 + maximum: 999999999999.99 + exclusiveMinimum: false + exclusiveMaximum: false + currency: + type: string + description: Transaction currency, must match original payment currency + enum: + - GBP + - EUR + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. Note that the field length + is limited to 31 characters for payments in GBP currency, processed + via UK Faster Payments scheme + minLength: 1 + maxLength: 35 + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + PaymentRefundResponseEnvelope: + type: object + required: + - data + - uri + properties: + uri: + type: string + description: Holds resource uri. + data: + $ref: '#/components/schemas/PaymentRefundResponse' + title: refundPaymentResponseEnvelope + example: + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + data: + id: azo4kal13b + uri: /payments/ybo8zayk2q/refunds/azo4kal13b + creationDateTime: '2019-02-28T10:43:07.00Z' + lastUpdateDateTime: '2019-02-28T10:43:07.00Z' + reference: reference + status: REFUND_PENDING + refundAmount: 100.01 + compensationAmount: 10.01 + currency: GBP + remittanceInformation: + unstructured: unstructuredRemittanceInfo + PaymentRefundResponse: + type: object + required: + - refundAmount + - currency + - id + - uri + - reference + - status + - creationDateTime + properties: + id: + type: string + description: id, this is used to get updates on the payment + uri: + type: string + description: Holds resource uri. + creationDateTime: + type: string + format: date-time + description: Date and time when refund was created. + lastUpdateDateTime: + type: string + format: date-time + description: Date and time when refund was last updated. + status: + type: string + description: paymentStatus, the latest payment status + enum: + - REFUND_PENDING + - REFUND_COMPLETE + - REFUND_REJECTED + - UNKNOWN + refundAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + compensationAmount: + type: number + description: amount + minimum: 0.01 + maximum: 999999999999.99 + currency: + type: string + description: transaction currency + enum: + - GBP + - EUR + remittanceInformation: + $ref: '#/components/schemas/RemittanceInformation' + endToEndIdentification: + type: string + description: >- + Unique identification assigned by the initiating party to + unambiguously identify the transaction. + maxLength: 35 + errorDetails: + type: array + description: List of error codes associated to the refund request + items: + type: string + description: Payment error code(s) + links: + type: array + items: + $ref: '#/components/schemas/RestResponseLink' + title: PaymentRefundResponse + RemittanceInformation: + type: object + properties: + reference: + type: string + description: >- + Unique reference, as assigned by the creditor, to unambiguously + refer to the payment transaction. Usage: If available, the + initiating party should provide this reference in the structured + remittance information, to enable reconciliation by the creditor + upon receipt of the amount of money. If the business context + requires the use of a creditor reference or a payment remit + identification, and only one identifier can be passed through the + end-to-end chain, the creditor's reference or payment remittance + identification should be quoted in the end-to-end transaction + identification. OB: The Faster Payments Scheme can only accept 18 + characters for the ReferenceInformation field - which is where this + ISO field will be mapped. + minLength: 1 + maxLength: 35 + unstructured: + type: string + description: >- + Information supplied to enable the matching/reconciliation of an + entry with the items that the payment is intended to settle, such as + commercial invoices in an accounts receivable system, in an + unstructured form. 120 characters are available for client use. 20 + characters are reserved for internal use. + minLength: 1 + maxLength: 140 + title: RemittanceInformation + description: >- + Information supplied to enable the matching of an entry with the items + that the transfer is intended to settle, such as commercial invoices in + an accounts receivable system. + RestResponsePaginationDetails: + type: object + properties: + pageNumber: + type: integer + format: int32 + description: Page Number + pageSize: + type: integer + format: int32 + description: Page Size + totalElements: + type: integer + format: int32 + description: Total Number of elements returned. Response parameter only + totalPages: + type: integer + format: int32 + description: Total Number of pages returned. Response parameter only + Risk: + type: object + properties: + paymentContextCode: + type: string + description: Specifies the payment context. + enum: + - BillingGoodsAndServicesInAdvance + - BillingGoodsAndServicesInArrears + - PispPayee + - EcommerceMerchantInitiatedPayment + - FaceToFacePointOfSale + - TransferToSelf + - TransferToThirdParty + - BillPayment + - EcommerceGoods + - EcommerceServices + - Other + - PartyToParty + merchantCategoryCode: + type: string + description: >- + Category code conforms to ISO 18245, related to the type of services + or goods the merchant provides for the transaction. + minLength: 3 + maxLength: 4 + merchantCustomerIdentification: + type: string + description: The unique customer identifier of the PSU with the merchant. + minLength: 1 + maxLength: 70 + deliveryAddress: + $ref: '#/components/schemas/DeliveryAddress' + contractPresentIndicator: + type: boolean + description: Indicates if Payee has a contractual relationship with the PISP. + paymentPurposeCode: + type: string + description: >- + Category code, related to the type of services or goods that + corresponds to the underlying purpose of the payment that conforms + to Recommended UK Purpose Code in ISO 20022 Payment Messaging List + minLength: 3 + maxLength: 4 + beneficiaryPrepopulatedIndicator: + type: boolean + description: >- + Indicates if PISP has immutably prepopulated payment details in for + the PSU. + beneficiaryAccountType: + type: string + description: Specifies the extended type of account. + enum: + - Business + - BusinessSavingsAccount + - Charity + - Collection + - Corporate + - Ewallet + - Government + - Investment + - ISA + - JointPersonal + - Pension + - Personal + - PersonalSavingsAccount + - Premier + - Wealth + title: Risk + description: Risk + RestResponseLink: + type: object + properties: + id: + type: string + description: Encoded Id of linked resource + resourceType: + type: string + description: |- + Available link types, + - settings + - refunds + - history + - audit + - bankFamily + uri: + type: string + description: Resource URI + SetBankPaymentRequest: + type: object + required: + - bankId + properties: + bankId: + type: string + description: >- + The bank id returned by List Banks API. This is the bank where PSU + holds its account + minLength: 1 + maxLength: 10 + psuId: + type: string + description: Client ID of the PSU in the ASPSP client interface. + minLength: 1 + maxLength: 60 + debtorAccount: + $ref: '#/components/schemas/DebtorAccount' + example: + bankId: ybo8zd8j2q + psuId: 12345678-UE3212 + debtorAccount: + identification: GB29NWBK60161331926819 + schemeName: IBAN diff --git a/sdks/db/processed-custom-request-cache/nuapay.com.yaml b/sdks/db/processed-custom-request-cache/nuapay.com.yaml new file mode 100644 index 0000000000..d7d0156e04 --- /dev/null +++ b/sdks/db/processed-custom-request-cache/nuapay.com.yaml @@ -0,0 +1,46 @@ +processed: + securitySchemes: + MerchantApiKey: + type: http + scheme: basic + PartnerApiKey: + type: http + scheme: basic + MerchantOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_refund: Open Banking Refund access + openbanking_refund_read: Read Open Banking Refunds access + openbanking_callback: Open Banking callback forwarding access + PartnerOAuth2: + type: oauth2 + flows: + password: + tokenUrl: https://api.nuapay.com/oauth/token_key + scopes: + openbanking_aisp: Account Information Service Provider access + openbanking_pisp: Payment Initiation Service Provider access + openbanking_pisp_read: Read Account and Payment Information access + openbanking_callback: Open Banking callback forwarding access + apiBaseUrl: https://api.nuapay.com/tpp + apiVersion: 1.16.1 + apiDescription: >- + Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks + Endpoints + apiTitle: Nuapay TPP API Specification + endpoints: 9 + sdkMethods: 12 + schemas: 30 + parameters: 75 + contactEmail: api.support@nuapay.com + originalCustomRequest: + type: GET + url: >- + https://raw.githubusercontent.com/sentenial/open-banking-swagger/master/tpp-swagger.yaml + customRequestSpecFilename: nuapay.com.yaml + difficultyScore: 45.75 diff --git a/sdks/db/progress/nuapay-progress.yaml b/sdks/db/progress/nuapay-progress.yaml new file mode 100644 index 0000000000..5bcb26c5dc --- /dev/null +++ b/sdks/db/progress/nuapay-progress.yaml @@ -0,0 +1,89 @@ +examples: {} +examples_2: {} +examples_3: {} +operationIds: + /bankfamilies: + get: BankService_viewBankFamilies + /bankfamilies/{bankfamilyId}: + get: BankService_getBankFamily + /banks: + get: BankService_getSupportedBanks + /payments: + get: PispService_listPayments + post: PispService_makePayment + /payments/callback: + post: PispService_forwardPaymentCallback + /payments/{paymentId}: + get: PispService_getPayment + patch: PispService_retryPaymentPatch + /payments/{paymentId}/history: + get: PispService_getPaymentHistory + /payments/{paymentId}/refunds: + get: PispService_getPaymentRefunds + post: PispService_refundPayment + /payments/{paymentId}/refunds/{refundId}: + get: PispService_getRefund +operationTags: {} +renameTags: {} +requestSchemaNames: + /payments/callback: + post: + application/json: PispServiceForwardPaymentCallbackRequest +responseDescriptions: {} +responseSchemaNames: {} +securityParameters: + Customer-IP-Address: + header: false + Idempotency-Key: + header: false + PSU-ID: + header: false + bankfamilyid: + query: false + country: + query: false + currency: + query: false + debtoraccountrequired: + query: false + excludebankfamily: + query: false + fromamount: + query: false + fromcreationdatetime: + query: false + fromdatetime: + query: false + fromrefundamount: + query: false + pagenumber: + query: false + pagesize: + query: false + payeremail: + query: false + payername: + query: false + paymentstatus: + query: false + reference: + query: false + refundstatus: + query: false + sepainstantreachability: + query: false + services: + query: false + supportedcurrencies: + query: false + toamount: + query: false + tocreationdatetime: + query: false + todatetime: + query: false + torefundamount: + query: false + userinterfacepaymentid: + query: false +validServerUrls: {} diff --git a/sdks/db/published/from-custom-request_nuapay.com.json b/sdks/db/published/from-custom-request_nuapay.com.json new file mode 100644 index 0000000000..5235ae6276 --- /dev/null +++ b/sdks/db/published/from-custom-request_nuapay.com.json @@ -0,0 +1,1054 @@ +{ + "securitySchemes": { + "MerchantApiKey": { + "type": "http", + "scheme": "basic" + }, + "PartnerApiKey": { + "type": "http", + "scheme": "basic" + }, + "MerchantOAuth2": { + "type": "oauth2", + "flows": { + "password": { + "tokenUrl": "https://api.nuapay.com/oauth/token_key", + "scopes": { + "openbanking_pisp": "Payment Initiation Service Provider access", + "openbanking_pisp_read": "Read Account and Payment Information access", + "openbanking_refund": "Open Banking Refund access", + "openbanking_refund_read": "Read Open Banking Refunds access", + "openbanking_callback": "Open Banking callback forwarding access" + } + } + } + }, + "PartnerOAuth2": { + "type": "oauth2", + "flows": { + "password": { + "tokenUrl": "https://api.nuapay.com/oauth/token_key", + "scopes": { + "openbanking_aisp": "Account Information Service Provider access", + "openbanking_pisp": "Payment Initiation Service Provider access", + "openbanking_pisp_read": "Read Account and Payment Information access", + "openbanking_callback": "Open Banking callback forwarding access" + } + } + } + } + }, + "apiBaseUrl": "https://api.nuapay.com/tpp", + "apiVersion": "1.16.1", + "apiDescription": "Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks Endpoints", + "apiTitle": "Nuapay TPP API Specification", + "endpoints": 9, + "sdkMethods": 12, + "schemas": 31, + "parameters": 75, + "contactEmail": "api.support@nuapay.com", + "originalCustomRequest": { + "type": "GET", + "url": "https://raw.githubusercontent.com/sentenial/open-banking-swagger/master/tpp-swagger.yaml" + }, + "customRequestSpecFilename": "nuapay.com.yaml", + "difficultyScore": 45.75, + "difficulty": "Easy", + "company": "Nuapay", + "sdkName": "nuapay-{language}-sdk", + "clientName": "Nuapay", + "metaDescription": "Nuapay is a pioneer of Open Banking and the industry's leading Account-2-Account payment environment. We securely process over €42bn every year as an outsourcing provider to many of the world's leading Banks, PSPs and Corporates – we have worked tirelessly to reinvent what's possible from a modern banking and payment solution. Today, we offer partners a fully comprehensive, integrated payment solution that removes all traditional banking inefficiencies and unnecessary costs, saving time, money and resources at every turn. This is banking as it should be.\n\nOur Vision\n\nFor over 20 years, Nuapay has been at the forefront of Account-to-Account payments and the Open Banking movement. Through our market-leading payments and accounts platform, partner ecosystem and focus on quality we've helped thousands of clients (banks, payment providers, software platforms and businesses) deliver innovative, profitable and seamless payment services. Nuapay's flexible, secure approach will cover all your needs, underpinned by our 20 year heritage.\n\nOur Mission\n\nHere at Nuapay we know that perfecting the payments experience brings transformational benefits to customers and the businesses who serve them. We believe Account-to-Account payments and Open Banking can achieve that better than any other option – and are, together, the future of payments.\n\nwww.nuapay.com / @NUAPAY\n\nGet in touch with us here: www.nuapay.com/contact/", + "apiStatusUrls": "inherit", + "homepage": "nuapay.com/", + "developerDocumentation": "developer.nuapay.com/", + "categories": [ + "finance", + "banking", + "payments", + "fintech", + "financial_technology", + "b_2_b_payments", + "payment_services", + "financial_services" + ], + "category": "Payment Processing", + "methods": [ + { + "url": "/bankfamilies", + "method": "viewBankFamilies", + "httpMethod": "get", + "tag": "Bank Service", + "typeScriptTag": "bankService", + "description": "View Bank Families", + "parameters": [ + { + "name": "pagenumber", + "schema": "integer", + "required": false, + "description": "Page number", + "default": 1 + }, + { + "name": "pagesize", + "schema": "integer", + "required": false, + "description": "Page size", + "default": 20 + }, + { + "name": "supportedcurrencies", + "schema": "array", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/bankfamilies/{bankfamilyId}", + "method": "getBankFamily", + "httpMethod": "get", + "tag": "Bank Service", + "typeScriptTag": "bankService", + "description": "View Bank Family", + "parameters": [ + { + "name": "bankfamilyId", + "schema": "string", + "required": true, + "description": "Bank Family id returned by Get Bank Families endpoint.", + "example": "BANKFAMILYID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/banks", + "method": "getSupportedBanks", + "httpMethod": "get", + "tag": "Bank Service", + "typeScriptTag": "bankService", + "description": "Retrieve Banks", + "parameters": [ + { + "name": "country", + "schema": "array", + "required": false, + "description": "CountryCode - ISO country code - indicates where bank is domiciled (ISO 3166 Alpha-2)" + }, + { + "name": "debtoraccountrequired", + "schema": "boolean", + "required": false, + "description": "Allows to filter the banks that requires debtor account to be provided when initiating payment." + }, + { + "name": "pagenumber", + "schema": "integer", + "required": false, + "description": "Page number", + "default": 1 + }, + { + "name": "pagesize", + "schema": "integer", + "required": false, + "description": "Page size", + "default": 20 + }, + { + "name": "supportedcurrencies", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "bankfamilyid", + "schema": "string", + "required": false, + "description": "Allows filtering by Bank Family via the Bank Family Id." + }, + { + "name": "excludebankfamily", + "schema": "boolean", + "required": false, + "description": "Allows filtering by Banks without an associated Bank Family." + }, + { + "name": "services", + "schema": "array", + "required": false, + "description": "Filter the bank list by service provided returns both AISPs and PISPs, 'AISP' returns only AISPs and 'PISP' returns only PISPs. When not provided returns all banks regardless of service." + }, + { + "name": "sepainstantreachability", + "schema": "boolean", + "required": false, + "description": "Filter the bank list by payment method. When not provided or false, returns the full list of banks. When true, the only banks that supports SEPA Instant Payments are returned." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments", + "method": "listPayments", + "httpMethod": "get", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "List payments", + "parameters": [ + { + "name": "fromdatetime", + "schema": "string", + "required": false, + "description": "Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', maximum date from/to date range is 30 days. If neither from/to date is provided returns results for the last 30 days." + }, + { + "name": "todatetime", + "schema": "string", + "required": false, + "description": "Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', maximum date from/to date range is 30 days. If neither from/to date is provided returns results for the last 30 days." + }, + { + "name": "fromamount", + "schema": "number", + "required": false, + "description": "When provided only payments with amount equal or higher than provided amount will be returned" + }, + { + "name": "toamount", + "schema": "number", + "required": false, + "description": "When provided only payments with amount equal or smaller than provided amount will be returned" + }, + { + "name": "userinterfacepaymentid", + "schema": "string", + "required": false, + "description": "This is used in UI flows to get payment details. Applicable for payments created with REDIRECT, CHECKOUT integration type." + }, + { + "name": "paymentstatus", + "schema": "array", + "required": false, + "description": "A number of statuses can be queried within a single request by providing multiple occurences of the parameter. If not provided all statuses will be returned" + }, + { + "name": "payername", + "schema": "string", + "required": false, + "description": "Payer name. This parameter supports searching with wildcards" + }, + { + "name": "payeremail", + "schema": "string", + "required": false, + "description": "Payer e-mail. This parameter supports searching with wildcards" + }, + { + "name": "reference", + "schema": "string", + "required": false, + "description": "Payment reference will attempt to match endToEndIdentification, remittanceInformation.reference and remittanceInformation.unstructured. Will return all matches and partial matches if using wildcard searches. This parameter supports searching with wildcards" + }, + { + "name": "currency", + "schema": "string", + "required": false, + "description": "Currency" + }, + { + "name": "pagenumber", + "schema": "integer", + "required": false, + "description": "Page number", + "default": 1 + }, + { + "name": "pagesize", + "schema": "integer", + "required": false, + "description": "Page size", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments", + "method": "makePayment", + "httpMethod": "post", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Create Payment", + "parameters": [ + { + "name": "idempotencyKey", + "schema": "string", + "required": false, + "description": "Every request will be processed only once per Idempotency-Key. The Idempotency Key will be valid for 24 hours." + }, + { + "name": "psuId", + "schema": "string", + "required": false, + "description": "Client ID of the PSU in the ASPSP client interface." + }, + { + "name": "customerIpAddress", + "schema": "string", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP." + }, + { + "name": "amount", + "schema": "number", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "countryCode", + "schema": "string", + "required": true, + "description": "", + "example": "COUNTRYCODE" + }, + { + "name": "language", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "email", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "orderDetails", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "integrationType", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "merchantPostAuthUrl", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "bankId", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "endToEndIdentification", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "paymentTimeout", + "schema": "integer", + "required": false, + "description": "" + }, + { + "name": "remittanceInformation", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAccount", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "paymentScheme", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "risk", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "merchantDisplayName", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "422", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/callback", + "method": "forwardPaymentCallback", + "httpMethod": "post", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Forward Payment Callback", + "parameters": [ + { + "name": "idempotencyKey", + "schema": "string", + "required": false, + "description": "Every request will be processed only once per Idempotency-Key. The Idempotency Key will be valid for 24 hours." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Ok" + }, + { + "statusCode": "202", + "description": "ACCEPTED" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "422", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}", + "method": "getPayment", + "httpMethod": "get", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Retrieve Payment", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment for which you want to retrieve details", + "example": "PAYMENTID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}", + "method": "retryPaymentPatch", + "httpMethod": "patch", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Retry Payment", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment that you want to retry", + "example": "PAYMENTID" + }, + { + "name": "customerIpAddress", + "schema": "string", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP." + }, + { + "name": "bankId", + "schema": "string", + "required": true, + "description": "", + "example": "BANKID" + }, + { + "name": "psuId", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "422", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}/history", + "method": "getPaymentHistory", + "httpMethod": "get", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Retrieve Payment History", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment for which you want to retrieve audit trail history", + "example": "PAYMENTID" + }, + { + "name": "pagenumber", + "schema": "integer", + "required": false, + "description": "Page number", + "default": 1 + }, + { + "name": "pagesize", + "schema": "integer", + "required": false, + "description": "Page size", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}/refunds", + "method": "getPaymentRefunds", + "httpMethod": "get", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "List Payment Refunds", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment for which you want to list refunds", + "example": "PAYMENTID" + }, + { + "name": "fromcreationdatetime", + "schema": "string", + "required": false, + "description": "Submission from date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', maximum create date from/to create date range is 30 days. If neither from/to date is provided returns results for the last 30 days." + }, + { + "name": "tocreationdatetime", + "schema": "string", + "required": false, + "description": "Submission to date time in the format, 'yyyy-MM-dd'T'HH:mm:ss', maximum create date from/to create date range is 30 days. If neither from/to date is provided returns results for the last 30 days." + }, + { + "name": "fromrefundamount", + "schema": "number", + "required": false, + "description": "When provided only payments with amount equal or higher than provided amount will be returned" + }, + { + "name": "torefundamount", + "schema": "number", + "required": false, + "description": "When provided only payments with amount equal or smaller than provided amount will be returned" + }, + { + "name": "refundstatus", + "schema": "array", + "required": false, + "description": "A number of statuses can be queried within a single request by providing multiple occurences of the parameter. If not provided all statuses will be returned" + }, + { + "name": "pagenumber", + "schema": "integer", + "required": false, + "description": "Page number", + "default": 1 + }, + { + "name": "pagesize", + "schema": "integer", + "required": false, + "description": "Page size", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "422", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}/refunds", + "method": "refundPayment", + "httpMethod": "post", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Refund Payment", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment which you want to refund", + "example": "PAYMENTID" + }, + { + "name": "idempotencyKey", + "schema": "string", + "required": false, + "description": "Every request will be processed only once per x-idempotency-key. The Idempotency Key will be valid for 24 hours." + }, + { + "name": "refundAmount", + "schema": "number", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "compensationAmount", + "schema": "number", + "required": false, + "description": "" + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "endToEndIdentification", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "remittanceInformation", + "schema": "object", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "422", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}/refunds/{refundId}", + "method": "getRefund", + "httpMethod": "get", + "tag": "PISP Service", + "typeScriptTag": "pispService", + "description": "Retrieve Refund", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the payment for which you want to retrieve details", + "example": "PAYMENTID" + }, + { + "name": "refundId", + "schema": "string", + "required": true, + "description": "The ID of the refund for which you want to retrieve details", + "example": "REFUNDID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "429", + "description": "" + } + ] + } + ], + "repositoryDescription": "Nuapay is a leading provider in Open Banking, processing over €42bn annually for top global Banks, PSPs, and Corporates. We offer a cutting-edge, integrated payment solution, eliminating inefficiencies and costs to redefine modern banking. Nuapay's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/nuapay/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/nuapay/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/nuapay/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/nuapay/imagePreview.png", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/nuapay/favicon.png", + "clientNameCamelCase": "nuapay", + "lastUpdated": "2024-03-29T17:53:05.812Z", + "typescriptSdkUsageCode": "import { Nuapay } from 'nuapay-typescript-sdk';\n\nconst nuapay = new Nuapay({\n username: \"USERNAME\",\n password: \"PASSWORD\",\n // username: \"USERNAME\"\n // password: \"PASSWORD\"\n // username: \"USERNAME\"\n // password: \"PASSWORD\"\n // username: \"USERNAME\"\n // password: \"PASSWORD\"\n})", + "typescriptSdkFirstRequestCode": "// View Bank Families\nconst viewBankFamiliesResponse = nuapay.bankService.viewBankFamilies({\n pagenumber: 1\n pagesize: 20\n})", + "fixedSpecFileName": "nuapay-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_nuapay.com.json b/sdks/db/spec-data/from-custom-request_nuapay.com.json new file mode 100644 index 0000000000..fdb500e9af --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_nuapay.com.json @@ -0,0 +1,57 @@ +{ + "securitySchemes": { + "MerchantApiKey": { + "type": "http", + "scheme": "basic" + }, + "PartnerApiKey": { + "type": "http", + "scheme": "basic" + }, + "MerchantOAuth2": { + "type": "oauth2", + "flows": { + "password": { + "tokenUrl": "https://api.nuapay.com/oauth/token_key", + "scopes": { + "openbanking_pisp": "Payment Initiation Service Provider access", + "openbanking_pisp_read": "Read Account and Payment Information access", + "openbanking_refund": "Open Banking Refund access", + "openbanking_refund_read": "Read Open Banking Refunds access", + "openbanking_callback": "Open Banking callback forwarding access" + } + } + } + }, + "PartnerOAuth2": { + "type": "oauth2", + "flows": { + "password": { + "tokenUrl": "https://api.nuapay.com/oauth/token_key", + "scopes": { + "openbanking_aisp": "Account Information Service Provider access", + "openbanking_pisp": "Payment Initiation Service Provider access", + "openbanking_pisp_read": "Read Account and Payment Information access", + "openbanking_callback": "Open Banking callback forwarding access" + } + } + } + } + }, + "apiBaseUrl": "https://api.nuapay.com/tpp", + "apiVersion": "1.16.1", + "apiDescription": "Swagger Spec for the Nuapay TPP OpenBanking/PSD2. Provides PISP and Banks Endpoints", + "apiTitle": "Nuapay TPP API Specification", + "endpoints": 9, + "sdkMethods": 12, + "schemas": 30, + "parameters": 75, + "contactEmail": "api.support@nuapay.com", + "originalCustomRequest": { + "type": "GET", + "url": "https://raw.githubusercontent.com/sentenial/open-banking-swagger/master/tpp-swagger.yaml" + }, + "customRequestSpecFilename": "nuapay.com.yaml", + "difficultyScore": 45.75, + "difficulty": "Easy" +} \ No newline at end of file diff --git a/sdks/publish.yaml b/sdks/publish.yaml index f00f9e89a4..4dc16ffb14 100644 --- a/sdks/publish.yaml +++ b/sdks/publish.yaml @@ -7248,3 +7248,56 @@ publish: serviceName: false sdkName: seyna-{language}-sdk clientName: Seyna + from-custom-request_nuapay.com: + homepage: nuapay.com/ + company: Nuapay + developerDocumentation: developer.nuapay.com/ + apiStatusUrls: inherit + metaDescription: >- + Nuapay is a pioneer of Open Banking and the industry's leading + Account-2-Account payment environment. We securely process over €42bn + every year as an outsourcing provider to many of the world's leading + Banks, PSPs and Corporates – we have worked tirelessly to reinvent what's + possible from a modern banking and payment solution. Today, we offer + partners a fully comprehensive, integrated payment solution that removes + all traditional banking inefficiencies and unnecessary costs, saving time, + money and resources at every turn. This is banking as it should be. + + + Our Vision + + + For over 20 years, Nuapay has been at the forefront of Account-to-Account + payments and the Open Banking movement. Through our market-leading + payments and accounts platform, partner ecosystem and focus on quality + we've helped thousands of clients (banks, payment providers, software + platforms and businesses) deliver innovative, profitable and seamless + payment services. Nuapay's flexible, secure approach will cover all your + needs, underpinned by our 20 year heritage. + + + Our Mission + + + Here at Nuapay we know that perfecting the payments experience brings + transformational benefits to customers and the businesses who serve them. + We believe Account-to-Account payments and Open Banking can achieve that + better than any other option – and are, together, the future of payments. + + + www.nuapay.com / @NUAPAY + + + Get in touch with us here: www.nuapay.com/contact/ + categories: + - finance + - banking + - payments + - fintech + - financial_technology + - b_2_b_payments + - payment_services + - financial_services + serviceName: false + sdkName: nuapay-{language}-sdk + clientName: Nuapay diff --git a/sdks/src/collect-from-custom-requests.ts b/sdks/src/collect-from-custom-requests.ts index a97ccfaf40..9f3241a3c8 100644 --- a/sdks/src/collect-from-custom-requests.ts +++ b/sdks/src/collect-from-custom-requests.ts @@ -2278,6 +2278,10 @@ const customRequests: Record = { type: "GET", url: "https://hathora.dev/swagger.json", }, + "nuapay.com": { + type: "GET", + url: "https://raw.githubusercontent.com/sentenial/open-banking-swagger/master/tpp-swagger.yaml", + }, }; async function downloadOpenApiSpecFromMintlify({