openapi: 3.2.0 info: title: Payment Initiation Service Connectivity API 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: Connectivity description: Pay By Bank - Connectivity paths: /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: schemas: 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 HealthStatusValue: title: HealthStatusValue type: object properties: providerLogin: $ref: '#/components/schemas/ProviderLogin' 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 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 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 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 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}$ 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 examples: 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 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 responses: 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' x-jpmc-securityDefinitions: JPMC-OAuth2: {} x-jpmc-security: {} x-jpmc-securitySchemes: MutualTLS: type: x509 description: Mutual TLS authentication using client and server certificates. x509: {}