# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Payment Initiation Service ```yaml openapi: 3.0.1 info: title: Payment Initiation Service version: 2.0.8 description: Enable and manage payments, refunds, withdrawals, and provider connectivity across multiple markets using secure open banking infrastructure. contact: name: JPMorgan Chase & Co. API Support url: https://apistore.jpmchase.net/support/contact email: imsd.security.operations@jpmorgan.com servers: - url: https://apigateway.jpmorgan.com/tsapi/paybybank/v2 description: PRODUCTION - url: https://apigatewayqaf.jpmorgan.com/tsapi/paybybank/v2 description: CLIENT TESTING - url: https://apigatewaycat.jpmorgan.com/tsapi/paybybank/v2 description: CLIENT TESTING - url: https://api-mock.payments.jpmorgan.com/tsapi/paybybank/v2 description: MOCK tags: - name: Payments description: Pay By Bank - Payments - name: Payouts description: Pay By Bank - PayoutsPayments - name: Connectivity description: Pay By Bank - Connectivity paths: /payments: post: summary: Initiate Payments description: Initiates a payment request to setup the money movement. tags: - Payments operationId: createPayment parameters: - name: Idempotency-Key in: header required: true description: 'Client provided unique Idempotency Key. **NOTE**: *Creation of unique keys is up to the client, but usage of V4 UUIDs is suggested, or another random string to avoid collisions.*' schema: $ref: '#/components/schemas/UniqueResourceIdentifier' examples: PaymentsUKRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 PaymentsGermanyRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a2 PaymentsFranceRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a3 PaymentsItalyRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a4 PaymentsSpainRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a5 PaymentsSwedenRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a6 PaymentsNorwayRTP: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a7 requestBody: description: Representation of a Payment Request required: true content: application/json: schema: $ref: '#/components/schemas/Payments' examples: PaymentsUKRTP: summary: Sample Payment Request - RTP UK value: paymentAmount: value: '100.00' currency: GBP paymentType: REAL_TIME_PAYMENTS market: GB redirectURL: https://sites.obtest.com/sites/cib debtor: name: Bala Thandapani creditor: name: Newgen Media LLC account: accountId: '06090887654321' accountIdType: SORT_CODE reference: 'subscription - #78004300' PaymentsGermanyRTP: summary: Sample Payment Request - RTP Germany value: paymentAmount: value: '150.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: DE redirectURL: https://sites.obtest.com/sites/cib debtor: name: Joshua Sundar account: accountId: DE89370400440532013000 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: DE89370400440532013987 accountIdType: IBAN reference: 'subscription - #99604300' PaymentsFranceRTP: summary: Sample Payment Request - RTP France value: paymentAmount: value: '90.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: FR redirectURL: https://sites.obtest.com/sites/cib debtor: name: Saheed Osupa account: accountId: FR1420041010050500013M02606 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: FR1420041010050500013M02987 accountIdType: IBAN reference: 'subscription - #12504300' PaymentsItalyRTP: summary: Sample Payment Request - RTP Italy value: paymentAmount: value: '50.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: IT redirectURL: https://sites.obtest.com/sites/cib debtor: name: Roberto Molli account: accountId: IT60X0542811101000000123456 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: IT60X0542811101000000123987 accountIdType: IBAN reference: 'subscription - #78158300' PaymentsSpainRTP: summary: Sample Payment Request - RTP Spain value: paymentAmount: value: '85.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: ES redirectURL: https://sites.obtest.com/sites/cib debtor: name: Abdul Rahman creditor: name: Newgen Media LLC account: accountId: ES9121000418450200051987 accountIdType: IBAN reference: 'subscription - #79694300' PaymentsSwedenRTP: summary: Sample Payment Request - RTP Sweden value: paymentAmount: value: '105.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: SE redirectURL: https://sites.obtest.com/sites/cib debtor: name: Jenifer Laurence account: accountId: SE4550000000058398257466 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: SE4550000000058398257987 accountIdType: IBAN reference: 'subscription - #79694300' PaymentsNorwayRTP: summary: Sample Payment Request - RTP Norway value: paymentAmount: value: '105.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: 'NO' redirectURL: https://sites.obtest.com/sites/cib debtor: name: Mary KOM account: accountId: NO9386011117947 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: NO9386011117987 accountIdType: IBAN reference: 'subscription - #79694300' responses: '202': $ref: '#/components/responses/202-Accepted' '400': $ref: '#/components/responses/400-BadRequest' '401': $ref: '#/components/responses/401-Unauthorized' '403': $ref: '#/components/responses/403-Forbidden' '409': $ref: '#/components/responses/409-Conflict' '503': $ref: '#/components/responses/503-ServiceUnavailable' callbacks: paymentStatus: '{client-url}/status': post: description: Callback message to notify clients about the payment status requestBody: $ref: '#/components/requestBodies/PaymentsCallback' responses: '204': description: Callback received successfully /payments/{id}/acknowledge: post: summary: Acknowledge Payments description: Acknowledges the payment request that was previously setup. tags: - Payments operationId: acknowledgePayments parameters: - name: id in: path required: true description: A unique ID of the payment schema: $ref: '#/components/schemas/UniqueResourceIdentifier' examples: PaymentResponseGermanyRTP: value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea responses: '200': $ref: '#/components/responses/200-Acknowledged' '400': $ref: '#/components/responses/400-BadRequest-Non-State-Change' '401': $ref: '#/components/responses/401-Unauthorized' '403': $ref: '#/components/responses/403-Forbidden' '404': $ref: '#/components/responses/404-NotFound' '503': $ref: '#/components/responses/503-ServiceUnavailable' /payments/{id}: get: summary: Retrieve Payments description: Retrieves the details of the payment request by Id. tags: - Payments operationId: retrievePaymentsDetails parameters: - name: id in: path required: true description: A unique ID of the payment schema: $ref: '#/components/schemas/UniqueResourceIdentifier' examples: PaymentResponseGermanyRTP: value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea responses: '200': $ref: '#/components/responses/200-Successful' '400': $ref: '#/components/responses/400-BadRequest-Non-State-Change' '401': $ref: '#/components/responses/401-Unauthorized' '403': $ref: '#/components/responses/403-Forbidden' '404': $ref: '#/components/responses/404-NotFound' '503': $ref: '#/components/responses/503-ServiceUnavailable' /payouts: post: tags: - Payouts summary: Create Payouts operationId: createPayout description: | Creates a payout for a specific payment transaction as a refund or a withdrawal. > The Pay By Bank - Payouts API facilitates businesses to carry out payments to beneficiaries efficiently within the context of Open Banking. By capitalizing on the secure infrastructure of Open Banking, it offers a robust, streamlined, and secure mechanism to process payouts, categorized into two types - Refunds and Withdrawals. requestBody: description: Representation of a Payout Request content: application/json: schema: $ref: '#/components/schemas/Payout' examples: PayoutRefundRequest: value: payoutReference: Refund 220-1z008 payoutType: REFUND payoutReason: PARTIAL_REFUND payoutAmount: value: '10.50' currency: EUR paymentType: REAL_TIME_PAYMENTS sourcePaymentId: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea PayoutWithdrawalRequest: value: payoutReference: Payout 221-1x009 payoutType: WITHDRAWAL payoutReason: WITHDRAWAL payoutAmount: value: '20.50' currency: GBP paymentType: REAL_TIME_PAYMENTS sourcePaymentId: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 parameters: - name: Idempotency-Key in: header description: "Client provided unique Idempotency Key.\n \n \n**NOTE**: *Creation of unique keys is up to the client, but usage of V4 UUIDs is suggested, \n \nor another random string to avoid collisions.*" schema: $ref: '#/components/schemas/UniqueResourceIdentifier' examples: PayoutRefundRequest: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 PayoutWithdrawalRequest: value: 1b036f9c-8c84-4ce6-b1dd-5979472945a2 required: true responses: '202': $ref: '#/components/responses/20x-PayoutResponse' '400': $ref: '#/components/responses/400-BadRequest' '401': $ref: '#/components/responses/401-Unauthorized' '403': $ref: '#/components/responses/403-Forbidden' '409': $ref: '#/components/responses/409-Conflict' '503': $ref: '#/components/responses/503-ServiceUnavailable' callbacks: payoutStatus: '{client-url}/status': post: description: Callback message to notify clients about the payout status requestBody: $ref: '#/components/requestBodies/PayoutsCallback' responses: '204': description: Callback received successfully /payouts/{id}: get: tags: - Payouts summary: Retrieve Payouts operationId: getPayoutId description: | Retrieves the details of a given payout by Id. parameters: - name: id in: path required: true description: A unique ID of the payout schema: $ref: '#/components/schemas/UniqueResourceIdentifier' examples: PayoutRefundCompleted: value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea responses: '200': $ref: '#/components/responses/200-PayoutStatusResponse' '400': $ref: '#/components/responses/400-BadRequest' '404': $ref: '#/components/responses/404-NotFound' '503': $ref: '#/components/responses/503-ServiceUnavailable' /providers: get: summary: List providers for a market responses: '200': $ref: '#/components/responses/200-OK-Providers' operationId: getProviders description: Lists all providers on a specified market. parameters: - name: market in: query description: The ISO 3166-1 alpha-2 market code. required: true schema: $ref: '#/components/schemas/Market' examples: ProviderListDE: value: DE tags: - Connectivity components: requestBodies: PaymentsCallback: content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' examples: Sample Callback Request UK RTP: $ref: '#/components/examples/PaymentResponseUKRTP' Sample Callback Request Germany RTP: $ref: '#/components/examples/PaymentResponseGermanyRTP' Sample Callback Request Sweden RTP: $ref: '#/components/examples/PaymentResponseSwedenRTP' Sample Callback Request France RTP: $ref: '#/components/examples/PaymentResponseFranceRTP' Sample Callback Request Italy RTP: $ref: '#/components/examples/PaymentResponseItalyRTP' Sample Callback Request Spain RTP: $ref: '#/components/examples/PaymentResponseSpainRTP' Sample Callback Request Norway RTP: $ref: '#/components/examples/PaymentResponseNorwayRTP' required: true description: 'Representation of Payments Callback ' PayoutsCallback: content: application/json: schema: $ref: '#/components/schemas/Payout' examples: Sample Callback Request - Refund: $ref: '#/components/examples/PayoutRefundResponse' Sample Callback Request - Withdrawal: $ref: '#/components/examples/PayoutWithdrawalResponse' required: true description: Representation of Payout Callback parameters: PaymentId: in: path description: A unique ID of the payment name: id schema: $ref: '#/components/schemas/UniqueResourceIdentifier' required: true IdempotencyKey: in: header description: "Client provided unique Idempotency Key.\n \n \n**NOTE**: *Creation of unique keys is up to the client, but usage of V4 UUIDs is suggested, \n \nor another random string to avoid collisions.*" name: Idempotency-Key schema: $ref: '#/components/schemas/UniqueResourceIdentifier' required: true PayoutId: name: id in: path description: A unique ID of the payout required: true schema: $ref: '#/components/schemas/UniqueResourceIdentifier' Market: name: market in: query description: The ISO 3166-1 alpha-2 market code. required: true schema: $ref: '#/components/schemas/Market' schemas: Payments: title: Payments type: object properties: paymentAmount: $ref: '#/components/schemas/PaymentAmount' paymentType: $ref: '#/components/schemas/PaymentType' market: $ref: '#/components/schemas/Market' redirectURL: type: string format: uri-reference description: An optional re-direct URL of the merchant where the end-user will be redirected to once they have successfully authorized the payment with their bank or financial institution. debtor: $ref: '#/components/schemas/Debtor' creditor: $ref: '#/components/schemas/Creditor' reference: $ref: '#/components/schemas/Reference' providerName: $ref: '#/components/schemas/ProviderName' required: - paymentAmount - paymentType - market - creditor - reference PaymentResponseMetadata: title: PaymentResponseMetadata type: object properties: id: $ref: '#/components/schemas/PaymentId' status: type: string description: |- The status of the submitted payment request **Refer to the table below for the supported statuses**: | Status | Description | | --------------|-------------------------------------------------------------------------------------| | **NONE** | The initial status for a payment. Indicates nothing has happened yet | | **SENT** | Payment has been SENT | | **SETTLED** | The Payment was seen on recipient's account | | **FAILED** | Attempt ended with error status. The details can be found in statusMessage field | | **CANCELLED** | The Payment was unsucessful due to an unexpected error e.g. a user fails to authorize a payment. | statusUpdatedAt: $ref: '#/components/schemas/StatusUpdatedAt' statusMessage: type: string description: |- A textual description of the status. ***NOTE: Only applicable when the status is FAILED or CANCELLED*** minLength: 1 maxLength: 128 createdAt: type: string format: date-time description: Indicates when the Payment request was created in the system. Follows ISO date time format. paymentLinkURL: type: string format: uri-reference description: An HTTPS URL to make the payment paymentQRCode: type: string description: An HTTPS URL to download the QR code image to make the payment. acknowledged: type: string description: Indicates if the payment has been acknowledged or not. readOnly: true default: UNKNOWN enum: - ACKNOWLEDGED - NOT_ACKNOWLEDGED - UNKNOWN PaymentResponse: allOf: - $ref: '#/components/schemas/PaymentResponseMetadata' - $ref: '#/components/schemas/Payments' PaymentId: allOf: - type: string description: A unique identifier of the payment - $ref: '#/components/schemas/UniqueResourceIdentifier' StatusUpdatedAt: title: StatusUpdatedAt type: string format: date-time description: The last updated date and time of the status, in ISO 8601 format. Reference: title: Reference type: string description: A free text field that can be used to provide a meaningful reference for a payment transaction minLength: 1 maxLength: 35 PaymentType: type: string description: |- The type of payment. List of supported payment types, their usage and categorization by region: Payment Type | Description -------------------------|----------------------------------------------------------------------- **REAL_TIME_PAYMENTS** | *Real-time Payments (Instant)* - `FASTER_PAYMENTS`, `SEPA_INSTANT_CREDIT_TRANSFER` **LOW_VALUE_PAYMENTS** | *Low-value Retail Payments* - `BACS`, `SEPA_CREDIT_TRANSFER` **HIGH_VALUE_PAYMENTS** | *High Value Business Payments* - `CHAPS` --- | | **Real-time Payments (INSTANT)** | **Low Value Payments** | **High-Value Payments** | |:-----------------:|:--------------------------------------:|:--------------------------------------:|:----------------------------------:| | **UK** | Faster Payments | BACS | CHAPS | | **SEPA** | SEPA Instant Credit Transfer | SEPA Credit Transfer | | **Real-time payments**: refer to payment solutions that process and settle financial transactions in real-time, typically within seconds, without any waiting period. **Low-value payments**: pertain to high-volume, low-value transactions mainly conducted by individuals or businesses for day-to-day expenses. These payments are usually processed in batches, not in real-time. **High Value Payments**: refer to large-sum transactions that are typically exchanged between banks or financial institutions. enum: - REAL_TIME_PAYMENTS - LOW_VALUE_PAYMENTS - HIGH_VALUE_PAYMENTS Creditor: title: Creditor type: object description: The recipient of funds in the context of a payment. allOf: - $ref: '#/components/schemas/Party' required: - name - account Party: title: Party type: object description: Representation of a **Sender** or **Recipient** of funds within the context of a payment. properties: name: $ref: '#/components/schemas/Name' account: $ref: '#/components/schemas/Account' ISOCurrencyCode: title: ISOCurrencyCode description: '**Currency of the money movement**: a 3 alpha character ISO 4217 currency code.' type: string minLength: 3 maxLength: 3 pattern: ^[A-Z]{3}$ example: EUR Value: title: Value type: string minLength: 3 maxLength: 18 pattern: ^(\d{1,15})\.(\d{2})$ example: '10.50' description: The value representation of a monetary amount. The amount value should be more than 0.01 with maximum of two decimal places allowed. AccountId: title: AccountId type: string minLength: 6 maxLength: 34 description: "Debtor account number as identified by the bank or financial institution.\n\n**Maximum length supported for each instrument and market. Refer to the table below**\n\n | Market | Maximum field length |\n | -----------------------------------|---------------------------------------------------------------|\n | United Kingdom |\t14 ( 6 digit Sort Code and 8 digit Account Number - 7 digit A/C numbers should be padded with a leading zero) |\n | SEPA | 34 (IBAN) |" Debtor: title: Debtor type: object description: |- The party that pays for goods and services or sends funds. *The debtor IBAN can be prefilled by the payment initiator:* - If prefilled, the user will not be allowed to change the IBAN afterwards. - The account selection experience will be skipped. allOf: - $ref: '#/components/schemas/Party' Name: title: Name type: string description: Name minLength: 1 maxLength: 140 AccountIdType: title: AccountIdType type: string description: The account identifier type enum: - SORT_CODE - IBAN Account: title: Account type: object description: Captures account information properties: accountId: $ref: '#/components/schemas/AccountId' accountIdType: $ref: '#/components/schemas/AccountIdType' required: - accountId - accountIdType Error: title: Error type: object description: The error object returned by the API. properties: title: type: string description: Short humanly-readable title of the error minLength: 1 maxLength: 99 httpStatus: type: integer format: int32 description: HTTP Status Code traceId: type: string description: JPMC assigned trace identifier minLength: 1 maxLength: 99 requestId: type: string description: The client originated requestId minLength: 1 maxLength: 99 context: type: array description: Provides additional context and detail on the validation errors minItems: 1 maxItems: 99 items: $ref: '#/components/schemas/ErrorContext' required: - title ErrorContext: title: ErrorContext type: object properties: code: type: string description: JPMC Short code that identifies the error - publicly cataloged and documented minLength: 5 maxLength: 5 message: type: string description: Humanly readable textual description of the error minLength: 1 maxLength: 99 location: type: string description: The location of the error occurred in the request. enum: - BODY - PATH - QUERY - HEADER minLength: 1 maxLength: 99 field: type: string description: The field which caused the error. Where the location of error occurred is BODY the field would contain the JSON Path expression minLength: 1 maxLength: 99 required: - message PayoutDetails: title: PayoutDetails description: Representation of a Payout and associated metadata. allOf: - $ref: '#/components/schemas/PayoutMetadata' - $ref: '#/components/schemas/Payout' PayoutMetadata: title: PayoutMetadata description: Representation of a Payout Metadata type: object properties: id: type: string description: Unique identifier for the payout example: 0f7d8749-555e-41fc-a947-98bca7f7310b readOnly: true status: type: string description: "Status of the payout\r\n\r\n\r\n**VALUE** | DESCRIPTION | \r\n-----------|--------------------------|\r\n **PENDING** | Default status |\r\n **COMPLETED** | Payout was successful |\r\n **FAILED** | Payout failed to complete|\r\n\t\r\n\r\n" example: PENDING readOnly: true statusUpdatedAt: $ref: '#/components/schemas/StatusUpdatedAt' createdAt: type: string format: date-time description: The date and time the payout was initiated, in ISO 8601 format. example: '2023-07-24T14:15:22Z' readOnly: true required: - id Payout: title: Payout description: Representation of a Payout type: object properties: payoutReference: type: string description: External Payout reference set by a merchant, must be between 6-18 characters long. minLength: 6 maxLength: 18 example: Refund 220-1z008 payoutType: type: string description: |- The type of payout being requested. | Payout | Description | | --------------|-----------------------------------------------------------------------------------------------------------------------------------------| | **REFUND** | This represents a repayment of a specific amount to a customer, usually as a result of overpayment or product/service dissatisfaction.| | **WITHDRAWAL** | A payment from a merchant account to the same payment details previously used to make a payment to the merchant account. This is also known as a closed-loop payout. enum: - REFUND - WITHDRAWAL payoutAmount: $ref: '#/components/schemas/PayoutAmount' paymentType: $ref: '#/components/schemas/PaymentType' sourcePaymentId: allOf: - type: string description: The source payment identifier associated with an earlier initiated payment, which can be used to determine the payee. - $ref: '#/components/schemas/UniqueResourceIdentifier' payoutReason: description: Payout/refund reason type: string enum: - WITHDRAWAL - REFUND - PARTIAL_REFUND - DUPLICATE required: - payoutReference - payoutType - paymentType - payoutAmount - sourcePaymentId PayoutAmount: title: PayoutAmount description: The amount value and currency of a payout.Amount should be more than 0.01 with maximum of two decimal places allowed. type: object properties: value: $ref: '#/components/schemas/Value' currency: $ref: '#/components/schemas/ISOCurrencyCode' required: - value - currency PaymentAmount: title: PaymentAmount type: object description: |- The amount value and currency of a payment amount should be more than 0.01 with maximum of two decimal places allowed. **Payment amount limits vary depending upon markets and financial institutions.** **Refer to the table below for current limits.** | Market | Payment limits (per transaction)| Reference| | -----------------------------------|---------------------------------|----------| | United Kingdom (FASTER_PAYMENTS) | GBP 1,000,000 | Refer to [Pay UK FPS Transaction Limits](https://www.wearepay.uk/what-we-do/payment-systems/faster-payment-system/transaction-limits/) for confirmation.| | SEPA (SEPA_INSTANT_CREDIT_TRANSFER)| EUR 100,000 | Refer to [European Payments Council(EPC) SEPA Instant Transaction Limits](https://www.europeanpaymentscouncil.eu/document-library/rulebooks/maximum-amount-instructions-under-2023-sepa-instant-credit-transfer-0) for confirmation.| | SEPA (SEPA_CREDIT_TRANSFER) | EUR 999,999,999.99 | Refer to [EPC SCT Rulebook](https://www.europeanpaymentscouncil.eu/what-we-do/epc-payment-schemes/sepa-credit-transfer/sepa-credit-transfer-rulebook-and) properties: value: $ref: '#/components/schemas/Value' currency: $ref: '#/components/schemas/ISOCurrencyCode' required: - value - currency UniqueResourceIdentifier: title: Identifier description: An immutable opaque string that uniquely identifies a resource. type: string minLength: 36 maxLength: 36 pattern: ^[-_.a-zA-Z0-9]{36}$ example: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 ProviderName: title: ProviderName type: string description: "Optional name of a pre-selected Provider (sourced from the providers list). \n \nProviding this field will skip the bank selection screen for the end-user using the payment link." example: uk-santander-oauth2 minLength: 2 maxLength: 64 Providers: title: Providers description: A representation of a collection of providers. type: object required: - providers properties: providers: description: List of providers type: array items: $ref: '#/components/schemas/Provider' minItems: 0 maxItems: 1000 Provider: title: Provider description: The provider model represents financial institutions with established connectivity with us. It specifies accesses to the financial institution, metadata about the financialinstitution, and what financial information can be accessed. type: object required: - accessType - authenticationUserType - capabilities - credentialsType - currency - displayName - fields - financialInstitutionId - financialInstitutionName - financialServices - hasAuthenticationOptions - market - multiFactor - name - popular - status - transactional - type properties: accessType: description: Mechanism used to access the data. type: string enum: - OPEN_BANKING - OTHER readOnly: true example: OPEN_BANKING authenticationFlow: description: For providers with access type `OPEN_BANKING`, indicates what type of authentication flow is used to access the data. type: string enum: - EMBEDDED - REDIRECT - DECOUPLED readOnly: true example: REDIRECT authenticationUserType: description: Indicates if a user authenticates toward the bank as a person or a business. type: string enum: - PERSONAL - BUSINESS - CORPORATE readOnly: true example: PERSONAL capabilities: description: Indicates what this provider is capable of, in terms of financial data it can aggregate and if it can execute payments. type: array uniqueItems: true minItems: 0 maxItems: 100 items: type: string enum: - UNKNOWN - TRANSFERS - EINVOICES - MORTGAGE_AGGREGATION - CHECKING_ACCOUNTS - SAVINGS_ACCOUNTS - CREDIT_CARDS - LOANS - INVESTMENTS - PAYMENTS - IDENTITY_DATA - CREATE_BENEFICIARIES - LIST_BENEFICIARIES - CREATE_BENEFICIARIES_IN_PAYMENT readOnly: true example: - CHECKING_ACCOUNTS credentialsType: description: When creating a new credential connected to the provider this will be the credentials type. type: string enum: - PASSWORD - MOBILE_BANKID - KEYFOB - THIRD_PARTY_APP readOnly: true example: THIRD_PARTY_APP currency: description: The default currency of the provider. type: string readOnly: true example: SEK displayDescription: description: Short displayable description of the authentication type used. type: string readOnly: true example: Bink authentication app displayName: description: The name displayed in the app and what implementors will most likely use to display the provider. type: string readOnly: true example: Bink fields: description: List of fields which need to be provided when creating a credential connected to the provider. type: array minItems: 0 maxItems: 1000 items: $ref: '#/components/schemas/Field' readOnly: true example: - name: password description: PIN sensitive: true masked: true financialInstitutionId: description: A unique identifier to group providers belonging the same financial institution. type: string readOnly: true example: 01234567-1234-1234-1234-123456789123 financialInstitutionName: description: A name to group providers belonging the same financial institution. type: string readOnly: true example: Bink financialServices: description: Information about financial services covered with this provider. type: array minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/FinancialService' readOnly: true groupDisplayName: description: The name of the group that several providers of the same bank can be placed in. Usually when a bank has branches and subsidiaries they are grouped under a single name. type: string readOnly: true example: Bink Corp. hasAuthenticationOptions: description: Indicates whether or not this provider has multiple authentication options available. type: boolean default: false readOnly: true healthStatus: $ref: '#/components/schemas/HealthStatusValue' images: $ref: '#/components/schemas/ImageUrls' loginHeaderColour: description: Sets the colour of the header of login screen. type: string readOnly: true example: '#FF0000' market: description: The market of the provider. Each provider is unique per market. type: string readOnly: true example: SE multiFactor: description: Indicates if the provider requires multi-factor authentication. type: boolean default: false readOnly: true example: true name: description: The unique identifier of the provider. This is used when creating new credentials. type: string readOnly: true example: se-bink-thirdpartyapp passwordHelpText: description: Short description of how to authenticate when creating a new credential for connected to the provider. type: string readOnly: true example: Use the same password as you would in your bank's mobile app. pisCapabilities: description: Indicates the Payments capabilities of this provider. type: array uniqueItems: true minItems: 0 maxItems: 100 items: type: string enum: - UNKNOWN - PIS_SE_BG - PIS_SE_PG - PIS_SE_BANK_TRANSFERS - PIS_FUTURE_DATE - PIS_SEPA_RECURRING_PAYMENTS - PIS_SEPA_ICT_RECURRING_PAYMENTS - SEPA_CREDIT_TRANSFER - SEPA_INSTANT_CREDIT_TRANSFER - FASTER_PAYMENTS - NORWEGIAN_DOMESTIC_CREDIT_TRANSFER - INSTANT_NORWEGIAN_DOMESTIC_CREDIT_TRANSFER_STRAKS - MULTIBANCO - PIS_BULK_PAYMENTS - PAYMENT_CANCELLATION - SWISS_DOMESTIC_CREDIT_TRANSFER - DANISH_DOMESTIC_CREDIT_TRANSFER - INSTANT_DANISH_DOMESTIC_CREDIT_TRANSFER_STRAKS - INSTANT_DANISH_DOMESTIC_CREDIT_TRANSFER_INTRADAG - POLISH_DOMESTIC_CREDIT_TRANSFER - INSTANT_POLISH_DOMESTIC_CREDIT_TRANSFER - VRP_SWEEPING - VRP_COMMERCIAL - PIS_MOBILE_AUTO_SIGN readOnly: true example: - SEPA_CREDIT_TRANSFER popular: description: Indicates if the provider is popular. This is normally set to true for the biggest financial institutions on a market. type: boolean default: false readOnly: true example: false releaseStatus: description: Indicates the Release Status of the provider type: string enum: - BETA readOnly: true example: BETA status: description: Indicates the current status of the provider. It is only possible to perform credentials create or refresh actions on providers which are enabled. type: string enum: - ENABLED - TEMPORARY_DISABLED - DISABLED readOnly: true example: ENABLED transactional: description: Indicates transactions can be aggregated for this provider. type: boolean default: false readOnly: true example: false type: description: Indicates what type of financial institution the provider represents. type: string enum: - BANK - CREDIT_CARD - BROKER - TEST - OTHER readOnly: true example: BANK Field: title: Field type: object properties: additionalInfo: description: A serialized JSON containing additional information that could be useful. type: string checkbox: description: Display boolean value as checkbox. type: boolean description: description: A short description of what the field is used for. type: string group: description: Identifies which fields should be gathered in the group. type: string helpText: description: Text displayed next to the input field. type: string hint: description: Gray text in the input view (Similar to a placeholder). type: string immutable: description: Controls whether or not the field values entered are immutable. type: boolean masked: description: Controls whether or not the field should be shown masked, like a password field. type: boolean maxLength: description: Integer value of the maximum accepted characters of input. type: integer format: int32 minLength: description: Integer value of the minimum accepted characters of input. type: integer format: int32 name: description: The name of the input field. type: string numeric: description: Controls whether or not the field should only accept numeric values. type: boolean oneOf: description: Identifies if only one field within group should be filled. type: boolean optional: description: Controls whether or not the field should be optional. type: boolean pattern: description: A regex pattern that can be evaluated on the input. type: string patternError: description: An error message that can be displayed if the provided pattern does not validate. type: string selectOptions: description: A list of options where the user should select one. type: array minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/SelectOption' sensitive: description: Controls whether or not the field should be sensitive. type: boolean style: description: Information about style of 2FA screen. type: string type: description: Stores information about field type. type: string value: type: string SelectOption: title: SelectOption type: object properties: iconUrl: description: A URL the client can optionally use to show an icon to represent the option. type: string text: description: The human-readable description of this option to display to the user. type: string value: description: The machine-readable value to send if the user picks this option. type: string ImageUrls: title: ImageUrls description: Image urls of the provider type: object properties: banner: description: A image url for the banner. type: string example: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg icon: description: A image url for the icon. type: string example: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg FinancialService: type: object title: FinancialService required: - segment - shortName properties: segment: description: Indicates which segment the financial service belongs to. type: string enum: - BUSINESS - PERSONAL readOnly: true example: PERSONAL shortName: description: Short name of the financial service. type: string readOnly: true example: Personal Banking HealthStatusValue: title: HealthStatusValue type: object properties: providerLogin: $ref: '#/components/schemas/ProviderLogin' ProviderLogin: type: object title: ProviderLogin properties: status: description: |- Indicates the health status of the provider. Use this information for user experience purposes (e.g. displaying a list of providers to the end user, and whether the provider's service is working as expected). type: string enum: - HEALTHY - DEGRADED - PLANNED_MAINTENANCE - DOWN readOnly: true Market: title: Market type: string description: |- ISO 3166-1 alpha-2 country code for the market where the payment is initiated. - **Market Coverage**: `DE`, `ES`, `GB`, `IT` minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ responses: 202-Accepted: description: Accepted content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' examples: PaymentResponseUKRTP: $ref: '#/components/examples/PaymentInitiationResponseUKRTP' PaymentResponseGermanyRTP: $ref: '#/components/examples/PaymentInitiationResponseDERTP' PaymentResponseFranceRTP: $ref: '#/components/examples/PaymentResponseFranceRTP' PaymentResponseItalyRTP: $ref: '#/components/examples/PaymentResponseItalyRTP' PaymentResponseSpainRTP: $ref: '#/components/examples/PaymentInitiationResponseSpainRTP' 200-Acknowledged: description: Successful content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' examples: PaymentResponseUKRTP: $ref: '#/components/examples/PaymentResponseUKRTP' PaymentResponseGermanyRTP: $ref: '#/components/examples/PaymentResponseGermanyRTP' PaymentResponseFranceRTP: $ref: '#/components/examples/PaymentResponseFranceRTP' PaymentResponseItalyRTP: $ref: '#/components/examples/PaymentResponseItalyRTP' PaymentResponseSpainRTP: $ref: '#/components/examples/PaymentResponseSpainRTP' 200-Successful: description: Successful content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' examples: PaymentResponseUKRTP: $ref: '#/components/examples/PaymentResponseUKRTP' PaymentResponseUKRTPSettled: $ref: '#/components/examples/PaymentResponseUKRTPSettled' PaymentResponseUKFailed: $ref: '#/components/examples/PaymentResponseUKRTPFailed' PaymentResponseGermanyFailed: $ref: '#/components/examples/PaymentResponseGermanyRTPCancelled' PaymentResponseGermanyRTP: $ref: '#/components/examples/PaymentResponseGermanyRTP' PaymentResponseFranceRTP: $ref: '#/components/examples/PaymentResponseFranceRTP' PaymentResponseItalyRTP: $ref: '#/components/examples/PaymentResponseItalyRTP' PaymentResponseSpainRTP: $ref: '#/components/examples/PaymentResponseSpainRTP' PaymentResponseSwedenRTP: $ref: '#/components/examples/PaymentResponseSwedenRTP' PaymentResponseNorwayRTP: $ref: '#/components/examples/PaymentResponseNorwayRTP' 20x-PayoutResponse: description: Payout successfully Initiated content: application/json: schema: $ref: '#/components/schemas/PayoutDetails' examples: PayoutRefundResponse: $ref: '#/components/examples/PayoutRefundResponse' PayoutWithdrawalResponse: $ref: '#/components/examples/PayoutWithdrawalResponse' 200-PayoutStatusResponse: description: Payout Status Retrieval content: application/json: schema: $ref: '#/components/schemas/PayoutDetails' examples: PayoutRefundResponse: $ref: '#/components/examples/PayoutRefundResponse' PayoutRefundCompleted: $ref: '#/components/examples/PayoutRefundCompleted' PayoutRefundFailed: $ref: '#/components/examples/PayoutRefundFailed' PayoutWithdrawalResponse: $ref: '#/components/examples/PayoutWithdrawalResponse' PayoutWithdrawalCompleted: $ref: '#/components/examples/PayoutWithdrawalCompleted' PayoutWithdrawalFailed: $ref: '#/components/examples/PayoutWithdrawalFailed' 400-BadRequest: description: "Bad Request. \n \n**List of Error codes and Usage explanations.**\n \n| Error Code | Usage |\n| -------------- |------------------------------------------------|\n| 10001 | Mandatory field missing |\n| 10002 | Minimum length violation |\n| 10003 | Maximum length violation |\n| 10100 | Minimum value violation |\n| 10101 | Maximum value violation |\n| 10102 | Range violation |\n| 10103 | Bad format |\n| 10104 | Bad value |\n| 10105 | Unexpected field |\n| 10106 | Idempotency Check Failure |\n| 10199 | Other |\n| 13000 | Uncategorized error |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidDataError: $ref: '#/components/examples/InvalidDataError' IdempotencyKeyMissingError: $ref: '#/components/examples/IdempotencyKeyMissingError' BadAccountIdFormat: $ref: '#/components/examples/PaymentResponseBadFormat' InvalidCurrencyMarket: $ref: '#/components/examples/PaymentResponseInvalidCurrency' InvalidAccountId: $ref: '#/components/examples/PaymentResponseAccountNotFound' 400-BadRequest-Non-State-Change: description: "Bad Request. \n \n**List of Error codes and Usage explanations.**\n| Error Code | Usage |\n| -------------- |------------------------------------------------|\n| 10103 | Bad format |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: BadFormatError: $ref: '#/components/examples/BadFormatError' 401-Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: UnauthorizedError: $ref: '#/components/examples/Unauthorized' 403-Forbidden: description: "Forbidden. \n| Error Code | Description |\n|---------------|--------------------------------------------|\n| 14000 | Security failure | " content: application/json: schema: $ref: '#/components/schemas/Error' examples: SecurityFailureError: $ref: '#/components/examples/SecurityFailureError' 404-NotFound: description: Resource Not Found content: application/json: schema: $ref: '#/components/schemas/Error' examples: ResourceNotFoundError: $ref: '#/components/examples/ResourceNotFound' 409-Conflict: description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' examples: ConflictError: $ref: '#/components/examples/ConflictError' 503-ServiceUnavailable: description: "Service Unavailable.\n \n*List of Error codes and Rule definitions.* \n| Error Code | Description |\n|---------------|-------------------|\n| 12000 | System error |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: ServiceUnavailableError: $ref: '#/components/examples/ServiceUnavailableError' 200-OK-Providers: description: List Providers response content: application/json: schema: $ref: '#/components/schemas/Providers' examples: SEMarketProvidersExample: $ref: '#/components/examples/ProviderListSE' ProviderListDE: $ref: '#/components/examples/ProviderListDE' ProviderListGB: $ref: '#/components/examples/ProviderListGB' examples: ConflictError: value: title: Idempotency Check Failure httpStatus: 409 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '10106' message: The request conflicts with the current state of the server. Please ensure your request is unique. location: BODY ResourceNotFound: value: title: Resource Not Found httpStatus: 404 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - message: Invalid resource identifier provided. field: id location: PATH BadFormatError: value: title: Bad Format httpStatus: 400 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '10103' message: The identifier provided is not a valid format. field: id location: PATH Unauthorized: value: title: Unauthorized httpStatus: 401 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - message: Unauthorized InvalidDataError: value: title: Invalid Data httpStatus: 400 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '10001' message: Property amount is mandatory. field: $.paymentAmount.amount location: BODY IdempotencyKeyMissingError: value: title: Invalid Data httpStatus: 400 traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '10106' message: Idempotency-Key header is missing. location: HEADER SecurityFailureError: value: title: Security Failure httpStatus: 403 traceId: 5914f136-4544-4b1c-8004-6c2388ba76b4 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '14000' message: Invalid client profile ServiceUnavailableError: value: title: System Error httpStatus: 503 traceId: d3dd646b-1fd0-4389-b6b4-0c3ab486ccc4 requestId: d3dd646b-1fd0-4389-b6b4-0c3ab486bvg1 context: - code: '12000' message: Service Unavailable. Please try again. PaymentResponseUKRTPFailed: value: id: 030bd614-2cd2-4e58-acff-51a41f713577 status: FAILED statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '100.00' currency: GBP paymentType: REAL_TIME_PAYMENTS market: GB redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Bala Thandapani account: accountId: '06080912311871' accountIdType: SORT_CODE creditor: name: Newgen Media LLC account: accountId: '11223387654321' accountIdType: SORT_CODE reference: 'subscription - #78004300' PaymentResponseUKRTP: value: id: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 status: SENT statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '100.00' currency: GBP paymentType: REAL_TIME_PAYMENTS market: GB redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Bala Thandapani account: accountId: '06080912311871' accountIdType: SORT_CODE creditor: name: Newgen Media LLC account: accountId: '11223387654321' accountIdType: SORT_CODE reference: 'subscription - #78004300' acknowledged: ACKNOWLEDGED PaymentResponseUKRTPSettled: value: id: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 status: SETTLED statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '100.00' currency: GBP paymentType: REAL_TIME_PAYMENTS market: GB redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Bala Thandapani account: accountId: '06080912311871' accountIdType: SORT_CODE creditor: name: Newgen Media LLC account: accountId: '11223387654321' accountIdType: SORT_CODE reference: 'subscription - #78004300' acknowledged: ACKNOWLEDGED PaymentInitiationResponseUKRTP: value: id: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '100.00' currency: GBP paymentType: REAL_TIME_PAYMENTS market: GB redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Bala Thandapani creditor: name: Newgen Media LLC account: accountId: '11223387654321' accountIdType: SORT_CODE reference: 'subscription - #78004300' PaymentResponseGermanyRTP: value: id: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: SENT statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '150.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: DE redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Joshua Sundar account: accountId: DE89370400440532013000 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: DE89370400440532013987 accountIdType: IBAN reference: 'subscription - #99604300' acknowledged: ACKNOWLEDGED PaymentResponseGermanyRTPCancelled: value: id: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: CANCELLED statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '150.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: DE redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Joshua Sundar account: accountId: DE89370400440532013000 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: DE89370400440532013987 accountIdType: IBAN reference: 'subscription - #99604300' PaymentInitiationResponseDERTP: value: id: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '150.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: DE redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=DE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Joshua Sundar account: accountId: DE89370400440532013000 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: DE89370400440532013987 accountIdType: IBAN reference: 'subscription - #99604300' PaymentResponseFranceRTP: value: id: 2a55c901-479c-463f-a011-0ad291dfc5df status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '90.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: FR redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=FR&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Saheed Osupa account: accountId: FR1420041010050500013M02606 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: FR1420041010050500013M02987 accountIdType: IBAN reference: 'subscription - #12504300' PaymentResponseItalyRTP: value: id: 52ede77e-02e8-4154-9af9-13f62fdc064d status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '50.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: IT redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=IT&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Roberto Molli account: accountId: IT60X0542811101000000123456 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: IT60X0542811101000000123987 accountIdType: IBAN reference: 'subscription - #78158300' PaymentInitiationResponseSpainRTP: value: id: c1225715-1014-450f-bdd0-95767f0cfbc2 status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '85.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: ES redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=ES&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Abdul Rahman creditor: name: Newgen Media LLC account: accountId: ES9121000418450200051987 accountIdType: IBAN reference: 'subscription - #79694300' PaymentResponseSpainRTP: value: id: c1225715-1014-450f-bdd0-95767f0cfbc2 status: SENT statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '85.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: ES redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=ES&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Abdul Rahman account: accountId: ES9121000418450200051332 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: ES9121000418450200051987 accountIdType: IBAN reference: 'subscription - #79694300' acknowledged: ACKNOWLEDGED PaymentResponseSwedenRTP: value: id: e5c9c1d2-65fb-4f0c-ba21-b71c8885a50b status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '105.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: SE redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=SE&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Jenifer Laurence account: accountId: SE4550000000058398257466 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: SE4550000000058398257987 accountIdType: IBAN reference: 'subscription - #79694300' PaymentResponseNorwayRTP: value: id: 6bef35f3-808e-4265-86fe-ac5f2a03fa72 status: NONE statusUpdatedAt: '2023-08-20T13:31:25Z' createdAt: '2023-08-20T13:31:25Z' paymentAmount: value: '105.00' currency: EUR paymentType: REAL_TIME_PAYMENTS market: 'NO' redirectURL: https://sites.obtest.com/sites/cib paymentLinkURL: https://paybybank.jpmorgan.com/1.0/pay/direct?client_id=9cd2e1c9527e4e18ad4756393e09cb2c&redirect_uri=https://sites.obtest.com/sites/cib&market=NO&payment_request_id=1b036f9c-8c84-4ce6-b1dd-5979472945a1 paymentQRCode: https://paybybank.jpmorgan.com/api-proxy/api/enablement/v2/payments/qr/aHR0cHM6Ly9wYXlieWJhbmsuanBtb3JnYW4uY29tLzEuMC9wYXkvZGlyZWN0P21hcmtldD1HQiZyZWRpcmVjdF91cmk9aHR0cHM6Ly9zaXRlcy5vYnRlc3QuY29tL3NpdGVzL2NpYiZwYXltZW50X3JlcXVlc3RfaWQ9NWM0MjVjMjctMDVhNy00ODE5LWJkYjAtZGI3ZDU4Y2ZjNjYwJmxvY2FsZT1lbl9VUyZjbGllbnRfaWQ9M2QwZGNhN2RhZGE1NGUxOWI1YWYwMjRlZjk3Nzc0Mzg= debtor: name: Mary KOM account: accountId: NO9386011117947 accountIdType: IBAN creditor: name: Newgen Media LLC account: accountId: NO9386011117987 accountIdType: IBAN reference: 'subscription - #79694300' PaymentResponseBadFormat: value: title: Bad Format httpStatus: 400 traceId: b41cb267-51db-4eb1-9bc6-fc93d85d78a7 requestId: 442b4c6f-c52d-4e40-8a64-fd7fb9ca0089 context: - code: '10103' message: The accountId provided is in a bad format. field: $.creditor.account.accountId location: BODY PaymentResponseInvalidCurrency: value: title: Invalid Data httpStatus: 400 traceId: 6b03ac09-0d9e-4c72-909d-fad6a627f0c2 requestId: 7215813e-ac80-4ddc-9f67-9fbfc1ac934c context: - code: '10001' message: Destination country and currency combination is invalid. field: $.market location: BODY PaymentResponseAccountNotFound: value: title: Invalid Data httpStatus: 400 traceId: b183d4cb-cc4b-437a-9342-09f7696d0c1c requestId: 71ed084e-4d25-492a-a942-4cbeea38e271 context: - code: '10001' message: creditor accountId not found field: $.creditor.account.accountId location: BODY PayoutRefundResponse: value: id: 0f7d8749-555e-41fc-a947-98bca7f7310b payoutReference: Refund 220-1z008 payoutType: REFUND payoutReason: PARTIAL_REFUND payoutAmount: value: '10.50' currency: EUR paymentType: REAL_TIME_PAYMENTS sourcePaymentId: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: PENDING createdAt: '2023-07-24T14:15:22Z' PayoutRefundCompleted: value: id: 0f7d8749-555e-41fc-a947-98bca7f7310b payoutReference: Refund 220-1z008 payoutType: REFUND payoutReason: PARTIAL_REFUND payoutAmount: value: '10.50' currency: EUR paymentType: REAL_TIME_PAYMENTS sourcePaymentId: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: COMPLETED statusUpdatedAt: '2023-07-24T14:15:22Z' createdAt: '2023-07-24T14:15:22Z' PayoutRefundFailed: value: id: 030bd614-2cd2-4e58-acff-51a41f713577 payoutReference: Refund 220-1z008 payoutType: REFUND payoutReason: REFUND payoutAmount: value: '10.50' currency: EUR paymentType: REAL_TIME_PAYMENTS sourcePaymentId: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea status: FAILED statusUpdatedAt: '2023-07-24T14:15:22Z' createdAt: '2023-07-24T14:15:22Z' PayoutWithdrawalResponse: value: id: 8cee00f7-fdfb-40af-8fde-9fcf6ddaa4c1 payoutReference: Payout 221-1x009 payoutType: WITHDRAWAL payoutReason: WITHDRAWAL payoutAmount: value: '20.50' currency: GBP paymentType: REAL_TIME_PAYMENTS sourcePaymentId: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 status: PENDING createdAt: '2023-07-24T20:15:22Z' PayoutWithdrawalCompleted: value: id: 8cee00f7-fdfb-40af-8fde-9fcf6ddaa4c1 payoutReference: Payout 221-1x009 payoutType: WITHDRAWAL payoutReason: WITHDRAWAL payoutAmount: value: '20.50' currency: GBP paymentType: REAL_TIME_PAYMENTS sourcePaymentId: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 status: COMPLETED statusUpdatedAt: '2023-07-24T14:15:22Z' createdAt: '2023-07-24T20:15:22Z' PayoutWithdrawalFailed: value: id: 503ff9e5-d4fe-498d-9b57-e7ed07251b95 payoutReference: Payout 221-1x009 payoutType: WITHDRAWAL payoutReason: WITHDRAWAL payoutAmount: value: '20.50' currency: GBP paymentType: REAL_TIME_PAYMENTS sourcePaymentId: 1b036f9c-8c84-4ce6-b1dd-5979472945a1 statusUpdatedAt: '2023-07-24T14:15:22Z' status: FAILED createdAt: '2023-07-24T20:15:22Z' ProviderListSE: value: providers: - accessType: OPEN_BANKING authenticationFlow: REDIRECT authenticationUserType: PERSONAL capabilities: - CHECKING_ACCOUNTS credentialsType: THIRD_PARTY_APP currency: SEK displayDescription: Bink authentication app displayName: Bink fields: - name: password description: PIN sensitive: true masked: true financialInstitutionId: 01234567-1234-1234-1234-123456789123 financialInstitutionName: Bink financialServices: - segment: PERSONAL shortName: Personal Banking groupDisplayName: Bink Corp. hasAuthenticationOptions: false healthStatus: providerLogin: status: HEALTHY images: banner: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg icon: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg loginHeaderColour: '#FF0000' market: SE multiFactor: true name: se-bink-thirdpartyapp passwordHelpText: Use the same password as you would in your bank's mobile app. pisCapabilities: - SEPA_CREDIT_TRANSFER popular: false releaseStatus: BETA status: ENABLED transactional: false type: BANK ProviderListDE: value: providers: - accessType: OPEN_BANKING authenticationFlow: EMBEDDED authenticationUserType: PERSONAL capabilities: - CHECKING_ACCOUNTS - TRANSFERS pisCapabilities: - PIS_SEPA_RECURRING_PAYMENTS - SEPA_INSTANT_CREDIT_TRANSFER - SEPA_CREDIT_TRANSFER credentialsType: PASSWORD currency: EUR displayDescription: Sparkasse authentication app displayName: Sparkasse Hegau-Bodensee name: de-sparkasse-singen-radolfzell-ob fields: - name: username description: Login name sensitive: false masked: false pattern: ^.{1,16}$ patternError: Sparkassen Login name (maximum 15 characters) or 16-digit Legitimations-ID financialInstitutionId: b49e2c88317642a1aee7de35ca2c3553 financialInstitutionName: Sparkasse Hegau-Bodensee groupDisplayName: Sparkassen financialServices: - segment: PERSONAL shortName: Personal Banking - segment: BUSINESS shortName: Business Banking hasAuthenticationOptions: false healthStatus: providerLogin: status: HEALTHY images: banner: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg icon: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg loginHeaderColour: '#ff0000' market: DE multiFactor: true passwordHelpText: Use the same password as you would in your bank's mobile app. popular: true releaseStatus: BETA status: ENABLED transactional: false type: CREDIT_CARD ProviderListGB: value: providers: - accessType: OPEN_BANKING authenticationUserType: BUSINESS authenticationFlow: REDIRECT capabilities: - CREDIT_CARDS - CHECKING_ACCOUNTS - SAVINGS_ACCOUNTS - IDENTITY_DATA - TRANSFERS pisCapabilities: - FASTER_PAYMENTS credentialsType: THIRD_PARTY_APP currency: GBP displayName: HSBC Kinetic fields: [] financialInstitutionId: a2f21124a09643ac97943e48dc3ee8cf financialInstitutionName: HSBC Kinetic groupDisplayName: HSBC images: icon: https://www.jpmorgan.com/content/dam/jpmorgan/images/logos/jpm-logo-brown-062322.svg market: GB multiFactor: false name: uk-hsbc-kinetic-ob passwordHelpText: '' popular: false status: ENABLED transactional: true type: BANK financialServices: - segment: BUSINESS shortName: HSBC Kinetic Online hasAuthenticationOptions: false healthStatus: providerLogin: status: HEALTHY x-jpmc-securityDefinitions: JPMC-OAuth2: {} x-jpmc-security: {} x-jpmc-securitySchemes: MutualTLS: type: x509 description: Mutual TLS authentication using client and server certificates. x509: {} ``` ```yaml openapi: 3.0.0 info: title: Pay By Bank PIS version: 1.1.4 description: "## Pay By Bank v1 - PIS API\n\n---\n\n> J.P. Morgan as a registered Third Party Provider (**TPP**) of Open Banking services,\n> offers a seamless integration platform for Pay by Bank such that:\n> - clients can initiate payments (serving as a Payment Initiation Service Provider, or **PISP**) \n>" contact: name: JPMorgan Chase & Co. API Support email: imsd.security.operations@jpmorgan.com url: https://developer.payments.jpmorgan.com/contact/support servers: - url: https://apigateway.jpmorgan.com/tsapi/v1 description: PRODUCTION - MTLS - url: https://api-mock.payments.jpmorgan.com/tsapi/v1 description: MOCK tags: - name: PIS description: Payment Initiation Services - name: Refunds description: Refund initiation services. paths: /pisp/providers: post: summary: Request for Providers description: "- Clients can request a list of ASPSPs reachable using J.P. Morgan's PISP\nservices in each country.\n- For the purposes of this API, ASPSPs are referred to as 'Providers.' \n- The request for retrieving a particular country's list of supported providers must contain the correct country code." tags: - PIS operationId: retrievePISProviders parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/PispProvidersRequest' examples: ExamplePispProvidersRequest: $ref: '#/components/examples/PispProvidersRequestExample' required: false x-examples: - name: ExamplePispProvidersRequest description: Example country code parameters: body: countryCode: XF responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/PispProvidersResponse' examples: ExamplePispProvidersResponse: $ref: '#/components/examples/PispProvidersResponseExample' '400': description: "Bad Request\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| PISP-001 |Customer does not exist within our system | \n| PISP-003 |Invalid JSON format |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '403': description: |- Forbidden **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------| | PISP-006 |Unauthorized access | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/UnauthorizedAccessExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------------| | PISP-002 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|------------------------------------------------------------|\n| PISP-004 |System exception | \n| PISP-005 |No customer exists associated with paymentId: `` |\n| PISP-017 |The JSON request is incorrectly formed |\n| PISP-017 |Customer is locked |\n| PISP-017 |We do not support the received provider_mode |\n| PISP-017 |The return_to URL exceeds 2040 characters. |\n| PISP-017 |Invalid payment attributes. |\n| PISP-017 |Certificate not found. |\n| PISP-017 |Action not supported |\n| PISP-017 |The accessed provider is inactive at the moment |\n| PISP-017 |The provider is temporary unavailable. |\n| PISP-017 |Payment already authorized |\n| PISP-017 |Sending a provider_code that is not present in our system |\n| PISP-017 |Failed to create the payment |\n| PISP-017 |The customer tried to initiate a payment with invalid credentials|\n| PISP-017 |Payment already finished. |" content: application/json: schema: $ref: '#/components/schemas/Error' /pisp/payment/request: post: summary: Request for Payment Initiation description: This request initiates a payment on a PSU's behalf. tags: - PIS operationId: createPaymentIntent parameters: - $ref: '#/components/parameters/ContentType' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Payment' examples: ExampleSEPAPaymentRequest: $ref: '#/components/examples/SEPAPaymentRequestExample' ExampleFPSPaymentRequest: $ref: '#/components/examples/FPSPaymentRequestExample' ExampleBACSPaymentRequest: $ref: '#/components/examples/BACSPaymentRequestExample' ExampleCHAPSPaymentRequest: $ref: '#/components/examples/CHAPSPaymentRequestExample' x-examples: - name: ExampleSEPAPaymentRequest description: Example Request for an SEPA payment parameters: body: customer_id: 00ef7b8enca1elA1tm6bmyphhgk3 country_code: DE provider_code: berliner_sparkasse_oauth_client_de payee_description: MusicCorpDE template_identifier: SEPA return_to: https://www.merchant.com/signup/redirectRequestLanding?action=nextAction&skipMoneyballModeRedirect=true&authURL=1695271209906.YsdmtRcveemWqg%252BQFVHNwRJO8B0%3D&flwssn=fb616054-ae67-4767-81a9-fb4d0f9976c0&nftoken=BQAbAAEBECYycrotnMdMPM%2BW6p7%2BWC%2BAoKPmq4VIBpWZVXQlGJnjdG0QZXjPij2O0eICZncDDLrE2n%2FMLxZvSBxYfto72m9nvCUjz0pZlnd%2Fcf1UnJStNNky3qwZbKMAJP2PeosCnbQ8fXIifdfaMcXZKZEKCSaOX1LpCM1Xx0kB6yfmT1FuTV5NlaphUclni%2FYt7BNVqC4tyjPAM9uUkqCPMBZzxgw%2FGeUBV2kXdmfct9EtE5PMGms%3D&redirectStrategy=open-banking payment_attributes: end_to_end_id: '20018300321270540' creditor_name: MusicCorp creditor_iban: DEXXXXXXXXXXXXXXXXXXXX debtor_iban: DEXXXXXXXXXXXXXXXXXXXX description: For goods amount: '17.99' currency_code: EUR mode: Normal - name: ExampleFPSPaymentRequest description: Example Request for an FPS payment parameters: body: customer_id: 00ef7b8enca1elA1tm6bmyphhgk3 country_code: DE provider_code: berliner_sparkasse_oauth_client_de payee_description: MusicCorpDE template_identifier: SEPA return_to: https://www.merchant.com/signup/redirectRequestLanding?action=nextAction&skipMoneyballModeRedirect=true&authURL=1695271209906.YsdmtRcveemWqg%252BQFVHNwRJO8B0%3D&flwssn=fb616054-ae67-4767-81a9-fb4d0f9976c0&nftoken=BQAbAAEBECYycrotnMdMPM%2BW6p7%2BWC%2BAoKPmq4VIBpWZVXQlGJnjdG0QZXjPij2O0eICZncDDLrE2n%2FMLxZvSBxYfto72m9nvCUjz0pZlnd%2Fcf1UnJStNNky3qwZbKMAJP2PeosCnbQ8fXIifdfaMcXZKZEKCSaOX1LpCM1Xx0kB6yfmT1FuTV5NlaphUclni%2FYt7BNVqC4tyjPAM9uUkqCPMBZzxgw%2FGeUBV2kXdmfct9EtE5PMGms%3D&redirectStrategy=open-banking payment_attributes: end_to_end_id: '20018300321270540' creditor_name: MusicCorp creditor_iban: DEXXXXXXXXXXXXXXXXXXXX debtor_iban: DEXXXXXXXXXXXXXXXXXXXX description: For goods amount: '17.99' currency_code: EUR mode: Normal - name: ExampleBACSPaymentRequest description: Example Request for a BACS payment parameters: body: customer_id: D310252 country_code: GB provider_code: barclays_oauth_client_gb payee_description: barclays PVT 10-25-23 template_identifier: BACS return_to: https://sites.obtest.com/sites/cib payment_attributes: end_to_end_id: PISP_1025_PVT_002 creditor_name: John Smith creditor_sort_code: XXX242 creditor_account_number: XXXXX035 description: For Goods amount: '100.00' currency_code: GBP - name: ExampleCHAPSPaymentRequest description: Example Request for a CHAPS payment parameters: body: customer_id: D310252 country_code: GB provider_code: barclays_oauth_client_gb payee_description: barclays PVT 10-25-23 template_identifier: CHAPS return_to: https://sites.obtest.com/sites/cib payment_attributes: end_to_end_id: PISP_1025_PVT_002 creditor_name: John Smith creditor_sort_code: XXX242 creditor_account_number: XXXXX035 description: For Goods amount: '100.00' currency_code: GBP responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' examples: ExamplePaymentResponse: $ref: '#/components/examples/PaymentResponseExample' '400': description: "Bad Request\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| PISP-001 |Customer does not exist within our system | \n| PISP-003 |Invalid JSON format |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '403': description: |- Forbidden **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------| | PISP-006 |Unauthorized access | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/UnauthorizedAccessExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------------| | PISP-002 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|------------------------------------------------------------|\n| PISP-004 |System exception | \n| PISP-005 |No customer exists associated with paymentId: `` |\n| PISP-017 |The JSON request is incorrectly formed |\n| PISP-017 |Customer is locked |\n| PISP-017 |We do not support the received provider_mode |\n| PISP-017 |The return_to URL exceeds 2040 characters. |\n| PISP-017 |Invalid payment attributes. |\n| PISP-017 |Certificate not found. |\n| PISP-017 |Action not supported |\n| PISP-017 |The accessed provider is inactive at the moment |\n| PISP-017 |The provider is temporary unavailable. |\n| PISP-017 |Payment already authorized |\n| PISP-017 |Sending a provider_code that is not present in our system |\n| PISP-017 |Failed to create the payment |\n| PISP-017 |The customer tried to initiate a payment with invalid credentials|\n| PISP-017 |Payment already finished. |" content: application/json: schema: $ref: '#/components/schemas/Error' /pisp/payment/authorize: post: summary: Request for Payment Authorization description: "This request is used to authorize a payment. \n\n**NOTE: The request payload MUST be digitally signed and encrypted using the Signing Certificate**" operationId: createPaymentAuthorization tags: - PIS parameters: - $ref: '#/components/parameters/ContentType' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentAuthorizationRequest' examples: ExamplePaymentAuthorizeRequest: $ref: '#/components/examples/PaymentAuthorizationRequestExample' x-examples: - name: ExamplePaymentAuthorizeRequest description: Example Request for payment Authorization parameters: body: paymentId: '1105291498426995690' authToken: a8a96b6fa3932885be4a46162fd7a0c1579e65a0803e4946a67dae5279dc0c13&end_to_end_id=00000002 responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/PaymentAuthStatusResponse' examples: ExamplePaymentAuthorizationresponse: $ref: '#/components/examples/PaymentAuthStatusResponseExample' '400': description: "Bad Request\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| PISP-001 |Customer does not exist within our system | \n| PISP-003 |Invalid JSON format |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '403': description: |- Forbidden **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------| | PISP-006 |Unauthorized access | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/UnauthorizedAccessExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------------| | PISP-002 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|------------------------------------------------------------|\n| PISP-004 |System exception | \n| PISP-005 |No customer exists associated with paymentId: `` |\n| PISP-017 |The JSON request is incorrectly formed |\n| PISP-017 |Customer is locked |\n| PISP-017 |We do not support the received provider_mode |\n| PISP-017 |The return_to URL exceeds 2040 characters. |\n| PISP-017 |Invalid payment attributes. |\n| PISP-017 |Certificate not found. |\n| PISP-017 |Action not supported |\n| PISP-017 |The accessed provider is inactive at the moment |\n| PISP-017 |The provider is temporary unavailable. |\n| PISP-017 |Payment already authorized |\n| PISP-017 |Sending a provider_code that is not present in our system |\n| PISP-017 |Failed to create the payment |\n| PISP-017 |The customer tried to initiate a payment with invalid credentials|\n| PISP-017 |Payment already finished. |" content: application/json: schema: $ref: '#/components/schemas/Error' /pisp/payment/status: post: summary: Request for Payment Status description: |- This request retrieves the current status of a previously initiated payment. operationId: retrievePaymentStatus tags: - PIS parameters: - $ref: '#/components/parameters/ContentType' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentStatusRequest' examples: ExamplePaymentStatusRequest: $ref: '#/components/examples/PaymentStatusRequestExample' x-examples: - name: ExamplePaymentStatusRequest description: Example Payment Status Request parameters: body: customer_id: '1105291496237568999' payment_id: '1104531176632095201' responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/PaymentAuthStatusResponse' examples: ExamplesPaymentStatusResponse: $ref: '#/components/examples/PaymentAuthStatusResponseExample' '400': description: "Bad Request\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| PISP-001 |Customer does not exist within our system | \n| PISP-003 |Invalid JSON format |" content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '403': description: |- Forbidden **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------| | PISP-006 |Unauthorized access | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/UnauthorizedAccessExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|---------------------------| | PISP-002 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n\n| Error Code | Meaning |\n|------------|------------------------------------------------------------|\n| PISP-004 |System exception | \n| PISP-005 |No customer exists associated with paymentId: `` |\n| PISP-017 |The JSON request is incorrectly formed |\n| PISP-017 |Customer is locked |\n| PISP-017 |We do not support the received provider_mode |\n| PISP-017 |The return_to URL exceeds 2040 characters. |\n| PISP-017 |Invalid payment attributes. |\n| PISP-017 |Certificate not found. |\n| PISP-017 |Action not supported |\n| PISP-017 |The accessed provider is inactive at the moment |\n| PISP-017 |The provider is temporary unavailable. |\n| PISP-017 |Payment already authorized |\n| PISP-017 |Sending a provider_code that is not present in our system |\n| PISP-017 |Failed to create the payment |\n| PISP-017 |The customer tried to initiate a payment with invalid credentials|\n| PISP-017 |Payment already finished. |" content: application/json: schema: $ref: '#/components/schemas/Error' /pisp/payments/refunds: post: summary: Request for Payment refunds description: This request initiates a refund on the payments made before operationId: createRefunds tags: - Refunds requestBody: content: application/json: schema: $ref: '#/components/schemas/RefundsRequest' required: true x-examples: - name: PSD2 Payment Refunds description: Refund request payload parameters: body: paymentIdentifiers: endToEndId: '123123123' paymentId: '1401642' amount: amount: 100 currency: GBP reason: REQUESTED_BY_CUSTOMER mode: INSTANT responses: '202': description: Refund has been accepted for processing content: application/json: schema: $ref: '#/components/schemas/RefundsResponse' '400': description: "Bad Request.\n\n**List of Error codes and Rule definitions. errorDescription is\ndynamically generated hence not shown here.\nRefer the table below**\n| Error Code | Meaning |\n|-------------|------------------------------------------------------|\n| 10001 | Mandatory field is missing or invalid |\n| 10002 | Minimum length validation failure |\n| 10003 | Maximum length validation failure |\n| 10006 | Amount validation failure ~ value less than minimum | \n| 10007 | Amount validation failure ~ value is not a number | \n| 10008 | Validation failure ~ unexpected value provided | \n| 10009 | Invalid Id provided | \n| 12000 | System Error | \n| 13000 | Uncategorized Error | \n\n**Standard API Gateway Error codes and descriptions** \n\n| Error Code | Meaning |\n|--------------|------------------------------|\n| GCA-030 | API Processing Error |" content: application/json: schema: $ref: '#/components/schemas/ErrorsInit' '403': description: |- Forbidden. | Error Code | Meaning | |--------------|--------------------------------------------| | GCA-001 | Client is not eligible for the API Service | | GCA-003 | Client is not eligible for the API Service | content: application/json: schema: $ref: '#/components/schemas/Errors' '503': description: |- Service Unavailable. | Error Code | Meaning | |--------------|-------------------| | GCA-099 | System Unavailable | content: application/json: schema: $ref: '#/components/schemas/Errors' /pisp/payments/refunds/{refundId}: get: summary: Retrieve refund status description: This request retrieves the refund status and details based on the given refund Id tags: - Refunds operationId: getRefunds parameters: - $ref: '#/components/parameters/RefundId' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/RefundsResponse' '400': description: "Bad Request.\n\n**List of Error codes and Rule definitions. errorDescription is\ndynamically generated hence not shown here**\n| Error Code | Meaning |\n|-------------|------------------------------------------------------|\n| 10001 | Mandatory field is missing or invalid |\n| 10002 | Minimum length validation failure |\n| 10003 | Maximum length validation failure |\n| 10006 | Amount validation failure ~ value less than minimum | \n| 10007 | Amount validation failure ~ value is not a number | \n| 10008 | Validation failure ~ unexpected value provided | \n| 10009 | Invalid Id provided | \n| 12000 | System Error | \n| 13000 | Uncategorized Error | \n\n**Standard API Gateway Error codes and descriptions** \n\n| Error Code | Meaning |\n|--------------|------------------------------|\n| GCA-030 | API Processing Error |" content: application/json: schema: $ref: '#/components/schemas/ErrorsInit' '403': description: |- Forbidden. | Error Code | Meaning | |--------------|--------------------------------------------| | GCA-001 | Client is not eligible for the API Service | | GCA-003 | Client is not eligible for the API Service | content: application/json: schema: $ref: '#/components/schemas/Errors' '503': description: |- Service Unavailable. | Error Code | Meaning | |--------------|-------------------| | GCA-099 | System Unavailable | content: application/json: schema: $ref: '#/components/schemas/Errors' /aisp/providers: post: deprecated: true summary: Request for Providers description: |- > Deprecated > > Sunset: 30 May 2026 - This request retrieves a list of ASPSPs reachable using J.P. Morgan's AISP services in each country. - For the purposes of this API, ASPSPs are referred to as Providers. - The request for retrieving a particular country's list of supported Providers must contain the correct country code tags: - AIS operationId: retrieveAISProviders parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProvidersRequest' required: false x-examples: - name: ExampleProvidersRequest description: Example request to retrieve providers parameters: body: countryCode: XF responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/ProvidersResponse' examples: ExamplesProvidersResponse: $ref: '#/components/examples/ProvidersResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' /aisp/consent/provider: post: deprecated: true summary: Request to Access Account Information Services description: |- > Deprecated > > Sunset: 30 May 2026 - This request allows the PSU to consent to J.P. Morgan accessing their account information at a particular `Provider`. tags: - AIS operationId: createAccountConsents parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConsentRequest' examples: ExampleConsentRequest: $ref: '#/components/examples/ConsentRequestExample' required: true x-examples: - name: ExampleConsentRequest description: Example Consent Request parameters: body: customerId: CUST_QA02103453A countryCode: XF providerCode: fake_oauth_client_xf consentScopes: - account_details - transactions_details - holder_information consentDuration: 90 returnToUrl: https://sites.jpmchase.com/sites/cib responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/ConsentResponse' examples: ExampleConsentResponse: $ref: '#/components/examples/ConsentResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' /aisp/authorize: post: deprecated: true summary: Send Authorized Token Issued by Provider description: "\n> Deprecated\n>\n> Sunset: 30 May 2026\n- Following the PSUs authorization and confirmation of information sharing with their provider, the provider issues a token\n that permits access to the PSUs data. \n- This token must be transmitted to J.P. Morgan to complete the account information\n request and digitally sign the request payload." tags: - AIS operationId: createAuthorization parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthorizeRequest' examples: ExampleAuthorizeRequest: $ref: '#/components/examples/AuthorizeRequestExample' required: true x-examples: - name: ExampleAuthorizeRequest description: Example Authorize Request parameters: body: customerId: TestCustomer1 providerCode: fake_oauth_client_xf authToken: access_token=bc4521d3&state=Pd8b4d0eb responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/AuthorizeResponse' examples: ExampleAuthorizeResponse: $ref: '#/components/examples/AuthorizeResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' /aisp/accounts: post: deprecated: true summary: Request for Account Information description: "\n> Deprecated\n>\n> Sunset: 30 May 2026\n- This request retrieves the account information for a given combination\nof PSU and Provider. \n- An active authorization token is required or access will be denied" tags: - AIS operationId: retrieveAccountInfo parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountsRequest' examples: ExampleAccountsRequest: $ref: '#/components/examples/AccountsRequestExample' required: true x-examples: - name: ExampleAccountsRequest description: Example Accounts Request parameters: body: customerId: TestCustomer1 providerCode: fake_oauth_client_xf responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/AccountsResponse' examples: ExamplesAccountsResponse: $ref: '#/components/examples/AccountsResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' /aisp/transactions: post: deprecated: true summary: Request for Transaction Details description: |- > Deprecated > > Sunset: 30 May 2026 This request retrieves the transaction details for a given combination Provider and PSU. An active authorization token is required. tags: - AIS operationId: retrieveTransactions parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionsRequest' examples: ExampleTransactionsRequest: $ref: '#/components/examples/TransactionsRequestExample' required: true x-examples: - name: ExampleTransactionsRequest description: Example Request parameters: body: customerId: TestCustomer1 providerCode: fake_oauth_client_xf accountId: '12000012' responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/TransactionsResponse' examples: ExampleTransactionsResponse: $ref: '#/components/examples/TransactionsResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' /aisp/holderinfo: post: deprecated: true summary: Request for Account Holder Information description: |- > Deprecated > > Sunset: 30 Jun 2026 This request retrieves information about the account holder based on a given Provider and Customer ID. tags: - AIS operationId: retrieveAccountHolderInfo parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/HolderInfoRequest' examples: ExampleHolderInfoRequest: $ref: '#/components/examples/HolderInfoRequestExample' required: true x-examples: - name: ExampleHolderInfoRequest description: Example Request parameters: body: customerId: P123456 providerCode: bank_xf responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/HolderInfoResponse' examples: ExampleHolderInfoResponse: $ref: '#/components/examples/HolderInfoResponseExample' '400': description: |- Bad Request. **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|------------------------------------------------------------------------------------------------------| | AISP-001 |Values are missing for properties: `` | | AISP-002 |Invalid consent scopes: `` | | AISP-003 |Invalid JSON format | | AISP-006 |Report not found with requested payload | | AISP-007 |Customer did not consent to the Provider: | | AISP-008 |Provider not found for country code: `` or provider code:`` This error code will appear if an incorrect providerCode is given| | AISP-010 |ClientID not present in the header | | AISP-012 |Required properties are missing: `` | | AISP-013 |Invalid properties exist: `` | | AISP-014 |Providers are not available with countryCode: `` | | AISP-015 |Consent expired, please call consent provider API to re-consent | | AISP-016 |Bad request | | AISP-017 |The consent has already been revoked | | AISP-017 |Refresh is not possible because the consent has expired | | AISP-017 |A consent with such an id does not exist | | AISP-017 |Refresh is not possible because the consent has been revoked | | AISP-017 |The value of consent scopes parameter is invalid | | AISP-017 |The value of consent scopes parameter is not allowed for the client or/and by the provider | | AISP-017 |The next refresh attempt will be allowed according to next_refresh_possible attribute or connection's status is inactive| | AISP-017 |The client tried to connect, reconnect or fetch a connection, but it appears to be disabled | | AISP-017 |Bad requestWe could not find a connection with the requested connection_id | | AISP-017 |We have received an invalid Date format | | AISP-017 |The passed from_date - to_date interval is out of consent from_date - to_date range | | AISP-017 |Sending a date value that does not fit in admissible range | | AISP-017 |We have received an invalid DateTime format | | AISP-017 |Sending a datetime value that does not fit in admissible range | | AISP-017 |The value of fetch_scopes parameter is invalid | | AISP-017 |Fetching holder_info for this provider is not supported | | AISP-017 |Invalid consent from_date value, either out of range or a wrong date format | | AISP-017 |Invalid consent period_days value or not allowed by provider | | AISP-017 |Invalid from_date value, either out of range or wrong date format | | AISP-017 |Invalid to_date value, either out of range or wrong date format | | AISP-017 |We have received some other request format instead of JSON, or the body could not be parsed | | AISP-017 |The accessed provider has the disabled status. Hence, is no longer supported | | AISP-017 |The requested provider has the inactive status. That means that new connections cannot be created while the current ones cannot be refreshed or reconnected| | AISP-017 |Sending a provider_code that is not present in our system | | AISP-017 |The connection's provider has no interactive step | | AISP-017 |Too many connections are being processed at the same time from one application | | AISP-018 |Customer did not consent to provider ``, please call consent provider API to re-consent| | AISP-019 |Provider `` does not support the requested service | content: application/json: schema: $ref: '#/components/schemas/Error' examples: InvalidJSONFormatExample: $ref: '#/components/examples/InvalidJSONFormatExample' '500': description: |- Internal server error **The following table lists and describes the error codes applicable** | Error Code | Meaning | |------------|----------------------| | AISP-020 |Internal server error | content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: "Service Unavailable\n\n**The following table lists and describes the error codes applicable**\n| Error Code | Meaning |\n|------------|-----------------------------------------------|\n| AISP-004 |System exception | \n| AISP-005 |Consent terms not found with requested payload |" content: application/json: schema: $ref: '#/components/schemas/Error' components: parameters: RefundId: in: path name: refundId description: A unique refund identifier in UUID (version 4) format. schema: type: string minLength: 0 maxLength: 36 required: true example: 45f452df-f84a-4fc1-acee-d024f5fede98 ContentType: name: Content-Type description: Content Type in: header required: true schema: type: string enum: - application/json schemas: ProvidersRequest: type: object properties: countryCode: type: string example: DE description: |- ISO 3166-1 Alpha-2 code for the desired country from which to fetch the Providers list. If no countryCode is given, then the API will return the full list of Providers ProvidersResponse: type: object description: Contains providers information properties: data: type: array items: $ref: '#/components/schemas/Providers' minItems: 0 Providers: type: object properties: providersCode: type: string description: Provider's unique reference code providersName: type: string description: Provider's name customerNotifiedOnSignIn: type: boolean description: Whether the Provider will notify the customer upon a login attempt instruction: type: string description: Instructions on how to connect to the Provider in English homeUrl: type: string description: The URL of the Provider's main page format: URL loginUrl: type: string description: URL of the entry point to the provider's login interface. This URL is not used in account information service requests format: URL logoUrl: type: string description: The URL of the Provider's logo format: URL refreshTimeOut: type: integer description: Amount of time in minutes that connections to the provider can be refreshed until timeout maxConsentDays: type: integer description: Maximum allowed consent duration in days. If the response is `null` then there is no limit on the consent duration countryCode: type: string description: Code of Provider's country; ISO 3166-1 alpha-2 supportedFetchScopes: type: array description: |- Array of strings with supported fetch scopes (i.e. what data can be retrieved from the Provider) items: type: string minItems: 1 supportedAccountNatures: type: array description: Array of possible account natures that can be fetched. Currently, only `account` is supported items: type: string minItems: 0 ConsentRequest: type: object required: - customerId - countryCode - consentScopes - providerCode - returnToUrl properties: customerId: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU countryCode: type: string description: Code of provider's country in ISO 3166-1 alpha-2 format providerCode: type: string description: Provider's unique reference code consentScopes: type: array description: "Array of possible consent scopes for the PSU to consent to. \nYou must provide at least one of the below options" items: type: string properties: account_details: type: string transactions_details: type: string holder_information: type: string minItems: 0 consentDuration: type: integer description: |- Duration in days of the consent. Can be left blank or null for open-ended consent if the provider permits it returnToUrl: type: string description: |- URL to redirect the PSU once they have completed the consent process. This URL must be fully qualified and include the full path, as some providers will validate it. Additionally, some providers only permit HTTPS redirect URLs format: URL ConsentResponse: type: object properties: redirectUrl: type: string description: |- URL to redirect the PSU to their online banking portal or mobile app to confirm the sharing of information. Additionally, the redirect URL will contain the access token needed in the Send Authorized Token API request body format: URL AuthorizeRequest: type: object required: - customerId - providerCode - authToken properties: customerId: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU providerCode: type: string description: Providers unique reference code authToken: type: string example: access_token=bc4521d3&state=Pd8b4d0eb description: The authorization token given by the provider in the `redirectUrl` attribute in the Account Information Access Consent API response body AuthorizeResponse: type: object properties: message: type: string description: Message that states whether the authorization was successful and a connection was established to the provider or not AccountsRequest: type: object required: - customerId - providerCode properties: customerId: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU providerCode: type: string description: Providers unique reference code AccountsResponse: type: array description: Contains account(s) information items: $ref: '#/components/schemas/Account' minItems: 0 maxItems: 100 Account: type: object properties: accountId: type: string description: Accounts unique identifier. This number has no other relevance or use to the PSU or provider; it is only used to identify the account in API requests and responses balance: type: number description: Account's current balance nature: type: string description: |- The type of the account. Note that for the 'credit_card' nature, the balance represents the sum of all negative transactions; the positive ones do not count enum: - account - bonus - card - checking - credit - credit_card - debit_card - ewallet - insurance - investment - loan - mortgage - savings name: type: string description: Accounts unique name example: Account100 currencyCode: type: string description: Accounts currency. ISO 4217 Alpha-3 Currency Code extra: type: object description: Additional account related fields. properties: accountName: type: string description: Changeable name of the account accountNumber: type: string description: Account number lastPostedTransactionId: type: string description: The identifier of the last posted transaction cards: type: array description: List of masked card numbers items: type: string minItems: 0 assets: type: array description: Array of crypto codes and their amounts assigned to an `investment` account items: type: string minItems: 0 availableAmount: type: number description: Available amount in the accounts currency units: type: string description: Amount of units owned (used with unit_price, available for `investment` account nature only) nextPaymentDate: type: string description: Next payment date for loans or credits format: date closingBalance: type: number description: Account balance at the end of an accounting period creditLimit: type: number description: Credit limit in the account?s currency interestRate: type: string description: |- Interest rate paid on the account?s balance as a percentage value openingBalance: type: number description: |- Account balance that is brought forward from the end of one accounting period to the beginning of a new accounting period clientName: type: string description: Account's client owner currentTime: type: string description: Time of Provider statement generation (applicable to banks) format: timestamp swift: type: string description: Account's SWIFT code openDate: type: string description: Card open date format: date expiryDate: type: string description: Card expiry date format: date cardType: type: string description: Type of card account enum: - american_express - china_unionpay - diners_club - jcb - maestro - master_card - uatp - visa - mir sortCode: type: string description: Routing number (US) / BSB code (Australia) / sort code (UK) unitPrice: type: number description: |- Price per unit (used with units, available for `investment` account nature only) totalPaymentAmount: type: number description: Total payment amount for loans or credits currentDate: type: string description: Date of Provider statement generation (applicable to banks) format: date statementCutDate: type: string description: Date when the current statement becomes a previous one format: date iban: type: string description: Account's IBAN number blockedAmount: type: string description: The amount currently blocked in the account?s currency status: type: string description: States if the account is active or inactive nextPaymentAmount: type: string description: Next payment amount for loans or credits transactionsCount: type: object description: Number of transactions, separated by posted and pending properties: pending: type: integer description: Number of pending transactions posted: type: integer description: Number of posted transactions TransactionsRequest: type: object required: - customerId - providerCode properties: customerId: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU providerCode: type: string description: Provider's unique reference code accountId: type: string description: |- Account's unique identifier. If no identifier is provided, transactions from all of the PSU's available accounts will be retrieved TransactionsResponse: type: array description: Contains transaction details items: $ref: '#/components/schemas/Transaction' minItems: 0 maxItems: 100 Transaction: type: object properties: accountId: type: string description: The ID of the account the transaction belongs to duplicated: type: boolean description: Whether the transaction is duplicated or not mode: type: string enum: - normal - fee - transfer description: "Please refer the table below for interpretation of modes \n\n| Mode | Description | \n|-----------|------------------------------------------------------------------------------------------------------|\n| `normal` | A standard purchase made using funds held in the account (e.g. purchase of goods at a supermarket) | \n| `fee` | Fees paid from the account to the bank (e.g. monthly account fee) | \n| `transfer`| a bank transfer made directly to another account (e.g. a bank transfer to one's parents) |" amount: type: number description: Transaction's amount madeOn: type: string description: The date when the transaction was made format: date description: type: string description: Transaction's description category: type: string description: Transaction's category currencyCode: type: string description: Transaction's currency code status: type: string enum: - pending - posted extra: type: array description: Additional account related fields items: type: object description: Extra fields properties: accountNumber: type: string description: Account's number possibleDuplicate: type: boolean description: |- Is set to true if current transaction duplicates `amount`, `made_on` or `currency_code` of any transaction parsed in a previous attempt additional: type: string description: |- Additional information (recommended to augment the standard 'description' field, if necessary) recordNumber: type: string description: Bank record number convert: type: boolean description: |- Whether the transaction amount was converted using exchange rates or not merchantId: type: string description: Merchant's identifier units: type: number description: |- Amount of units owned (used with unit_price, available for `investment` account nature only) mcc: type: string description: Merchant category code type: type: string description: Transaction type payer: type: string description: Name of the payer payerInformation: type: string description: Additional payer information checkNumber: type: string description: Payee's transaction check number closingBalance: type: number description: Account balance after transaction originalAmount: type: number description: |- Transaction amount in the transaction's local currency, if applicable (comes with originalCurrencyCode) originalCategory: type: string description: Original category of the transaction originalSubcategory: type: string description: Original subcategory of the transaction categorizationConfidence: type: number description: |- Value from 0 to 1 showing the probability that the current category is the correct one id: type: string description: Transaction ID openingBalance: type: number description: Account balance before transaction specificCode: type: string description: |- Additional identification information for cashless domestic payments (transfers) variableCode: type: string description: |- Identifies the tax subject to the tax office, used for domestic payments (transfers) accountBalanceSnapshot: type: number description: Balance of the account when the transaction was imported unitPrice: type: number description: |- Price per unit (used with units, available for `investment` account nature only) tags: type: array description: The original tags of the transaction items: type: object minItems: 0 assetCode: type: string description: |- Asset's commonly used abbreviation (e.g. 'BTC' - Bitcoin, `XAU` - Gold etc.) payee: type: string description: Name of the payee payeeInformation: type: string description: Additional payee information postingDate: type: string description: Date when the transaction is reported on the account statement format: date postingTime: type: string description: |- Time in HH:MM:SS format, representing the time at which the transaction is reported on the account statement format: timestamp originalCurrencyCode: type: string description: Transaction's local currency, if applicable (comes with originalAmount) constantCode: type: string description: Payment reference for cashless domestic payments information: type: string description: Information about the transaction transferAccountName: type: string description: Name of the linked account assetAmount: type: number description: Original transaction amount in asset units customerCategoryCode: type: string description: |- The category that was categorized by the rules created by the customer customerCategoryName: type: string description: |- The category that was categorized by the rules created by the customer time: type: string description: Time when the transaction was made format: timestamp minItems: 0 createdAt: type: string description: Transaction created date and time format: date-time updatedAt: type: string description: Date and time at which the transaction was updated format: date-time HolderInfoRequest: type: object required: - customerId - providerCode properties: customerId: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU providerCode: type: string description: Provider's unique reference code HolderInfoResponse: type: object properties: names: type: array items: type: string description: Account holder name(s) minItems: 0 emails: type: array format: email items: type: string description: Account holder email(s) format: email minItems: 0 phoneNumbers: type: array items: type: string description: Account holder number(s) minItems: 0 addresses: type: array items: type: string description: Account holder address(s) minItems: 0 PispProvidersRequest: type: object properties: countryCode: type: string example: DE description: |- ISO 3166-1 Alpha-2 code for the desired country from which to fetch the providers list. If no countryCode is provided, the API returns the full list of Providers PispProvidersResponse: type: object properties: data: type: array description: List of PISP providers items: $ref: '#/components/schemas/PispProvider' minItems: 1 PispProvider: type: object description: PISP Provider properties: id: type: string description: Provider's unique id code: type: string description: Provider's code to be provided for payment instruction name: type: string description: Provider's name status: type: string description: Provider's status enum: - active - inactive - disabled interactive: type: boolean description: |- indicates whether the provider require an interactive element during the authentication process (e.g. SMS code entry or CAPTCHA solution) instruction: type: string description: |- Instructions for the PSU to complete the authentication process. For redirect authentication, a brief overview of the process will be given home_url: type: string description: The URL of provider's home page logo_url: type: string description: URL of the provider's logo country_code: type: string description: Code of provider's country; ISO 3166-1 Alpha-2 format created_at: type: string description: Indicates the date time of when the provider was integrated with JPMC. Represented in ISO 8601 date time format updated_at: type: string description: Indicates the date time of when the provider was last updated by JPMC. Represented in ISO 8601 date time format identification_codes: type: array description: |- Bank code as defined by the IBAN Structure (e.g. DEKK BBBB BBBB CCCC CCCC CC) Where B is the Bank Identification Code items: type: string minItems: 0 payment_templates: type: array description: List of payment types supported by the provider items: type: string properties: FPS: type: string SEPA: type: string SEPA_INSTANT: type: string BACS: type: string CHAPS: type: string minItems: 0 Payment: oneOf: - $ref: '#/components/schemas/SepaPayment' - $ref: '#/components/schemas/BacsChapsFpsPayment' discriminator: propertyName: template_identifier mapping: FPS: '#/components/schemas/BacsChapsFpsPayment' SEPA: '#/components/schemas/SepaPayment' SepaPayment: title: SEPA Payment type: object properties: data: type: object required: - customer_id - country_code - provider_code - payee_description - template_identifier - return_to - payment_attributes properties: customer_id: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU country_code: type: string description: Provider's country code in ISO 3166-1 alpha-2 format provider_code: type: string description: Provider's unique code. This value is the same as the `code` attribute in the providers API response body payee_description: type: string description: |- A versatile field that can be used to specify the merchant's internal identifier, payee name, user identifier, or any other fields that might be relevant to the J.P. Morgan client for internal processes. This field is not visible to the PSU template_identifier: type: string description: |- Unique identifier for the template being used for the payment. This value is the same as the 'identifier' field in the Payment Templates API response body and the 'payment_templates' attribute returned by the providers API return_to: type: string description: |- The URL that the PSU will be redirected to after they have completed the payment. This URL must be fully qualified and include the full path, as some providers will validate it. Additionally, some providers only permit HTTPS redirect URLs locale: type: string description: "The language of the error message in the ISO 639-1 format. \nPossible values are: bg, cz, de, en, es-MX, es, fi, fr, he, hr, hu, it, nl, pl, pt-BR, pt, ro, ru, si, sk, sv, tr, uk, zh-HK(Traditional), zh(Simplified) \n\n**Defaults to en if not provided**" payment_attributes: type: object description: |- Payment attributes for the select Payment Template. This object will vary based on payment type required: - end_to_end_id - creditor_name - creditor_iban - description - amount - currency_code properties: end_to_end_id: type: string description: |- Numerical identifier determined by the J.P. Morgan client for the payment. This identifier will follow the payment throughout the process and can be used for reconciliation and reporting customer_last_logged_at: type: string description: Customer's last login date and time customer_ip_address: type: string description: Customer's IP address customer_device_os: type: string description: Customer's operating system creditor_name: type: string description: |- Creditor's name This field may be visible to the PSU, depending on the provider creditor_street_name: type: string description: Creditor's street name creditor_building_number: type: string description: Creditor's building number creditor_post_code: type: string description: Creditor's post code creditor_town: type: string description: Creditor's town creditor_iban: type: string description: Creditor's IBAN debtor_iban: type: string description: |- Debtor's IBAN **Can be mandatory to initiate payments in some locales** description: type: string description: |- A description of the payment that will be sent to the provider. The description may be visible to the PSU, depending on the provider amount: type: string description: Amount of the payment currency_code: type: string description: Currency used for the Payment connect_template: type: string description: |- An optional field to specify the UI template. **Only applicable for certain merchants** BacsChapsFpsPayment: type: object title: bacsChapsFpsPayment description: Payment request schema for BACS, CHAPS and FPS payments properties: data: type: object required: - customer_id - country_code - provider_code - payee_description - template_identifier - return_to - payment_attributes properties: customer_id: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU country_code: type: string description: Provider's country code in ISO 3166-1 alpha-2 format provider_code: type: string description: Provider's unique code. This value is the same as the `code` attribute in the providers API response body payee_description: type: string description: |- A versatile field that can be used to specify the merchant's internal identifier, payee name, user identifier, or any other fields that might be relevant to the J.P. Morgan client for internal processes. This field is not visible to the PSU template_identifier: type: string description: |- Unique identifier for the template being used for the payment. This value is the same as the 'identifier' field in the Payment Templates API response body and the 'payment_templates' attribute returned by the providers API return_to: type: string description: |- The URL that the PSU will be redirected to after they have completed the payment. This URL must be fully qualified and include the full path, as some providers will validate it. Additionally, some providers only permit HTTPS redirect URLs noFundsRjctPreferred: type: boolean description: |- This flag is handled only for those providers which support it: - TRUE: If the PSU has no available funds (a.k.a. fundsAvailable=false) the bank should reject the payment - FALSE Payment Initiation is accepted even when "fundsAvailable"=false. If the account has funds at the time of SEPA execution (e.g. End of Day batch Payment instead of Instant payment), the payment will go through. payment_attributes: type: object description: |- Payment attributes for the select Payment Template. This object will vary based on payment type required: - end_to_end_id - creditor_name - creditor_sort_code - creditor_account_number - description - amount - currency_code properties: end_to_end_id: type: string description: |- Numerical identifier determined by the J.P. Morgan client for the payment. This identifier will follow the payment throughout the process and can be used for reconciliation and reporting customer_last_logged_at: type: string description: Customer's last login date and time customer_ip_address: type: string description: Customer's IP address customer_device_os: type: string description: Customer's operating system creditor_name: type: string description: |- Creditor's name This field may be visible to the PSU, depending on the provider creditor_street_name: type: string description: Creditor's street name creditor_building_number: type: string description: Creditor's building number creditor_post_code: type: string description: Creditor's post code creditor_town: type: string description: Creditor's town creditor_account_number: type: string description: Creditor's account number creditor_sort_code: type: string description: Creditor's sort code description: type: string description: |- A description of the payment that will be sent to the provider. The description may be visible to the PSU, depending on the provider amount: type: string description: Amount of the payment currency_code: type: string description: Currency used for the Payment PaymentResponse: type: object properties: data: type: object properties: payment_id: type: string description: Internal payment ID for the submitted payment initiation request expires_at: type: string description: Expiration date of the redirect URL redirect_url: type: string description: Points to a page where the PSU can provide PISP access to make the payment PaymentStatusRequest: type: object properties: customer_id: type: string description: The unique ID determined by the J.P. Morgan client for the PSU payment_id: type: string description: |- The unique payment identifier generated by J.P. Morgan. This value is the same as the `payment_id` attribute in the Payment Initiation API response body PaymentStatusResponse: type: object properties: id: type: string description: Payment ID for the submitted payment initiation request provider_code: type: string description: Provider's code for where the payment has been initiated provider_name: type: string description: Provider's name status: type: string description: Payment status enum: - processing - accepted - rejected - failed template_identifier: type: string description: |- Identifiers of the payment templates that are supported by this provider enum: - FPS - SEPA - SEPA_INSTANT - BACS - CHAPS - SWIFT payment_attributes: type: object description: Attributes of the payment. May vary based on payment template properties: mode: type: string amount: type: string debtor_iban: type: string description: type: string creditor_iban: type: string creditor_name: type: string creditor_town: type: string currency_code: type: string end_to_end_id: type: string creditor_agent: type: string creditor_region: type: string creditor_address: type: string creditor_post_code: type: string customer_device_os: type: string creditor_agent_name: type: string customer_ip_address: type: string customer_user_agent: type: string creditor_street_name: type: string creditor_bank_country_code: type: string customer_last_logged_at: type: string creditor_building_number: type: string payment_template_identifier: type: string stages: type: array items: type: object description: |- The stages the payment request has completed. Will contain details on the time and status properties: id: type: string name: type: string created_at: type: string description: Created date time in ISO 8601 date time format minItems: 0 PaymentAuthorizationRequest: required: - paymentId - authToken type: object properties: paymentId: type: string description: |- The unique payment identifier generated by J.P. Morgan. This value is the same as the `payment_id` attribute in the Payment Initiation API response body authToken: type: string description: |- One-time use token given by the provider to authorize the payment. This token is obtained from the `redirect_url` field in the Payment Initiation API response body and it must be appended with “&” and the “end_to_end id” (e.g. “code=95c…Ijo&end_to_end_id= 0002") PaymentAuthStatusResponse: type: object properties: id: type: string description: Payment ID for the submitted payment initiation request provider_code: type: string description: Provider code for where the payment has been initiated provider_name: type: string description: Provider's name customer_id: type: string description: The unique identifier determined by the J.P. Morgan client for the PSU created_at: type: string description: Created timestamp in ISO 8601 date time format updated_at: type: string description: Updated timestamp in ISO 8601 date time format payment_consent_id: type: string description: Consent Id of the authorized payment. status: type: string description: |- The status of the payment. | Status | Meaning | | -----------|--------------------------------------------------------------------------------------------------------------------------------------| | processing | The payment initiation is in process. Further detail can be found by looking at the “stages” attribute below | | accepted | The payment initiation has been accepted by the ASPSP | | rejected | The payment was rejected by the ASPSP. An error code will be provided | | failed | he payment initiation has been rejected due to an unknown reason, such as the ASPSP being down or returning a generic error response | enum: - processing - accepted - rejected - failed fundsAvailable: type: boolean description: |- Refer the table for the interpretation of the values | FundsAvailable | Meaning | | ----------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | True | Money will be debited. If the bank uses a batch process for SEPA processing and the PSU no longer have sufficient funds, the money will not be debited | | False | In combination with `noFundsRjctPreferred=TRUE`, the bank rejects the payment. If noFundsRjctPreferred is not supported for a specific bank, the default behavior is that the payment is rejected by the bank | template_identifier: type: string description: Identifiers of the payment templates that are supported by this provider such as FPS, SEPA, SEPA_INSTANT, BACS, CHAPS payment_attributes: type: object description: |- The payment attributes object. These are the same attributes used to initiate the payment, so will therefore vary depending on the payment template custom_fields: type: object description: The custom fields (optional) are not used currently but would be used for any additional fields that would be relevant to payments. stages: type: array items: type: object description: "The stages that the payment request has completed. \n\n- Possible values for a payment with status `processing`are below:\n\n | Stage Name | Meaning |\n | -----------|--------------------------------------------------------------------------------------------------------------------------------------|\n | initialize | The payment has been created, but the initiation process has not begun\n | start | The payment initiation process has begun|\n | interactive| User interaction is required, such as authentication or redirection to the ASPSP|\n | submission | The payment has been submitted to the ASPSP|\n | settlement | The payment has been validated by the ASPSP|\n | completed | The payment lifecycle has been completed|\n | finish | The action has been completed|\n\n- Possible value for payments with status “accepted/rejected/failed” is `finish`" properties: id: type: string name: type: string created_at: type: string description: Created date time in ISO 8601 date time format minItems: 0 RefundsRequest: type: object required: - paymentIdentifiers - amount - reason - mode properties: paymentIdentifiers: $ref: '#/components/schemas/PaymentIdentifiers' amount: $ref: '#/components/schemas/Amount' reason: $ref: '#/components/schemas/Reason' mode: $ref: '#/components/schemas/Mode' Amount: description: Contains amount details type: object properties: amount: description: Amount should be more than 0.01 and maximum of two decimal places allowed type: number format: decimal example: 10 currency: description: 3 character ISO 4217 currency code. type: string enum: - GBP - EUR required: - amount - currency Reason: description: Reason for the refund request type: string enum: - DUPLICATE - WITHDRAWAL - REFUND - PARTIAL_REFUND Mode: description: Captures the speed of refund settlement type: string enum: - INSTANT - NORMAL PaymentIdentifiers: type: object description: the payment identifier provided in the original payment request properties: endToEndId: description: The EndtoEndId provided in the original payment initiation request type: string example: '123123123' paymentId: description: The PaymentId received in the original payment initiation response type: string example: '1401642' minProperties: 1 additionalProperties: false StatusUpdatedAt: type: string format: dateTime description: The last updated date and time of the refund status example: '2022-05-31T14:00:57.751Z' RefundsResponse: type: object description: The refunds response object from the API provided the request was accepted successfully. properties: refund: type: object properties: refundId: type: string description: A unique refund identifier in UUID ( version 4) format example: 45f452df-f84a-4fc1-acee-d024f5fede98 status: description: |- Describes the status of the refund. |Status| |Description| PENDING - The refund is pending for processing COMPLETED - The refund is processed successfully REJECTED - The refund was rejected due to the request not qualified FAILED - The refund was failed such as credit can't be done to the bank account type: string enum: - PENDING - COMPLETED - REJECTED - FAILED paymentIdentifiers: $ref: '#/components/schemas/PaymentIdentifiers' amount: $ref: '#/components/schemas/Amount' reason: $ref: '#/components/schemas/Reason' mode: $ref: '#/components/schemas/Mode' statusUpdatedAt: $ref: '#/components/schemas/StatusUpdatedAt' Error: type: object description: "The error response object \n\n**Note: This error response format is used by all AISP and PISP endpoints except Refunds endpoint which adopted a better error strcuture**" properties: error: type: array items: properties: errorCode: type: string description: Unique error code errorMsg: type: string description: Describes the details of the error occurred minItems: 0 maxItems: 99 ErrorsInit: type: object description: Contains error response properties: errors: description: Contains error payload type: object properties: errorDetails: type: array items: $ref: '#/components/schemas/ErrorDetailsInit' minItems: 0 Errors: type: object properties: errors: type: object properties: errorDetails: type: array items: $ref: '#/components/schemas/ErrorDetailsType' minItems: 0 ErrorDetailsInit: type: object properties: errorCode: type: string example: '1009' errorDescription: type: string example: RefundId provided in the URI is invalid ruleDefinition: type: string example: Invalid Id provided ErrorDetailsType: type: object properties: errorCode: type: string example: GCA-001 errorDescription: type: string example: Client is not eligible for the API Service. examples: ProvidersResponseExample: value: data: - providersCode: fakebank_image_xf providersName: Fake Bank with Image customerNotifiedOnSignIn: false loginUrl: http://example.com/login logoUrl: https://d1uuj3mi6rzwpm.cloudfront.net/logos/providers/xf/placeholder_global.svg countryCode: XF supportedFetchScopes: - accounts - accounts_without_balance - holder_info - transactions supportedAccountNatures: - account - card - credit_card ConsentRequestExample: value: customerId: CUST_QA02103453A countryCode: XF providerCode: fake_oauth_client_xf consentScopes: - account_details - transactions_details - holder_information consentDuration: 90 returnToUrl: https://sites.jpmchase.com/sites/cib ConsentResponseExample: value: redirectUrl: https://www.abc.com/regulated_fake_providers/fake_oauth_client_xf?client_id=2886&fetch_scopes%5B%5D=accounts&fetch_scopes%5B%5D=holder_info&fetch_scopes%5B%5D=transactions&flow=ais&return_to=https%3A%2F%2Fwww.saltedge.com%2Fconnect%2Foauth_callback%2Faisp%2F2c58378dea8acbc899a4ef6be60e6f8462662615f2011e93de1625af8dcc6c3e&state=connect_token_2c58378dea8acbc899a4ef6be60e6f8462662615f2011e93de1625af8dcc6c3e AuthorizeRequestExample: value: customerId: TestCustomer1 providerCode: fake_oauth_client_xf authToken: access_token=bc4521d3&state=Pd8b4d0eb AuthorizeResponseExample: value: message: Connection with provider forgerock_client_gb_xf established successfully AccountsRequestExample: value: customerId: TestCustomer1 providerCode: fake_oauth_client_xf AccountsResponseExample: value: - accountId: '7610825' balance: 2010.8 nature: card name: AccountList currencyCode: EUR extra: cards: [] assets: [] clientName: Fake name lastPostedTransactionId: '1378698846' iban: DEXXXXXXXXXXXXXXXXX transactionsCount: pending: 0 posted: 1098 TransactionsRequestExample: value: customerId: TestCustomer1 providerCode: fake_oauth_client_xf accountId: '12000012' TransactionsResponseExample: value: - accountId: '12000012' duplicated: false mode: normal amount: 100 madeOn: '2018-12-20' description: Online crockery purchase category: fees_and_charges currencyCode: EUR status: posted extra: - possibleDuplicate: false convert: false categorizationConfidence: 1 id: '1378698846' accountBalanceSnapshot: 10100 tags: [] createdAt: '2018-12-20T17:38:13Z' updatedAt: '2019-08-05T17:38:13Z' - accountId: '12000012' duplicated: false mode: normal amount: 50 madeOn: '2018-12-19' description: Online clothes purchase category: fees_and_charges currencyCode: EUR status: posted extra: - possibleDuplicate: false convert: false categorizationConfidence: 1 id: '1378698847' accountBalanceSnapshot: 10150 tags: [] createdAt: '2018-12-19T17:38:13Z' updatedAt: '2019-08-05T17:38:13Z' HolderInfoRequestExample: value: customerId: TestCustomer1 providerCode: fake_oauth_client_xf HolderInfoResponseExample: value: names: - Engelbert Smith emails: - esmith@emailservice.com phoneNumbers: - '+440123123123' addresses: [] PispProvidersRequestExample: value: countryCode: XF PispProvidersResponseExample: value: data: - id: '3094' code: starlingbank_oauth_client_gb name: Starling mode: oauth status: active interactive: true pisp_instruction: You will be securely redirected to your financial institution to authenticate logo_url: https://d1uuj3mi6rzwpm.cloudfront.net/logos/providers/gb/starlingbank_oauth_client_gb.svg country_code: GB created_at: '2018-04-12T14:27:32Z' updated_at: '2023-07-12T15:33:52Z' identification_codes: [] payment_templates: - FPS - id: '3830' code: revolut_client_oauth_gb name: Revolut mode: oauth status: active interactive: false pisp_instruction: You will be securely redirected to your financial institution to authenticate logo_url: https://d1uuj3mi6rzwpm.cloudfront.net/logos/providers/gb/revolut_gb.svg country_code: GB created_at: '2019-04-12T14:06:05Z' updated_at: '2023-08-30T07:19:06Z' identification_codes: [] payment_templates: - FPS - CHAPS - BACS - FPS_STANDING_ORDER - SEPA - SEPA_INSTANT - SWIFT FPSPaymentRequestExample: value: data: customer_id: D310252 country_code: GB provider_code: barclays_oauth_client_gb payee_description: barclays PVT 10-25-23 template_identifier: FPS return_to: https://sites.obtest.com/sites/cib payment_attributes: end_to_end_id: PISP_1025_PVT_002 creditor_name: John Smith creditor_sort_code: XXX242 creditor_account_number: XXXXX035 description: For Goods amount: '100.00' currency_code: GBP BACSPaymentRequestExample: value: data: customer_id: D310252 country_code: GB provider_code: barclays_oauth_client_gb payee_description: barclays PVT 10-25-23 template_identifier: BACS return_to: https://sites.obtest.com/sites/cib payment_attributes: end_to_end_id: PISP_1025_PVT_002 creditor_name: John Smith creditor_sort_code: XXX242 creditor_account_number: XXXXX035 description: For Goods amount: '100.00' currency_code: GBP CHAPSPaymentRequestExample: value: data: customer_id: D310252 country_code: GB provider_code: barclays_oauth_client_gb payee_description: barclays PVT 10-25-23 template_identifier: CHAPS return_to: https://sites.obtest.com/sites/cib payment_attributes: end_to_end_id: PISP_1025_PVT_002 creditor_name: John Smith creditor_sort_code: XXX242 creditor_account_number: XXXXX035 description: For Goods amount: '100.00' currency_code: GBP SEPAPaymentRequestExample: value: data: customer_id: 00ef7b8enca1elA1tm6bmyphhgk3 country_code: DE provider_code: berliner_sparkasse_oauth_client_de payee_description: MusicCorpDE template_identifier: SEPA return_to: https://www.musiccorp.com/pisp_oauth_callback locale: de-DE payment_attributes: end_to_end_id: '20018300321270540' creditor_name: MusicCorp creditor_iban: DEXXXXXXXXXXXXXXXXXXXX debtor_iban: DEXXXXXXXXXXXXXXXXXXXX description: For goods amount: '17.99' currency_code: EUR mode: Normal connect_template: jpmorgan_musiccorp_v3 PaymentResponseExample: value: data: payment_id: '1105048674708230671' expires_at: '2023-09-21T04:56:43Z' redirect_url: https://paymentservices.jpmorgan.com/payments/connect?token=a8a96b6fa3932885be4a46162fd7a0c1579e65a0803e4946a67dae5279dc0c13 PaymentAuthorizationRequestExample: value: paymentId: '1105291498426995690' authToken: a8a96b6fa3932885be4a46162fd7a0c1579e65a0803e4946a67dae5279dc0c13&end_to_end_id=00000002 PaymentAuthStatusResponseExample: value: data: id: 1105291498426995700 provider_code: deutsche_bank_client_de provider_name: Deutsche Bank customer_id: 1105291496237569000 created_at: '2023-09-21T12:43:10Z' updated_at: '2023-09-21T12:44:52Z' status: accepted payment_consent_id: 1105291498334721000 template_identifier: SEPA payment_attributes: mode: Normal amount: 12.99 debtor_iban: DE75380707240330795600 description: NETFLIX creditor_iban: DEXXXXXXXXXXXXXXXXXXXX creditor_name: NETFLIX currency_code: EUR end_to_end_id: 20043855508803784 customer_ip_address: 159.53.64.214 custom_fields: {} stages: - id: 1105291498368275500 name: initialize created_at: '2023-09-21T12:43:10Z' - id: 1105291670938719200 name: start created_at: '2023-09-21T12:43:31Z' - id: 1105291671400092700 name: received created_at: '2023-09-21T12:43:31Z' - id: 1105291678303917000 name: interactive created_at: '2023-09-21T12:43:32Z' interactive_html: null interactive_fields_names: [] interactive_redirect_url: https://meine.deutsche-bank.de/taf/db/#/authorizepaymentorder?transaction-id=cce9323d-c57e-4e77-9f1e-c394368e4751&psu-id=9503307956&authorization-id=f8190b5f-f0ee-40c7-987d-3aa453e994aa interactive_fields_options: null - id: 1105292279280571400 name: submission created_at: '2023-09-21T12:44:43Z' - id: 1105292284808664000 name: pending created_at: '2023-09-21T12:44:44Z' - id: 1105292288801641500 name: completed created_at: '2023-09-21T12:44:44Z' - id: 1105292290093487100 name: finish created_at: '2023-09-21T12:44:44Z' PaymentStatusRequestExample: value: customer_id: '1105291496237568999' payment_id: '1104531176632095201' InvalidJSONFormatExample: value: errorCode: PISP-003 errorMsg: Invalid JSON format UnauthorizedAccessExample: value: errorCode: PISP-006 errorMsg: Unauthorized access x-jpmc-securityDefinitions: JPMC-OAuth2: {} x-jpmc-security: {} ```