BMO

BMO Wire Payments (U.S.) API

Submits and tracks U.S. domestic and international wire payments from Online Banking for Business accounts, secured with OAuth 2.0 and a client API key.

OpenAPI Specification

bmo-wire-payments-us-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "Wire Payments (U.S.)",
    "description": "WIRES APIs are used by customers/partners to send wire payment, send fedwire drawdown payment, and to inquire the status of the payment.",
    "contact": {
      "name": "WROS Support",
      "url": "https://confluence.bmogc.net/x/PAGE_TO_BE_CREATED",
      "email": "EWPCORE_TechSupport@bmo.com"
    },
    "version": "1.0.2",
    "x-ibm-name": "wirepaymentapius",
    "x-api-id": "BMO-ENT-f03de36a-fb59-4757-af38-b4afb449a908",
    "x-bmo-api-type": "internal-api",
    "x-bmoservicedomain-name": "Payment Initiation",
    "x-bmo-api-provider-id": 87679,
    "x-audience": "company-internal",
    "x-template-version": "1.0.0",
    "x-api-specification-compliant": true,
    "x-ibm-summary": ""
  },
  "servers": [
    {
      "url": "https://sandbox-open-api.bmo.com/open-banking/commercial-sb"
    }
  ],
  "tags": [
    {
      "name": "SendPayment",
      "description": "Receive wire payment request in PAIN.001 ISO from BMO Bank NA Partners/Customers to initiate wire payment and send acknowledgement as response in PAIN.002 ISO."
    },
    {
      "name": "GetPaymentStatus",
      "description": "Receive payment status inquiry request in CAMT.005 ISO from BMO Bank NA Partners/Customers and send payment status as response in PAIN.002 ISO."
    },
    {
      "name": "SendFedwireDrawdownPayment",
      "description": "Receive Fedwire Drawdown request in PAIN.013 ISO from BMO Bank NA Partners/Customers to initiate payment request and send acknowledgement as response in PAIN.014 ISO."
    }
  ],
  "paths": {
    "/tpp/wires/payment-initiation/customer-credit-transfer-initiation/us": {
      "post": {
        "x-dataclassification-code": "Confidential",
        "security": [
          {
            "api-key-1": [],
            "OAuth": [
              "bmo.tppwiresus.payment-initiation.create"
            ]
          }
        ],
        "description": "Receive wire payment request from BMO Bank NA Partners/Customers in PAIN.001 ISO as input and return acknwoledgement in PAIN.002 ISO as response.",
        "tags": [
          "SendPayment"
        ],
        "operationId": "TppCustomerCreditTransferInitiation",
        "summary": "Send Wire Payment",
        "parameters": [
          {
            "$ref": "#/components/parameters/x-request-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-interaction-id"
          },
          {
            "$ref": "#/components/parameters/x-app-cat-id"
          },
          {
            "$ref": "#/components/parameters/x-client-id"
          },
          {
            "$ref": "#/components/parameters/x-api-key"
          },
          {
            "$ref": "#/components/parameters/x-fapi-financial-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-last-logged-time"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-ip-address"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-user-agent"
          },
          {
            "$ref": "#/components/parameters/x-csrf-token"
          },
          {
            "$ref": "#/components/parameters/x-crypto-key"
          },
          {
            "$ref": "#/components/parameters/Authorization"
          },
          {
            "$ref": "#/components/parameters/true-client-ip"
          }
        ],
        "requestBody": {
          "description": "CustomerCreditTransferInitiation - Send PAIN.001 ISO message.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerCreditTransferInitiationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/pain002"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "504": {
            "$ref": "#/components/responses/504"
          }
        },
        "x-codegen-request-body-name": "CustomerCreditTransferInitiation"
      }
    },
    "/tpp/wires/payment-initiation/get-transaction-status/us/get": {
      "post": {
        "x-dataclassification-code": "Confidential",
        "security": [
          {
            "api-key-1": [],
            "OAuth": [
              "bmo.tppwiresus.payment-initiation.read"
            ]
          }
        ],
        "description": "Receive payment status inquiry request in CAMT.005 ISO as input and return payment status in PAIN.002 ISO as response.",
        "tags": [
          "GetPaymentStatus"
        ],
        "operationId": "TppGetPaymentStatus",
        "summary": "Obtain Payment Status",
        "parameters": [
          {
            "$ref": "#/components/parameters/x-request-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-interaction-id"
          },
          {
            "$ref": "#/components/parameters/x-app-cat-id"
          },
          {
            "$ref": "#/components/parameters/x-client-id"
          },
          {
            "$ref": "#/components/parameters/x-api-key"
          },
          {
            "$ref": "#/components/parameters/x-fapi-financial-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-last-logged-time"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-ip-address"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-user-agent"
          },
          {
            "$ref": "#/components/parameters/x-csrf-token"
          },
          {
            "$ref": "#/components/parameters/x-crypto-key"
          },
          {
            "$ref": "#/components/parameters/Authorization"
          },
          {
            "$ref": "#/components/parameters/true-client-ip"
          }
        ],
        "requestBody": {
          "description": "GetPaymentStatus - Send CAMT.005 ISO message",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/pain002"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "504": {
            "$ref": "#/components/responses/504"
          }
        },
        "x-codegen-request-body-name": "CustomerCreditTransferInitiation"
      }
    },
    "/tpp/wires/payment-initiation/creditor-payment-activation-request": {
      "post": {
        "x-dataclassification-code": "Confidential",
        "security": [
          {
            "api-key-1": [],
            "OAuth": [
              "bmo.tppwiresus.payment-initiation.create"
            ]
          }
        ],
        "description": "Receive Fedwire drawdown payment request in PAIN.013 ISO as input and return acknwoledgement in PAIN.014 ISO as response.",
        "tags": [
          "SendFedwireDrawdownPayment"
        ],
        "operationId": "TppCreditorPaymentActivationRequest",
        "summary": "Send Fedwire Drawdown",
        "parameters": [
          {
            "$ref": "#/components/parameters/x-request-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-interaction-id"
          },
          {
            "$ref": "#/components/parameters/x-app-cat-id"
          },
          {
            "$ref": "#/components/parameters/x-client-id"
          },
          {
            "$ref": "#/components/parameters/x-api-key"
          },
          {
            "$ref": "#/components/parameters/x-fapi-financial-id"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-last-logged-time"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-ip-address"
          },
          {
            "$ref": "#/components/parameters/x-fapi-customer-user-agent"
          },
          {
            "$ref": "#/components/parameters/x-csrf-token"
          },
          {
            "$ref": "#/components/parameters/x-crypto-key"
          },
          {
            "$ref": "#/components/parameters/Authorization"
          },
          {
            "$ref": "#/components/parameters/true-client-ip"
          }
        ],
        "requestBody": {
          "description": "CreditorPaymentActivationRequest - Send PAIN.013 ISO message and respond back with PAIN.014 ISO message.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditorPaymentActivationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/pain014"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "504": {
            "$ref": "#/components/responses/504"
          }
        },
        "x-codegen-request-body-name": "CustomerCreditTransferInitiation"
      }
    }
  },
  "components": {
    "responses": {
      "400": {
        "description": "Bad Request Exception",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        },
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden - the user is not authorized to use this resource",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "404": {
        "description": "Not Found",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "415": {
        "description": "Unsupported Media Type",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "429": {
        "description": "Too many requests",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "504": {
        "description": "Integration or Backend Timeout",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "pain002": {
        "description": "OK",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerPaymentStatusReportResponse"
            }
          }
        }
      },
      "pain014": {
        "description": "OK",
        "headers": {
          "x-request-id": {
            "schema": {
              "type": "string"
            },
            "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call.",
            "required": true
          },
          "x-fapi-interaction-id": {
            "schema": {
              "type": "string"
            },
            "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer /employee. Multiple requests  with unique  x-request-id's might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id.",
            "required": true
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreditorPaymentActivationRequestStatusReport"
            }
          }
        }
      }
    },
    "parameters": {
      "x-request-id": {
        "in": "header",
        "name": "x-request-id",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Correlates HTTP requests between a client and server. Uniquely identifies each API call."
      },
      "x-fapi-interaction-id": {
        "in": "header",
        "name": "x-fapi-interaction-id",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "An RFC 4122 UID used  to consolidate multiple requests for ex. in a particular session of the customer/employee. Multiple requests  with unique  x-request-id’s might have common  x-fapi-interactionid. If there is no need to link multiple API calls then the x-fapi-interaction-id values is the same as x-request-id."
      },
      "x-app-cat-id": {
        "in": "header",
        "name": "x-app-cat-id",
        "schema": {
          "type": "string"
        },
        "required": false,
        "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"
      },
      "x-client-id": {
        "in": "header",
        "name": "x-client-id",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Client Id generated during Third Party Provider application registration. The Client Id is leveraged for the internal BMO API calls as calling channel identifier."
      },
      "x-api-key": {
        "in": "header",
        "name": "x-api-key",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "The unique id used to identify caller of the API. (For legacy, AppCatId value could be used)"
      },
      "x-fapi-financial-id": {
        "in": "header",
        "name": "x-fapi-financial-id",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "The unique id of the financial institution to which the request is issued. BMO is 001"
      },
      "x-fapi-customer-last-logged-time": {
        "in": "header",
        "name": "x-fapi-customer-last-logged-time",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "The time when the Payment Services User last logged in with the Third Party Provider"
      },
      "x-fapi-customer-ip-address": {
        "in": "header",
        "name": "x-fapi-customer-ip-address",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "The Payment Services User’s IP address if the Payment Services User is currently logged in with the Third Party Provider"
      },
      "x-fapi-customer-user-agent": {
        "in": "header",
        "name": "x-fapi-customer-user-agent",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "The header indicates the user-agent that the PSU is using. The API client may populate this field with the User-Agent header string if browser is being used. If the mobile app is being used then the x-fapi-customer-user-agent content must be different from browser based user-agent strings."
      },
      "x-csrf-token": {
        "in": "header",
        "name": "x-csrf-token",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "This header holds the token to prevent for the cross-site request forgery prevention token."
      },
      "x-crypto-key": {
        "name": "x-crypto-key",
        "in": "header",
        "description": "This header is over API calls to share content encryption key and its meta data to fulfill API application-level encryption. The crypto key is to encrypt symmetric key. It will also have information such as iv, key-id.",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "Authorization": {
        "in": "header",
        "name": "Authorization",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750"
      },
      "true-client-ip": {
        "name": "true-client-ip",
        "in": "header",
        "description": "Original initiator ip address. Will be inserted by Akamai when enable add “True-Client-IP”. Payments API require this for AML (or Fraud) analysis.",
        "schema": {
          "type": "string"
        },
        "required": false
      }
    },
    "schemas": {
      "Problem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri",
            "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). default: 'about:blank'; example: 'https://zalando.github.io/problem/constraint-violation'\n"
          },
          "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\nnot localized); example: Service Unavailable\n"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "The HTTP status code generated by the origin server for this occurrence\nof the problem. example: 503\n",
            "minimum": 100,
            "maximum": 600
          },
          "detail": {
            "type": "string",
            "description": "A human readable explanation specific to this occurrence of the\nproblem. example: Connection to database timed out\n"
          },
          "instance": {
            "type": "string",
            "format": "uri",
            "description": "An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.\n"
          }
        }
      },
      "CustomerCreditTransferInitiationRequest": {
        "properties": {
          "SECURE": {
            "$ref": "#/components/schemas/SECURE"
          }
        },
        "required": [
          "SECURE"
        ]
      },
      "GetTransactionRequest": {
        "properties": {
          "SECURE": {
            "$ref": "#/components/schemas/SECURE"
          }
        },
        "required": [
          "SECURE"
        ]
      },
      "CustomerPaymentStatusReportResponse": {
        "properties": {
          "SECURE": {
            "$ref": "#/components/schemas/SECURE"
          }
        },
        "required": [
          "SECURE"
        ]
      },
      "CreditorPaymentActivationRequest": {
        "properties": {
          "SECURE": {
            "$ref": "#/components/schemas/SECURE"
          }
        },
        "required": [
          "SECURE"
        ]
      },
      "CreditorPaymentActivationRequestStatusReport": {
        "properties": {
          "SECURE": {
            "$ref": "#/components/schemas/SECURE"
          }
        },
        "required": [
          "SECURE"
        ]
      },
      "SECURE": {
        "type": "object",
        "required": [
          "encrypted",
          "data"
        ],
        "properties": {
          "encrypted": {
            "type": "boolean",
            "default": true,
            "description": "Send true when dealing with data encryption else false"
          },
          "data": {
            "type": "string",
            "default": "encrypted PAIN001 or PAIN00 or CAMT005 payload for request and pain002 for response",
            "description": "base64url<cipher-text>. #/definitions/SecuredDataObject should be sent as encrypted string in this field"
          }
        }
      }
    },
    "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": {
              "bmo.tppwiresus.payment-initiation.read": "bmo.tppwiresus.payment-initiation.read",
              "bmo.tppwiresus.payment-initiation.create": "bmo.tppwiresus.payment-initiation.create"
            }
          }
        },
        "x-ibm-oauth-provider": "apic-oauth-ob-commercial-sb-provider"
      }
    }
  },
  "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"
      ]
    }
  ]
}