{
  "swagger": "2.0",
  "info": {
    "description": "Location and services offerd by ATMs",
    "version": "1.1.0",
    "title": "OPBK-BLM-R-AtmLoAndSvc",
    "x-ibm-name": "OPBK-BLM-R-AtmLoAndSvc",
    "x-citi-market": "Mexico",
    "x-citi-lob": "Retail Bank",
    "x-citi-api_category": "Location",
    "x-citi-security": {
      "oauth_token_type": "authorization_code"
    }
  },
  "host": "$(catalog.host)",
  "basePath": "/api",
  "tags": [
    {
      "name": "ATM",
      "description": "Endpoint to request ATM data"
    }
  ],
  "schemes": [
    "https"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v1/atms": {
      "get": {
        "summary": "Provides information on the location of ATMs besides their different provided services",
        "tags": [
          "ATM"
        ],
        "operationId": "ATM",
        "description": "Gets a list of all `ATM` objects.",
        "parameters": [{
            "name": "client_id",
            "in": "header",
            "required": true,
            "type": "string",
            "description": "Client ID generated during application registration"
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": true,
            "type": "string",
            "description": "The Authorization Token received during login"
          },
					{
						"name": "uuid",
						"in": "header",
						"required": false,
						"type": "string",
						"description": "128 bit UUID that you generate for every request"
					},
          {
            "name": "If-Modified-Since",
            "in": "header",
            "description": "Used for conditional request, to retrieve data only if modified since a given date",
            "required": false,
            "type": "string"
          },
          {
            "name": "If-None-Match",
            "in": "header",
            "description": "Used for conditional request, to retrieve data only if the given Etag value does not match",
            "required": false,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "Next page in order to get the paginated information",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with a list of `ATM` data",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header",
                "default": "max-age=31536000"
              },
              "Etag": {
                "type": "string",
                "description": "A unique ID identifying whether this resource has changed"
              },
              "Cache-Control": {
                "type": "string",
                "description": "Describes how long this response can be cached",
                "default": "max-age=28800"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              }
            },
            "schema": {
              "$ref": "#/definitions/ATMDataResponse"
            }
          },
          "400": {
            "description": "<table class=\"table\"><tr><td>status</td><td>title</td><td>description</td></tr><tr><td>400</td><td>Bad request</td><td>You have sent a request which could not be understood.</td></tr></table>",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error"
              }
            },
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "408": {
            "description": "<table class=\"table\"><tr><td>status</td><td>title</td><td>description</td></tr><tr><td>408</td><td>Client timeout</td><td>Your client has failed to submit a request, and a timeout has occurred.</td></tr></table>",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error"
              }
            },
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "429": {
            "description": "<table class=\"table\"><tr><td>status</td><td>title</td><td>description</td></tr><tr><td>429</td><td>Too many requests</td><td>You have requested this resource too often.</td></tr></table>",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error"
              }
            },
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "<table class=\"table\"><tr><td>status</td><td>title</td><td>description</td></tr><tr><td>500</td><td>Too many requests</td><td>An error occurred on the server.</td></tr></table>",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error"
              }
            },
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "503": {
            "description": "<table class=\"table\"><tr><td>status</td><td>title</td><td>description</td></tr><tr><td>503</td><td>Service temporarily unavailable</td><td>The service is temporarily unavailable.</td></tr></table>",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error"
              }
            },
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "ATMDataResponse": {
      "type": "object",
      "properties": {
        "meta": {
          "$ref": "#/definitions/MetaDataResponse"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BrandResponse"
          }
        },
        "link": {
          "$ref": "#/definitions/Links"
        }
      },
      "required": [
        "data",
        "meta"
      ]
    },
    "BrandResponse": {
      "properties": {
        "Brand": {
          "description": "Brand of the Acquirer of transactions captured by the ATM `Spanish Definition:` Marca del adquirente de las transacciones capturadas en el Cajero Automático",
          "type": "array",
          "title": "Brand / Marca",
          "items": {
            "$ref": "#/definitions/BrandInformationResponse"
          },
          "minItems": 1
        }
      },
      "required": [
        "Brand"
      ],
      "description": "Environment of the ATM."
    },
    "BrandInformationResponse": {
      "description": "Brand of the Acquirer of transactions captured by the ATM",
      "properties": {
        "BrandName": {
          "description": "Brand Name that an organisation uses to market its products or services to a consumer. `Spanish Definition:` Nombre o marca usada por una organizacion para identificar sus productos o servicios.",
          "title": "BrandName / NombreMarca",
          "type": "string",
          "minLength": 1,
          "maxLength": 140,
          "minItems": 1,
          "maxItems": 1,
          "example": "MÉXICO"
        },
        "ATM": {
          "description": "ATM information.",
          "type": "array",
          "title": "ATM",
          "items": {
            "$ref": "#/definitions/ATMInformationResponse"
          },
          "minItems": 1
        }
      },
      "required": [
        "BrandName"
      ],
      "minItems": 1
    },
    "ATMInformationResponse": {
      "minItems": 1,
      "description": "ATM information. `Spanish Definition:` Informacion sobre el Cajero Automatico.",
      "properties": {
        "Identification": {
          "description": "ATM terminal device identification for the acquirer and the issuer. `Spanish Definition:` ID de Cajero",
          "title": "Identification / IDCajero",
          "type": "string",
          "minLength": 1,
          "maxLength": 35,
          "minItems": 1,
          "maxItems": 1,
          "example": "999994090"
        },
        "SupportedLanguages": {
          "description": "Identification of the language name according to the ISO 639-1 codes. The type is validated by the list of values coded with two alphabetic characters, defined in the standard.`Spanish Definition:` Lenguajes disponibles que contiene el ATM",
          "title": "SupportedLanguages / LenguajesDisponibles",
          "type": "array",
          "minItems": 0,
          "items": {
            "pattern": "[a-z]{2}",
            "type": "string",
            "example": [
              "es",
              "en",
              "fr",
              "pt",
              "io"
            ]
          }
        },
        "ATMServices": {
          "description": "Describes the type of transaction available for a customer on an ATM.`Spanish Definition:`Servicios ATM. \n\n| CAMPOS | CODE NAME SPANISH | SPANISH DEFINITION |\n|-----|-----|-------|\n| ATBA   | ConsultaDeSaldo   | Consulta de  Saldo     |\n| ATBP   | PagoServiciosEfectivoOnUs   | Pago de Servicios en Efectivo Clientes Propios     |\n| ATBB   | PagoServiciosEfectivoOffUs   | Pago de Servicios en Efectivo Otros Clientes     |\n| ATBM   | PagoServiciosCargoACuentaOnUs   | Pago de Servicios con Cargo a Cuenta Clientes Propios     |\n| ATBO   | PagoServiciosCargoACuentaOffUs   | Pago de Servicos con Cargo a Cuenta Otros Clientes     |\n| ATCA   | DepositosEfectivo   | Depositos de Efectivo     |\n| ATCD   | Donativos   | Donativos     |\n| ATCQ   | DepositosCheques   | Depositos de Cheques     |\n| ATCT   | RetiroConTarjeta   | Retiro con tarjeta     |\n| ATST   | RetiroSinTarjeta   | Retiro sin tarjeta     |\n| ATFC   | RetiroRapido   | Montos predeterminados para retiro de efectivo rapido como primera opcion despues de autenticar al cliente     |\n| ATMB   | RegistroBancaMovil   | Registro de servicios de Banca Movil     |\n| ATMP   | RegistroWallets   | Registro de/asociacion de wallets     |\n| ATMM   | CompraTiempoAireClienteMismoBanco   | Compra tiempo aire cliente mismo banco     |\n| ATMO   | CompraTiempoAireClienteOtrosBancos   | Compra tiempo aire cliente otros bancos     |\n| ATOS   | EnvioEstadoCuenta   | Solicitud de envio de estado de cuenta     |\n| ATOT   | Otro   | Otro     |\n| ATPA   | ActivacionTarjeta   | Activacion de tarjeta     |\n| ATPC   | CambiodeNIP   | Cambio de NIP     |\n| ATPU   | DesbloqueoNIP   | Desbloqueo de NIP     |\n| ATIC   | ConsultaCLABE   | Consulta de cuenta CLABE     |\n| ATCM   | ConsultaSaldoCreditosOnUs   | Consulta de Saldos de Creditos que el cliente tenga con el banco: Ej. Crédito de nómina - Mismo Banco     |\n| ATCO   | ConsultaSaldoCreditosOffUs   | Consulta de Saldos de Creditos que el cliente tenga con otro banco: Ej. Crédito de nómina - Otros Bancos     |\n| ATTM   | TransferenciaTercerosOnUs   | Transferencias entre cuentas mismo banco      |\n| ATTO   | TransferenciaTercerosOffUs   | Transferencias entre cuentas de otros bancos     |\n| ATTC   | TransferenciaCuentaPropia   | Transferencias entre cuentas propias del cliente     |\n| ATPM   | PagoTarjetaOnUs   | Pago de tarjeta mismo banco     |\n| ATPO   | PagoTarjetaOffUs   | Pago de tarjeta otros bancos     |\n| ATTS   | ConsultaMovimientos   | Consulta de Movimientos     |",
          "title": "ATMServices / ServiciosATM",
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string",
            "example": [
              "ATBA",
              "ATBP",
              "ATBB",
              "ATBM",
              "ATBO",
              "ATCA",
              "ATCD",
              "ATCQ",
              "ATCT",
              "ATST",
              "ATFC",
              "ATMB",
              "ATMP",
              "ATMM",
              "ATMO",
              "ATOS",
              "ATOT",
              "ATPA",
              "ATPC",
              "ATPU",
              "ATIC",
              "ATCM",
              "ATCO",
              "ATTM",
              "ATTO",
              "ATTC",
              "ATPM",
              "ATPO",
              "ATTS"
            ]
          }
        },
        "Accessibility": {
          "description": "Indicates Types of Accessibility.`Spanish Definition:`Accesibilidad. Lista de Opciones.\n\n| CAMPOS | CODE NAME SPANISH | SPANISH DEFINITION |\n|-----|-----|-------|\n| ATAC   | EntradaAudifonos   | Entrada para audifonos     |\n|  ATAD   | PuertasAutomaticas   | Puertas automaticas     |\n| ATER   | RampaAccesoExterna   | Rampa de acceso externa     |\n| ATIR   | RampaAccesoInterna   | Rampa de acceso interna     |\n| ATLA   | AccesoSinEscalerasORampas   | Acceso que no requiere subir/bajar escaleras o rampas     |\n| ATLL   | AlturaSillaRuedas   | Altura adecuada para usuarios con silla de ruedas     |\n| ATOT   | OtrasUbicaciones   | Otros ambientes, como por ejemplo aeropuerto, centros comerciales     |\n| ATPT   | PantallaTouch   | Equipo de autoservicio con pantalla touch     |\n|  ATWA   | AccesoSillaRuedas   | Acceso para silla de ruedas     |\n|",
          "title": "Accessibility / Accesibilidad",
          "type": "array",
          "minItems": 0,
          "maxItems": 1,
          "items": {
            "type": "string",
            "example": [
              "ATAC",
              "ATAD",
              "ATER",
              "ATIR",
              "ATLA",
              "ATLL",
              "ATOT",
              "ATPT",
              "ATWA"
            ],
            "minItems": 0
          }
        },
        "Access24HoursIndicator": {
          "description": "Indicates that the ATM is available for use by customers 24 hours per day. `Spanish Definition:` Indicador de acceso al ATM las 24 horas.",
          "title": "Access24HoursIndicator / IndicadorAcceso24Horas",
          "type": "boolean",
          "example": true,
          "minItems": 0,
          "maxItems": 1
        },
        "SupportedCurrencies": {
          "description": "All ISO 4217 defined currency  supported by the ATM. `Spanish Definition:` Divisas disponibles.",
          "title": "SupportedCurrencies / DivisasDisponibles",
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string",
            "pattern": "[A-Z]{3}",
            "minItems": 1,
            "example": [
              "MXN",
              "USD",
              "GBP"
            ]
          }
        },
        "MinimumPossibleAmount": {
          "description": "Minimum amount allowed for a transaction in the service. `Spanish Definition:` Monto minimo permitido para la transaccion.",
          "title": "MinimumPossibleAmount / MontoMinimoPermitido",
          "type": "string",
          "pattern": "^-?\\d{1,10}\\.?\\d{0,2}$",
          "minItems": 0,
          "maxItems": 1,
          "example": "5"
        },
        "Note": {
          "description": "Summary description of the ATM. `Spanish Definition:` Descripcion adicional sobre el ATM.",
          "title": "Note / DescripcionAdicional",
          "type": "array",
          "minItems": 0,
          "items": {
            "description": "maxLength 2000 text",
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          }
        },
        "OtherAccessibility": {
          "description": "Enter a new code , name and description for any other ATM accessibility options `Spanish translation:` Codigo o nombre que describa cualquier otra opcion de accesibilidad.",
          "type": "array",
          "title": "OtherAccessibility / OtraAccesibilidad",
          "items": {
            "$ref": "#/definitions/OtherAccessibilityResponse"
          },
          "minItems": 0
        },
        "OtherATMServices": {
          "description": "Enter a new code , name and description for any other ATM Service. `Spanish translation:` Otros servicios que el ATM pueda otorgar.",
          "type": "array",
          "title": "OtherATMServices / OtrosServiciosATM",
          "items": {
            "$ref": "#/definitions/OtherATMSerrvicesResponse"
          }
        },
        "Branch": {
          "$ref": "#/definitions/BranchIdentificationResponse"
        },
        "Location": {
          "$ref": "#/definitions/LocationResponse"
        },
        "FeeSurcharges": {
          "$ref": "#/definitions/FeeSurchargesResponse"
        }
      },
      "required": [
        "ATMServices",
        "Identification",
        "SupportedCurrencies",
        "Location"
      ]
    },
    "OtherAccessibilityResponse": {
      "description": "Enter a new code , name and description for any other ATM accessibility options `Spanish translation:` Codigo o nombre que describa cualquier otra opcion de accesibilidad.",
      "properties": {
        "Code": {
          "description": "The four letter Mnemonic used within an XML file to identify a code `Spanish translation:` La clave de cuatro letras dentro de un archivo XML para identificar a un codigo.",
          "title": "Code / Codigo",
          "type": "string",
          "pattern": "[A-Z]{4}",
          "minLength": 0,
          "maxLength": 4,
          "minItems": 0,
          "maxItems": 1
        },
        "Description": {
          "description": "Description of the code `Spanish translation:` Descripcion del codigo.",
          "title": "Description / Descripcion",
          "type": "string",
          "minLength": 1,
          "maxLength": 350,
          "minItems": 1,
          "maxItems": 1
        },
        "Name": {
          "description": "Long name associated with the code `Spanish translation:` El nombre asociado con el codigo.",
          "title": "Name / Nombre",
          "type": "string",
          "minLength": 1,
          "maxLength": 70,
          "minItems": 1,
          "maxItems": 1
        }
      },
      "required": [
        "Name",
        "Description"
      ]
    },
    "OtherATMSerrvicesResponse": {
      "description": "Enter a new code , name and description for any other ATM Service. `Spanish translation:` Otros servicios que el ATM pueda otorgar.",
      "minItems": 0,
      "type": "object",
      "properties": {
        "Code": {
          "description": "The four letter Mnemonic used within an XML file to identify a code. `Spanish translation:` La clave de cuatro letras dentro de un archivo XML para identificar a un codigo.",
          "title": "Code / Codigo",
          "type": "string",
          "pattern": "[A-Z]{4}",
          "minLength": 0,
          "maxLength": 4,
          "minItems": 0,
          "maxItems": 1
        },
        "Description": {
          "description": "Description to describe the purpose of the code. `Spanish translation:` Descripcion del codigo.",
          "title": "Description / Descripcion",
          "type": "string",
          "minLength": 1,
          "maxLength": 350,
          "minItems": 1,
          "maxItems": 1
        },
        "Name": {
          "description": "Long name associated with the code. `Spanish translation:` El nombre asociado con el codigo.",
          "title": "Name / Nombre",
          "type": "string",
          "minLength": 1,
          "maxLength": 70,
          "minItems": 1,
          "maxItems": 1
        }
      },
      "required": [
        "Name",
        "Description"
      ],
      "additionalProperties": false
    },
    "BranchIdentificationResponse": {
      "description": "Information that locates and identifies a specific branch of a financial institution. `Spanish Definition:` Informacion que ubica e identifica una sucursal o institucion financiera.",
      "title": "Branch / Sucursal",
      "type": "object",
      "minItems": 0,
      "maxItems": 1,
      "properties": {
        "Identification": {
          "description": "ID de la sucursal.",
          "title": "Identification / Identificacion",
          "type": "string",
          "minLength": 1,
          "maxLength": 35,
          "example": "N/A",
          "minItems": 0,
          "maxItems": 1
        }
      }
    },
    "LocationResponse": {
      "description": "Location of the ATM. `Spanish translation:` La ubicacion del ATM.",
      "type": "object",
      "title": "Location / Ubicacion",
      "minItems": 1,
      "maxItems": 1,
      "properties": {
        "LocationCategory": {
          "description": "Indicates the environment of the ATM. `Spanish translation:` Categoria de Ubicacion.",
          "title": "LocationCategory / CategoriaUbicacion",
          "type": "array",
          "items": {
            "$ref": "#/definitions/LocationCategoryResponse"
          }
        },
        "OtherLocationCategory": {
          "description": "Enter a new code , name and description for any other location category. `Spanish Definition:` Otra categoria de ubicación. Permite registrar un nuevo código, nombre y descripción para agregar otra categoria.",
          "type": "array",
          "title": "OtherLocationCategory / OtraCategoriaUbicacion",
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/OtherLocationCategoryResponse"
          }
        },
        "Site": {
          "$ref": "#/definitions/SiteResponse"
        },
        "PostalAddress": {
          "$ref": "#/definitions/PostalAddressResponse"
        }
      },
      "additionalProperties": false,
      "required": [
        "PostalAddress"
      ]
    },
    "LocationCategoryResponse": {
      "description": "Indicates the environment of the ATM.\n\n| CAMPOS | CODE NAME SPANISH | SPANISH DEFINITION |\n|-----|-----|-------|\n| ATBE   | AccesoIndependienteASucursal   | Con acceso independiente a la sucursal     |\n| ATBI   | InteriorSucursal   | Ubicado al interior de la sucursal, disponible durante horarios de servicio     |\n| ATBL   | LobbySucursal   | Ubicado en el lobby accesible por clientes del banco     |\n| ATOT   | OtrasUbicaciones   | Otros ambientes, como por ejemplo aeropuerto, centros comerciales     |\n| ATRO   | UbicadoComercio   | Cajero ubicado en un comercio     |\n| ATRU   | UnidadMovil   | Cajero es parte de una unidad bancaria movil     |",
      "type": "string",
      "example": [
        "ATBE",
        "ATBI",
        "ATBL",
        "ATOT",
        "ATRO",
        "ATRU"
      ],
      "minItems": 0
    },
    "OtherLocationCategoryResponse": {
      "description": "Enter a new code , name and description for any other location category `Spanish translation:` Otra categoria de ubicación. Permite registrar un nuevo código, nombre y descripción para agregar otra categoria.",
      "type": "object",
      "properties": {
        "Code": {
          "description": "The four letter Mnemonic used within an XML file to identify a code `Spanish translation:` La clave de cuatro letras dentro de un archivo XML para identificar a un codigo.",
          "title": "Code / Codigo",
          "type": "string",
          "pattern": "^\\w{4}$",
          "maxLength": 4,
          "minItems": 0,
          "maxItems": 1
        },
        "Description": {
          "description": "Description to describe the purpose of the code `Spanish translation:` Descripcion del codigo.",
          "title": "Description / Descripcion",
          "type": "string",
          "minLength": 1,
          "maxLength": 350,
          "minItems": 1,
          "maxItems": 1
        },
        "Name": {
          "description": "Long name associated with the code `Spanish translation:` El nombre asociado con el codigo.",
          "title": "Name / Nombre",
          "type": "string",
          "minLength": 1,
          "maxLength": 70,
          "minItems": 1,
          "maxItems": 1,
          "example": "TELEFONOS DE MEXICO SAB DE CV SAN JERONIMO"
        }
      },
      "required": [
        "Name",
        "Description"
      ],
      "additionalProperties": false
    },
    "SiteResponse": {
      "description": "Used by a Financial Institution internally to identify the location of an ATM. `Spanish translation:` Usado internamente para identificar la ubicacion de un ATM.",
      "type": "object",
      "title": "Site / Sitio",
      "minItems": 0,
      "maxItems": 1,
      "properties": {
        "Identification": {
          "description": "ATM site identification for the Financial Institution. `Spanish translation:` Identificacion de la ubicacion de ATM otorgada por la institucion financiera.",
          "title": "Identification / Identificacion",
          "type": "string",
          "minLength": 1,
          "maxLength": 35,
          "minItems": 0,
          "maxItems": 1
        },
        "Name": {
          "description": "ATM site name as used by Financial Institution. `Spanish translation:` Nombre del ATM usado por la entidad financiera.",
          "title": "Name / Nombre",
          "type": "string",
          "minLength": 1,
          "maxLength": 140,
          "minItems": 0,
          "maxItems": 1
        }
      },
      "additionalProperties": false
    },
    "PostalAddressResponse": {
      "description": "Information that locates and identifies a specific address, as defined by postal services or in free format text. `Spanish translation:` Direccion Postal",
      "type": "object",
      "title": "PostalAddress / DireccionPostal",
      "minItems": 1,
      "maxItems": 1,
      "properties": {
        "AddressLine": {
          "description": "Information that locates and identifies a specific address, as defined by postal services, that is presented in free format text. `Spanish translation:` Dirección completa (tipo correo postal). Lugar en que se encuentra ubicado el cajero automático.",
          "title": "AddressLine / DireccionCompleta",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AddressLineResponse"
          },
          "minItems": 0,
          "maxItems": 7
        },
        "BuildingNumber": {
          "description": "Corresponde al número externo e interno (cuando aplique) de la vialidad en donde se encuentra localizado el cajero automático. Número externo se refiere a los caracteres alfanuméricos y simbolos que identifican el inmueble donde se ubica el cajero en una vialidad (ejemplos: 125, 1098, 572-A, Domicilio Conocido, Manzana 15, Lote 23). Número interno se refiere a los caracteres alfanuméricos y simbolos que identifican una o más ubicaciones pertenecientes a un número exterior (Ejemplos: 2, Local C, L-5).",
          "title": "BuildingNumber / NumeroExternoInterno",
          "type": "string",
          "minLength": 1,
          "maxLength": 350,
          "example": "9",
          "minItems": 0,
          "maxItems": 1
        },
        "StreetName": {
          "description": "Corresponde al tipo y nombre de la vialidad en donde se encuentra localizado el cajero automático. Tipo de Vialidad: Clasificación que se le da a la vialidad, en función del tránsito vehicular y/o peatonal (Ej. Avenida, Boulevard, Calzada, Calle, Privada).Nombre de Vialidad: Nombre propio que identifica a la vialidad (Ej. Benito Juárez, Las Flores, Rio Blanco, Tlalpan, Revolución).",
          "title": "StreetName / Vialidad",
          "type": "string",
          "minLength": 1,
          "maxLength": 70,
          "example": "PINOS",
          "minItems": 0,
          "maxItems": 1
        },
        "TownName": {
          "description": "Name of a built-up area, with defined boundaries, and a local government. `Spanish translation:` Corresponde a la localidad, colonia y el municipio o alcaldía del domicilio donde se encuentra ubicado el cajero (Ej. Ex-Ejido De Santa Ursula Coapa, Coyoacán / Chula Vista, Tijuana / Vallarta, Mexicali / Centro, Mérida / Colonial, Cd Juarez).",
          "title": "TownName / Localidad/Municipio",
          "type": "string",
          "minLength": 1,
          "maxLength": 35,
          "example": "MAGDALENA CONTRERAS",
          "minItems": 0,
          "maxItems": 1
        },
        "CountrySubDivision": {
          "description": "Identifies a subdivision of a country, for instance state, region, county. `Spanish translation:` Nombre propio que identifica a las Entidades Federativas (Morelos, Yucatan, Sonora, Tamaulipas, Baja California Norte, Ciudad de Mexico).",
          "title": "CountrySubDivision / Estado",
          "type": "array",
          "items": {
            "$ref": "#/definitions/CountrySubDivisionResponse"
          },
          "minItems": 0,
          "maxItems": 1
        },
        "Country": {
          "description": "Nation with its own government, occupying a particular territory. `Spanish translation:` Código ISO de 2 letras designado para identificar a México y que es reconocido internacionalmente: MX.",
          "title": "Country / Pais",
          "type": "string",
          "pattern": "[A-Z]{2}",
          "example": "MX",
          "minItems": 0,
          "maxItems": 1
        },
        "PostCode": {
          "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. `Spanish translation:`Numero que identifica al codigo postal, constituido por cinco digitos, obtenido de la informacion oficial del Servicio Postal Mexicano.",
          "title": "PostCode / CP",
          "type": "string",
          "minLength": 1,
          "maxLength": 16,
          "example": "10100",
          "minItems": 0,
          "maxItems": 1
        },
        "GeoLocation": {
          "$ref": "#/definitions/GeoLocationResponse"
        }
      },
      "additionalProperties": false
    },
    "AddressLineResponse": {
      "description": "maxLength 70 text",
      "type": "string",
      "minLength": 1,
      "maxLength": 70,
      "example": "SAN JERONIMO LIDICE"
    },
    "CountrySubDivisionResponse": {
      "description": "maxLength 35 text",
      "type": "string",
      "minLength": 1,
      "maxLength": 35,
      "example": "CD MEXICO"
    },
    "GeoLocationResponse": {
      "description": "Geographic location of the ATM specified by geographic coordinates or UTM coordinates. `Spanish translation:` Geolocalizacion. Ubicacion geografica del cajero especificada por coordenadas geograficas o en formato UTM, Se especifica por dos numeros que representan la posicion vertical y horizontal en la tierra.",
      "type": "object",
      "title": "GeoLocation / GeoLocalizacion",
      "minItems": 0,
      "maxItems": 1,
      "properties": {
        "GeographicCoordinates": {
          "$ref": "#/definitions/GeographicCoordinatesResponse"
        }
      },
      "additionalProperties": false,
      "required": [
        "GeographicCoordinates"
      ]
    },
    "GeographicCoordinatesResponse": {
      "description": "Location on the earth specified by two numbers representing vertical and horizontal position. `Spanish translation:` Usando paralelos y meridianos, pemiten localizar a un ATM con suma exactitud.",
      "type": "object",
      "title": "GeographicCoordinates / CoordenadasGeograficas",
      "minItems": 1,
      "maxItems": 1,
      "properties": {
        "Latitude": {
          "description": "Latitude measured in decimal degrees. `Spanish translation:` Ubicacion geografica por latitud.",
          "title": "Latitude / Latitud",
          "type": "string",
          "pattern": "^-?\\d{1,3}\\.\\d{1,8}$",
          "example": "19.333474",
          "minItems": 1,
          "maxItems": 1
        },
        "Longitude": {
          "description": "Angular measurement of the distance of a location on the earth east or west of the Greenwich observatory. `Spanish translation:` Ubicacion geografica por longitud.",
          "title": "Longitude / Longitud",
          "type": "string",
          "pattern": "^-?\\d{1,3}\\.\\d{1,8}$",
          "example": "-99.215063",
          "minItems": 1,
          "maxItems": 1
        }
      },
      "additionalProperties": false,
      "required": [
        "Latitude",
        "Longitude"
      ]
    },
    "FeeSurchargesResponse": {
      "description": "Cargos y comisiones",
      "title": "FeeSurcharges / CargosComisiones",
      "type": "object",
      "minItems": 0,
      "maxItems": 1,
      "properties": {
        "CashWithdrawalNational": {
          "title": "CashWithdrawalNational / ComisionRetiroEfecivoNacional",
          "description": "Monto de comisiones de retiro de efectivo Otros Bancos (Surcharge) Nacional.",
          "type": "string",
          "pattern": "^-?\\d{1,10}\\.?\\d{0,2}\\s?[A-Z]{3}$",
          "example": "20.00 MXN",
          "minItems": 0,
          "maxItems": 1
        },
        "CashWithdrawalInternational": {
          "title": "CashWithdrawalInternational / ComisionRetiroEfecivoInternacional",
          "description": "Monto de comisiones de retiro de efectivo Otros Bancos (Surcharge) Internacional.",
          "type": "string",
          "pattern": "^-?\\d{1,10}\\.?\\d{0,2}\\s\\w[A-Z]{3}$",
          "example": "20.00 MXN",
          "minItems": 0,
          "maxItems": 1
        },
        "BalanceInquiry": {
          "title": "BalanceInquiry / ComisionConsultaSaldo",
          "description": "Monto de comisiones consulta de saldo Otros Bancos (Surcharge).",
          "type": "string",
          "pattern": "^-?\\d{1,10}\\.?\\d{0,2}\\s\\w[A-Z]{3}$",
          "example": "20.00MXN",
          "minItems": 0,
          "maxItems": 1
        }
      }
    },
    "MetaDataResponse": {
      "title": "Meta data",
      "properties": {
        "LastUpdated": {
          "type": "string",
          "format": "date-time"
        },
        "TotalResults": {
          "type": "integer"
        },
        "Agreement": {
          "type": "string",
          "enum": [
            "To be confirmed"
          ]
        },
        "License": {
          "type": "string",
          "format": "uri",
          "description": "Open Banking License",
          "enum": [
            "To be confirmed"
          ]
        },
        "TermsOfUse": {
          "type": "string",
          "format": "uri",
          "description": "Open Banking Terms of Use",
          "enum": [
            "To be confirmed"
          ]
        }
      }
    },
    "Links": {
        "type": "object",
        "description": "Links relevant to the payload",
        "properties": {
           "Self": {
              "description": "link to get the actual page with the records requested",
              "type": "string",
              "format": "uri",
              "example": "/api/v1/atms?page=1"
           },
           "First": {
              "description": "link to get the first page with the records requested",
              "type": "string",
              "format": "uri",
              "example": "/api/v1/atms?page=0"
           },
           "Prev": {
              "description": "link to get the previous page with the records requested",
              "type": "string",
              "format": "uri",
              "example": "/api/v1/atms?page=0"
           },
           "Next": {
              "description": "link to get the next page with the records to be requested",
              "type": "string",
              "format": "uri",
              "example": "/api/v1/atms?page=2"
           },
           "Last": {
              "description": "link to get the last page with the records requested",
              "type": "string",
              "format": "uri",
              "example": "/api/v1/atms?page=4"
           }
        },
        "additionalProperties": false,
        "required": [
           "Self"
        ]
    },
    "ErrorResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      },
      "required": [
        "description",
        "status",
        "title"
      ]
    }
  },
  "x-ibm-configuration": {
    "enforced": true,
    "testable": true,
    "phase": "realized",
    "cors": {
      "enabled": true
    }
  }
}