{ "openapi": "3.0.3", "info": { "title": "ACH Payments", "description": "ACHPaymentAPI will act as a API routing the ACH payment requests Product Systems for execution. The TppPaymentInstruction generic API exposes three functionality of receiving sendPayment - ISO PAIN 001(Credit) and PAIN 008 (Debit) and PaymentStatus Enquiry ( CAMT005 ). The subsequent validation and processing of Payment messages received, would be performed by the downstream APIs", "contact": { "name": "ACH Payment Service - ACHAPI", "url": "https://bmo.atlassian.net/wiki/spaces/ACHBS/pages/1096549051/External+General+API+Swagger", "email": "ACHPSSupport@bmo.com" }, "version": "1.1.3", "x-api-id": "NA", "x-audience": "company-external", "x-bmoservicedomain-name": "Payment Initiation", "x-bmo-api-type": "internal-api", "x-template-version": "2.0.0", "x-bmo-api-provider-id": 80613, "x-api-specification-compliant": true, "x-ibm-name": "achpaymentapi", "x-ibm-summary": "" }, "servers": [ { "url": "https://sandbox-open-api.bmo.com/open-banking/commercial-sb" } ], "tags": [ { "name": "PaymentsService", "description": "This is a tag for Payment service for Payments which provides operation for both Payment Initiation and Payment Status Enquiry." }, { "name": "PaymentInitiation", "description": "This is a tag for Payment Initiation - send Payments. receive PAIN001/PAIN008 (Debit/Credit) ISO request as input and return PAIN002 ISO as response after interacting with downstream Payment Rail System(s)." }, { "name": "PaymentStatus", "description": "This is a tag for PaymentStatus which enquiry sends CAMT005 ISO JSON Request standard messages and enquires and responds back with PAIN002 message structure after querying matching backend." } ], "paths": { "/tpp/ach/payment-initiation/customer-credit-transfer-initiation": { "post": { "security": [ { "api-key-1": [], "OAuth": [ "bmo.tppach.payment-initiation.create" ] } ], "tags": [ "PaymentInitiation" ], "summary": "Send Payment Credit", "description": "Payment Initiation - send Payments. receive PAIN001 (Credit) ISO JSON request as input and return PAIN002 ISO JSON as response after interacting with downstream Payment Rail System.", "operationId": "CreditPaymentInitiation", "x-dataclassification-code": "Confidential", "parameters": [ { "name": "x-fapi-interaction-id", "in": "header", "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream", "required": true, "schema": { "type": "string" } }, { "name": "x-fapi-customer-last-logged-time", "in": "header", "description": "The time when the Payment Services User last logged in with the Third Party Provider", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-ip-address", "in": "header", "description": "The Payment Services User's IP address if the Payment Services User is currently logged in with the Third Party Provider.", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-user-agent", "in": "header", "description": "Indicates the user-agent that the Payment Services User is using https://www.computerhope.com/jargon/u/useragen.htm", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-financial-id", "in": "header", "description": "The unique id of the financial institution to which the request is issued. BMO is 001", "required": false, "schema": { "type": "string" } }, { "name": "x-crypto-key", "in": "header", "description": "Crypto Key for payload decryption", "required": false, "schema": { "type": "string" } }, { "name": "x-request-id", "in": "header", "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "required": true, "schema": { "type": "string" } }, { "name": "x-sourcesystem-id", "in": "header", "description": "Source System ID to identify source, use 'OPENGENAPI'", "required": false, "schema": { "type": "string" } }, { "name": "x-api-key", "in": "header", "description": "The unique id used to identify caller of the API. (For legacy, AppCatId value could be used)", "required": false, "schema": { "type": "string" } }, { "name": "x-app-cat-id", "in": "header", "description": "BMO Application Catalogue ID of the consumer of the API. To be provided if API call is initiated by a BMO Application. BMO Application Catalogue https://appcat.bmogc.net/servlet/ApmServer", "required": false, "schema": { "type": "string" } }, { "name": "x-csrf-token", "in": "header", "description": "Applicable for cookie session based authentication. Applicable for UI layer to pass session value to support cookie session based authentication", "required": false, "schema": { "type": "string" } }, { "name": "x-content-type", "in": "header", "description": "pdf or csv", "required": false, "schema": { "type": "string" } }, { "name": "x-expires", "in": "header", "description": "valid value 0", "required": false, "schema": { "type": "string" } }, { "name": "x-cache-control", "in": "header", "description": "must-revalidate post-check=0 pre-check=0", "required": false, "schema": { "type": "string" } }, { "name": "x-content-disposition", "in": "header", "description": "attachment and fileName", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "SendPaymentRequest - Send PAIN001 and respond back with PAIN002 message", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestPayload" } } }, "required": true }, "responses": { "200": { "description": "OK", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponsePayload" } } } }, "400": { "description": "Bad Request Exception", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "401": { "description": "Unauthorized", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "403": { "description": "Forbidden - the user is not authorized to use this resource", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "404": { "description": "Not Found", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "415": { "description": "Unsupported Media Type", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "429": { "description": "Too many requests", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "504": { "description": "Integration or Backend Timeout", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interanctioId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } }, "x-codegen-request-body-name": "sendPaymentInitiationRequest" } }, "/tpp/ach/payment-initiation/customer-direct-debit-initiation": { "post": { "tags": [ "PaymentInitiation" ], "summary": "Send Payment Debit", "description": "Payment Initiation - send Payments. receive PAIN008 (Debit) ISO JSON request as input and return PAIN002 ISO JSON as response after interacting with downstream Payment Rail System.", "operationId": "DebitPaymentInitiation", "x-dataclassification-code": "Confidential", "parameters": [ { "name": "x-fapi-interaction-id", "in": "header", "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream", "required": true, "schema": { "type": "string" } }, { "name": "x-fapi-customer-last-logged-time", "in": "header", "description": "The time when the Payment Services User last logged in with the Third Party Provider", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-ip-address", "in": "header", "description": "The Payment Services User's IP address if the Payment Services User is currently logged in with the Third Party Provider.", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-user-agent", "in": "header", "description": "Indicates the user-agent that the Payment Services User is using https://www.computerhope.com/jargon/u/useragen.htm", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-financial-id", "in": "header", "description": "The unique id of the financial institution to which the request is issued. BMO is 001", "required": false, "schema": { "type": "string" } }, { "name": "x-crypto-key", "in": "header", "description": "Crypto Key for payload decryption", "required": false, "schema": { "type": "string" } }, { "name": "x-request-id", "in": "header", "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "required": true, "schema": { "type": "string" } }, { "name": "x-sourcesystem-id", "in": "header", "description": "Source System ID to identify source, use 'OPENGENAPI'", "schema": { "type": "string" } }, { "name": "x-api-key", "in": "header", "description": "The unique id used to identify caller of the API. (For legacy, AppCatId value could be used)", "required": false, "schema": { "type": "string" } }, { "name": "x-app-cat-id", "in": "header", "description": "BMO Application Catalogue ID of the consumer of the API. To be provided if API call is initiated by a BMO Application. BMO Application Catalogue https://appcat.bmogc.net/servlet/ApmServer", "required": false, "schema": { "type": "string" } }, { "name": "x-csrf-token", "in": "header", "description": "Applicable for cookie session based authentication. Applicable for UI layer to pass session value to support cookie session based authentication", "required": false, "schema": { "type": "string" } }, { "name": "x-content-type", "in": "header", "description": "pdf or csv", "required": false, "schema": { "type": "string" } }, { "name": "x-expires", "in": "header", "description": "valid value 0", "required": false, "schema": { "type": "string" } }, { "name": "x-cache-control", "in": "header", "description": "must-revalidate post-check=0 pre-check=0", "required": false, "schema": { "type": "string" } }, { "name": "x-content-disposition", "in": "header", "description": "attachment and fileName", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "SendPaymentRequest - Send PAIN008 and respond back with PAIN002 message", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestPayload" } } }, "required": true }, "security": [ { "api-key-1": [], "OAuth": [ "bmo.tppach.payment-initiation.create" ] } ], "responses": { "200": { "description": "OK", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponsePayload" } } } }, "400": { "description": "Bad Request Exception", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "401": { "description": "Unauthorized", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "403": { "description": "Forbidden - the user is not authorized to use this resource", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "404": { "description": "Not Found", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "415": { "description": "Unsupported Media Type", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "429": { "description": "Too many requests", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "504": { "description": "Integration or Backend Timeout", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } }, "x-codegen-request-body-name": "sendPaymentInitiationRequest" } }, "/tpp/ach/payment-initiation/get-transaction-status/get": { "post": { "tags": [ "PaymentStatus" ], "summary": "Obtain Payment Status", "description": "PaymentStatus which enquiry sends CAMT005 ISO JSON Request standard messages and enquires and responds back with PAIN002 ISO JSON message structure after querying matching backend", "operationId": "PaymentStatus", "x-dataclassification-code": "Confidential", "parameters": [ { "name": "x-fapi-interaction-id", "in": "header", "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream", "required": true, "schema": { "type": "string" } }, { "name": "x-fapi-customer-last-logged-time", "in": "header", "description": "The time when the Payment Services User last logged in with the Third Party Provider", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-ip-address", "in": "header", "description": "The Payment Services User's IP address if the Payment Services User is currently logged in with the Third Party Provider.", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-user-agent", "in": "header", "description": "Indicates the user-agent that the Payment Services User is using https://www.computerhope.com/jargon/u/useragen.htm", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-financial-id", "in": "header", "description": "The unique id of the financial institution to which the request is issued. BMO is 001", "required": false, "schema": { "type": "string" } }, { "name": "x-crypto-key", "in": "header", "description": "Crypto Key for payload decryption", "required": false, "schema": { "type": "string" } }, { "name": "x-request-id", "in": "header", "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "required": true, "schema": { "type": "string" } }, { "name": "x-sourcesystem-id", "in": "header", "description": "Source System ID to identify source, use 'OPENGENAPI'", "schema": { "type": "string" } }, { "name": "x-api-key", "in": "header", "description": "The unique id used to identify caller of the API. (For legacy, AppCatId value could be used)", "required": false, "schema": { "type": "string" } }, { "name": "x-app-cat-id", "in": "header", "description": "BMO Application Catalogue ID of the consumer of the API. To be provided if API call is initiated by a BMO Application. BMO Application Catalogue https://appcat.bmogc.net/servlet/ApmServer", "required": false, "schema": { "type": "string" } }, { "name": "x-csrf-token", "in": "header", "description": "Applicable for cookie session based authentication. Applicable for UI layer to pass session value to support cookie session based authentication", "required": false, "schema": { "type": "string" } }, { "name": "x-content-type", "in": "header", "description": "pdf or csv", "required": false, "schema": { "type": "string" } }, { "name": "x-expires", "in": "header", "description": "valid value 0", "required": false, "schema": { "type": "string" } }, { "name": "x-cache-control", "in": "header", "description": "must-revalidate post-check=0 pre-check=0", "required": false, "schema": { "type": "string" } }, { "name": "x-content-disposition", "in": "header", "description": "attachment and fileName", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "PaymentStatus Request - Send CAMT005 and respond back with PAIN002 message", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestPayload" } } }, "required": true }, "security": [ { "api-key-1": [], "OAuth": [ "bmo.tppach.payment-initiation.read" ] } ], "responses": { "200": { "description": "OK", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponsePayload" } } } }, "400": { "description": "Bad Request Exception", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "401": { "description": "Unauthorized", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "403": { "description": "Forbidden - the user is not authorized to use this resource", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "404": { "description": "Not Found", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "415": { "description": "Unsupported Media Type", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "429": { "description": "Too many requests", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "504": { "description": "Integration or Backend Timeout", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } }, "x-codegen-request-body-name": "sendPaymentStatusRequest" } }, "/tpp/ach/customer-access-entitlement/commercial-user-access-arrangement/get": { "post": { "tags": [ "TppACHArrangementCompany" ], "summary": "Get Company ID List", "description": "Get all the consented company Ids from ACH business services for the third party consumer, request with customerId and respond with the list of Company Ids.", "operationId": "ACHCompanyIDList", "x-dataclassification-code": "Confidential", "parameters": [ { "name": "x-fapi-interaction-id", "in": "header", "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream", "required": true, "schema": { "type": "string" } }, { "name": "x-fapi-customer-last-logged-time", "in": "header", "description": "The time when the Payment Services User last logged in with the Third Party Provider", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-ip-address", "in": "header", "description": "The Payment Services User's IP address if the Payment Services User is currently logged in with the Third Party Provider.", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-customer-user-agent", "in": "header", "description": "Indicates the user-agent that the Payment Services User is using https://www.computerhope.com/jargon/u/useragen.htm", "required": false, "schema": { "type": "string" } }, { "name": "x-fapi-financial-id", "in": "header", "description": "The unique id of the financial institution to which the request is issued. BMO is 001", "required": false, "schema": { "type": "string" } }, { "name": "x-crypto-key", "in": "header", "description": "Crypto Key for payload decryption", "required": false, "schema": { "type": "string" } }, { "name": "x-request-id", "in": "header", "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "required": true, "schema": { "type": "string" } }, { "name": "x-sourcesystem-id", "in": "header", "description": "Source System ID to identify source, use 'OPENGENAPI'", "required": true, "schema": { "type": "string" } }, { "name": "x-api-key", "in": "header", "description": "The unique id used to identify caller of the API. (For legacy, AppCatId value could be used)", "required": false, "schema": { "type": "string" } }, { "name": "x-app-cat-id", "in": "header", "description": "BMO Application Catalogue ID of the consumer of the API. To be provided if API call is initiated by a BMO Application. BMO Application Catalogue https://appcat.bmogc.net/servlet/ApmServer", "required": false, "schema": { "type": "string" } }, { "name": "x-csrf-token", "in": "header", "description": "Applicable for cookie session based authentication. Applicable for UI layer to pass session value to support cookie session based authentication", "required": false, "schema": { "type": "string" } }, { "name": "x-content-type", "in": "header", "description": "pdf or csv", "required": false, "schema": { "type": "string" } }, { "name": "x-expires", "in": "header", "description": "valid value 0", "required": false, "schema": { "type": "string" } }, { "name": "x-cache-control", "in": "header", "description": "must-revalidate post-check=0 pre-check=0", "required": false, "schema": { "type": "string" } }, { "name": "x-content-disposition", "in": "header", "description": "attachment and fileName", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "ACHCompanyIDListRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestPayload" } } }, "required": true }, "security": [ { "api-key-1": [], "OAuth": [ "bmo.tppach.payment-initiation.read" ] } ], "responses": { "200": { "description": "OK", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponsePayload" } } } }, "400": { "description": "Bad Request Exception", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "401": { "description": "Unauthorized", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "403": { "description": "Forbidden - the user is not authorized to use this resource", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "404": { "description": "Not Found", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "415": { "description": "Unsupported Media Type", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "429": { "description": "Too many requests", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } }, "504": { "description": "Integration or Backend Timeout", "headers": { "x-fapi-interaction-id": { "description": "If the FDX-interactionId is provided by the caller then APIC will populate the x-request-id with FDX-interactionId. If FDX-interactionId is not provided by the caller then APIC will generate the x-request-id to send it to downstream.", "schema": { "type": "string" }, "required": true }, "x-request-id": { "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.", "schema": { "type": "string" }, "required": true } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } }, "x-codegen-request-body-name": "ACHCompanyIDListRequest" } } }, "components": { "securitySchemes": { "api-key-1": { "type": "apiKey", "in": "header", "x-key-type": "client_id", "name": "x-api-key" }, "OAuth": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize", "tokenUrl": "https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token", "scopes": { "SandboxDataManagement": "SandboxDataManagement", "bmo.tppach.payment-initiation.read": "bmo.tppach.payment-initiation.read", "bmo.tppach.payment-initiation.create": "bmo.tppach.payment-initiation.create" } } }, "x-ibm-oauth-provider": "apic-oauth-ob-commercial-sb-provider" } }, "schemas": { "RequestPayload": { "properties": { "SECURE": { "$ref": "#/components/schemas/SECURE" } } }, "ResponsePayload": { "required": [ "result", "SECURE" ], "type": "object", "properties": { "result": { "$ref": "#/components/schemas/Result" }, "SECURE": { "$ref": "#/components/schemas/SECURE" } } }, "SECURE": { "type": "object", "required": [ "encrypted", "data" ], "properties": { "encrypted": { "type": "boolean", "default": true, "description": "Send true when dealing with data encryption" }, "data": { "type": "string", "default": "encrypted PAIN001 or PAIN00 or CAMT005 payload for request and pain002 for response", "description": "base64url. #/definitions/SecuredDataObject should be sent as encrypted string in this field" } } }, "Result": { "type": "object", "required": [ "code", "status" ], "properties": { "code": { "type": "string" }, "status": { "type": "string" }, "messages": { "type": "array", "items": { "type": "string" } }, "resultDetails": { "type": "array", "items": { "$ref": "#/components/schemas/ResultDetails" } } } }, "ResultDetails": { "type": "object", "properties": { "detailCode": { "type": "string" }, "detailMessage": { "type": "string" } } }, "ACHCompanyIDListRequest": { "required": [ "ACHCompanyIDListRequest" ], "type": "object", "properties": { "userEntity": { "$ref": "#/components/schemas/UserEntity" } } }, "ACHCompanyIDListResponse": { "required": [ "result", "companyIDList" ], "type": "object", "properties": { "result": { "$ref": "#/components/schemas/CompanyResult" }, "companyIDList": { "$ref": "#/components/schemas/CompanyIDList" } } }, "UserEntity": { "required": [ "customerId" ], "type": "object", "properties": { "customerId": { "type": "string", "description": "customer Id for the consumer.", "example": "8017795" }, "userId": { "type": "string", "description": "user Id for the consumer.", "example": "8017795" } } }, "LinkedCompanies": { "required": [ "companyIdentification", "companyName", "consent" ], "type": "object", "properties": { "companyIdentification": { "type": "string", "description": "customer Id for the consumer." }, "companyName": { "type": "string", "description": "company name for the consumer." }, "consent": { "$ref": "#/components/schemas/Consent" } } }, "Consent": { "type": "object", "required": [ "consented" ], "properties": { "consented": { "type": "boolean" } } }, "CompanyResult": { "type": "object", "required": [ "code", "status" ], "properties": { "code": { "type": "string" }, "status": { "type": "string" }, "messages": { "type": "array", "items": { "type": "string" } } } }, "CompanyIDList": { "type": "object", "required": [ "RequestorCustomerId", "LinkedCompanies" ], "properties": { "requestorCustomerId": { "type": "string", "description": "requester customer Id.", "example": "6017015" }, "linkedCompanies": { "type": "array", "description": "Array of FI‐specific attributes", "items": { "$ref": "#/components/schemas/LinkedCompanies" } } } }, "Problem": { "required": [ "detail", "status", "title", "type" ], "type": "object", "properties": { "type": { "type": "string", "description": "An absolute URI that identifies the problem type. When dereferenced,\nit SHOULD provide human-readable documentation for the problem type\n(e.g., using HTML).\n", "format": "uri", "example": "https://zalando.github.io/problem/input-violation", "default": "about:blank" }, "title": { "type": "string", "description": "A short, summary of the problem type. Written in english and readable\nfor engineers (usually not suited for non technical stakeholders and not localized);\n", "example": "Bad Request" }, "status": { "maximum": 600, "exclusiveMaximum": true, "minimum": 100, "type": "integer", "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", "format": "int32", "example": 400 }, "detail": { "type": "string", "description": "A human readable explanation specific to this occurrence of the problem.", "example": "Connection to database timed out" }, "instance": { "type": "string", "description": "An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.", "format": "uri" }, "additional_details": { "type": "array", "items": { "$ref": "#/components/schemas/AdditionalDetail" } } } }, "AdditionalDetail": { "type": "object", "description": "An object containing detailed Additional information.", "properties": { "detailCode": { "type": "string", "description": "Detailed backend response codes.eg. CUSTOMER-ERROR-DOB-MISSING" }, "detailMessage": { "type": "string", "description": "Detailed backend messages. e.g. Date of Birth is missing." }, "sourceAppCatId": { "type": "string" } } } } }, "x-ibm-configuration": { "type": "rest", "phase": "realized", "enforced": true, "testable": true, "categories": [ "bian--bd--operationalservices" ], "cors": { "enabled": true }, "oauth-servers": { "OAuth": { "authorizationCode": { "tokenUrls": [ "https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token" ], "authorizationUrls": [ "https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize" ], "refreshUrls": [] } } } }, "x-ibm-endpoints": [ { "url": "https://sandbox-open-api.bmo.com/open-banking/commercial-sb", "type": [ "production", "development" ] } ] }