openapi: 3.0.0
info:
  version: 1.0.0
  title: API Atm
  description: Encuentra la información relacionada con los cajeros automáticos disponibles, así como la ubicación y detalles de los mismos.
tags:
  - name: ATM
    description: Endpoint to request ATM data

# Step 2 - apply security globally...
security:
  - oAuthSample:
    - read
paths:
  /atms:
    get:
      tags:
        - ATM
      summary: "Obtiene un listado de todos los objetos de tipo 'ATM'"
      parameters:
        - name: If-Modified-Since
          description: "Usado para solicitudes condicionales, recupera datos solo si se modifica desde una fecha determinada."
          in: header
          required: false
          schema:
            type: string
        - name: If-None-Match
          description: "Usado para solicitudes condicionales, recupera datos solo si dada valor de la etiqueta electronica (Etag) no coincide. "
          in: header
          required: false
          schema:
            type: string
      responses:
        "200":
          description: 'Respuesta exitosa con una lista de datos de "ATM"'
          headers:
            Strict-Transport-Security:
              description: 'Encabezado estricto de seguridad de transporte HTTPS'
              schema:
                type: string
                default: max-age=31536000
            Etag:
              description: "Identificación única usada para identificar si este recurso ha cambiado"
              schema:
                type: string
            Cache-Control:
              description: "Describe cuanto tiempo se puede almacenar en caché esta respuesta."
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: "Previene que esta solicitud sea cargada en cualquier iframe."
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: "Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME."
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    title: Metadatos
                    type: object
                    properties:
                      LastUpdated:
                        type: string
                        format: date-time
                      TotalResults:
                        type: integer
                      Agreement:
                        type: string
                        enum:
                          - Para ser confirmado
                      License:
                        description: "Licencia Open Banking"
                        type: string
                        format: uri
                        enum:
                          - Para ser confirmado
                      TermsOfUse:
                        description: "Términos de uso Open Banking"
                        type: string
                        format: uri
                        enum:
                          - Para ser confirmado
                    required:
                      - LastUpdated
                      - TotalResults
                      - Agreement
                      - License
                      - TermsOfUse
                    additionalProperties: false
                  data:
                    type: array
                    items:
                      properties:
                        Brand:
                          description: "Marca del adquirente de las transacciones capturadas en el ATM"
                          type: array
                          title: Marca
                          items:
                            minItems: 1
                            description: "Marca del adquirente de las transacciones capturadas en el ATM"
                            type: object
                            properties:
                              BrandName:
                                description: "Nombre de la marca usada por una organizacion para comercializar sus productos o servicios a un consumidor."
                                title: NombreMarca
                                type: string
                                minLength: 1
                                maxLength: 140
                                minItems: 1
                                maxItems: 1
                                example: MÃ‰XICO
                              ATM:
                                type: array
                                items:
                                  $ref: "#/components/schemas/ATM"
                            required:
                              - BrandName
                              - ATM
                          additionalProperties: false
                          minItems: 1
                      required:
                        - Brand
                      description: 'Ambiente del ATM.'
                      type: object
                required:
                  - meta
                  - data
                additionalProperties: false
        "400":
          description: 'Has enviado una petición que no pudo ser entendida.'
          headers:
            Strict-Transport-Security:
              description: 'Encabezado estricto de seguridad de transporte HTTPS'
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: 'Describe cuanto tiempo se puede almacenar en caché esta respuesta'
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: 'Previene que esta solicitud sea cargada en cualquier iframe.'
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: 'Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.'
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 400 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "400"
                  title:
                    type: string
                    enum:
                      - Solicitud Incorrecta
                      - Contenido Invalido
                      - Catálogo no encontrado
                      - No encontrado
                  description:
                    type: string
                    enum:
                      - Has enviado una solicitud que no se ha podido entender.
                      - Valor de encabezado no válido para 'If-Modified-Since' 
                      - El servicio solo puede aceptar peticiones que acepten application/json
                      - El catálogo no existe
                      - El recurso no existe. Has enviado una solicitud que no se ha podido entender.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "401":
          description: El cliente falló al lanzar una petición y un timeout ha ocurrido.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 401 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "401"
                  title:
                    type: string
                    enum:
                      - Token de acceso no válido
                  description:
                    type: string
                    enum:
                      - El servicio no pudo autenticar la petición.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "405":
          description: El servicio solo acepta peticiones de tipo GET.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 405 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - '405'
                  title:
                    type: string
                    enum:
                      - Método no permitido
                  description:
                    type: string
                    enum:
                      - El servicio solo acepta peticiones de tipo GET.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "406":
          description: El servicio solo acepta peticiones de tipo GET.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 406 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - '406'
                  title:
                    type: string
                    enum:
                      - Encabezado 'Accept' no válido
                  description:
                    type: string
                    enum:
                      - El servicio solo acepta peticiones de tipo application/json.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "408":
          description: El cliente falló al lanzar una petición y un timeout ha ocurrido.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 408 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "408"
                  title:
                    type: string
                    enum:
                      - Timeout
                  description:
                    type: string
                    enum:
                      - El cliente falló al lanzar una petición y un timeout ha ocurrido
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "429":
          description: Has lanzado demasiadas peticiones a este recurso en un período de tiempo permitido.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 429 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "429"
                  title:
                    type: string
                    enum:
                      - Demasiadas peticiones
                  description:
                    type: string
                    enum:
                      - Has solicitado este recurso demasiadas veces.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "431":
          description: Los campos de los encabezados de la petición son demasiado largos.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 431 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "431"
                  title:
                    type: string
                    enum:
                      - Campos de encabezados demasiado largos.
                  description:
                    type: string
                    enum:
                      - Los campos del enzabezado es demasiado largo.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        "503":
          description: El servicio esta temporalmente no disponible.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
                default: max-age=31536000
            Cache-Control:
              description: Describe cuanto tiempo se puede almacenar en caché esta respuesta
              schema:
                type: string
                default: max-age=28800
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: 503 Entidad de Error
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - "503"
                  title:
                    type: string
                    enum:
                      - Servicio temporalmente no disponible.
                  description:
                    type: string
                    enum:
                      - El servicio esta temporalmente no dispnible.
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
        default:
          description: Respuesta de error estándar.
          headers:
            Strict-Transport-Security:
              description: Encabezado estricto de seguridad de transporte HTTPS
              schema:
                type: string
            X-Frame-Options:
              description: Previene que esta solicitud sea cargada en cualquier iframe
              schema:
                type: string
                default: DENY
            X-Content-Type-Options:
              description: Garantiza que cada página tenga un tipo de contenido y evita que los naveadores rastreen el tipo MIME.
              schema:
                type: string
                default: nosniff
          content:
            application/json:
              schema:
                title: Entidad de Error
                type: object
                properties:
                  status:
                    description: Esto corresponde al código de estado HTTP
                    type: string
                  title:
                    description: Un breve título del tipo de error
                    type: string
                  description:
                    description: Más detalles que describen el error.
                    type: string
                required:
                  - status
                  - title
                  - description
                additionalProperties: false
    head:
      tags:
        - ATM
      summary: "Obtiene la información de encabezado sobre el conjunto actual de datos 'ATM'"
      parameters:
        - name: If-Modified-Since
          in: header
          description: Usado para peticiones condicionales, para recuperar datos solo si se modifican desde una fecha determinada.
          required: false
          schema:
            type: string
        - name: If-None-Match
          in: header
          description: Usado para peticiones condicionales, para recuperar datos solo si el dato del valor Etag (etiqueta electronica) no coincide
          required: false
          schema:
            type: string
      responses:
        default:
          description: Sin respuesta
          content:
            application/json:
              schema:
                type: object
                title: Sin respuesta
  /atms/api-version:
    get:
      tags:
        - Private
      description: Obtener la versión de la API.
      responses:
        "200":
          description: Responde con la versión de la API 'ATM'.
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: string
servers:
  - url: https://api-sandbox.banorte.com/open-banking/open-data/v2
components:
  securitySchemes:
    oAuthSample:    # <---- arbitrary name
      type: oauth2
      description: Esta API usa OAuth 2 con las client_credentials implincitamente otorgadas [More info](https://api.example.com/docs/auth)
      flows:
        clientCredentials:   # <---- OAuth flow(authorizationCode, implicit, password or clientCredentials)
          tokenUrl: https://api-sandbox.banorte.com/open-banking/oauth2/v1/token
          scopes:
             "atms:read": Permisos para leer datos ATM.
  requestBodies:
    ATM:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ATM"
      description: El archivo a subir.
      required: true
  schemas:
    ATM:
      description: Información del ATM.
      type: object
      title: ATM
      properties:
        Identification:
          description: ID del dispositivo terminal del ATM para adquiriente y emisor.
          title: IDCajero
          type: string
          minLength: 1
          maxLength: 35
          minItems: 1
          maxItems: 1
          example: "999994090"
        SupportedLanguages:
          description: Identificación del nombre de idioma según la norma ISO 639-1. El tipo es validado por la lista de valores codificados con dos caracteres alfabéticos definidos en la norma.
          title: LenguajesDisponibles
          type: array
          minItems: 0
          items:
            pattern: "[a-z]{2}"
            type: string
            example:
              - es
              - en
              - fr
              - pt
              - io
        ATMServices:
          description: >-
            Describe el tipo de transacción disponible para un cliente en un ATM.


            | CAMPOS | NOMBRE CÓDIGO ESPAÑOL | DEFINICIÓN EN ESPAÑOL |

            |-----|-----|-------|

            | ATBA   | ConsultaDeSaldo   | Consulta de  Saldo     |

            | ATBP   | PagoServiciosEfectivoOnUs   | Pago de Servicios en Efectivo Clientes Propios     |

            | ATBB   | PagoServiciosEfectivoOffUs   | Pago de Servicios en Efectivo Otros Clientes     |

            | ATBM   | PagoServiciosCargoACuentaOnUs   | Pago de Servicios con Cargo a Cuenta Clientes Propios     |

            | ATBO   | PagoServiciosCargoACuentaOffUs   | Pago de Servicos con Cargo a Cuenta Otros Clientes     |

            | ATCA   | DepositosEfectivo   | Depositos de Efectivo     |

            | ATCD   | Donativos   | Donativos     |

            | ATCQ   | DepositosCheques   | Depositos de Cheques     |

            | ATCT   | RetiroConTarjeta   | Retiro con tarjeta     |

            | ATST   | RetiroSinTarjeta   | Retiro sin tarjeta     |

            | ATFC   | RetiroRapido   | Montos predeterminados para retiro de efectivo rapido como primera opcion despues de autenticar al cliente     |

            | ATMB   | RegistroBancaMovil   | Registro de servicios de Banca Movil     |

            | ATMP   | RegistroWallets   | Registro de/asociacion de wallets     |

            | ATMM   | CompraTiempoAireClienteMismoBanco   | Compra tiempo aire cliente mismo banco     |

            | ATMO   | CompraTiempoAireClienteOtrosBancos   | Compra tiempo aire cliente otros bancos     |

            | ATOS   | EnvioEstadoCuenta   | Solicitud de envio de estado de cuenta     |

            | ATOT   | Otro   | Otro     |

            | ATPA   | ActivacionTarjeta   | Activacion de tarjeta     |

            | ATPC   | CambiodeNIP   | Cambio de NIP     |

            | ATPU   | DesbloqueoNIP   | Desbloqueo de NIP     |

            | ATIC   | ConsultaCLABE   | Consulta de cuenta CLABE     |

            | ATCM   | ConsultaSaldoCreditosOnUs   | Consulta de Saldos de Creditos que el cliente tenga con el banco: Ej. CrÃ©dito de nÃ³mina - Mismo Banco     |

            | ATCO   | ConsultaSaldoCreditosOffUs   | Consulta de Saldos de Creditos que el cliente tenga con otro banco: Ej. CrÃ©dito de nÃ³mina - Otros Bancos     |

            | ATTM   | TransferenciaTercerosOnUs   | Transferencias entre cuentas mismo banco      |

            | ATTO   | TransferenciaTercerosOffUs   | Transferencias entre cuentas de otros bancos     |

            | ATTC   | TransferenciaCuentaPropia   | Transferencias entre cuentas propias del cliente     |

            | ATPM   | PagoTarjetaOnUs   | Pago de tarjeta mismo banco     |

            | ATPO   | PagoTarjetaOffUs   | Pago de tarjeta otros bancos     |

            | ATTS   | ConsultaMovimientos   | Consulta de Movimientos     |
          title: 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: >-
            Indica el tipo de Accesibilidad.
            Lista de Opciones.


            | CAMPOS | NOMBRE CÓDIGO ESPAÑOL | DEFINICIÓN EN ESPAÑOL |

            |-----|-----|-------|

            | ATAC   | EntradaAudifonos   | Entrada para audifonos     |

            |  ATAD   | PuertasAutomaticas   | Puertas automaticas     |

            | ATER   | RampaAccesoExterna   | Rampa de acceso externa     |

            | ATIR   | RampaAccesoInterna   | Rampa de acceso interna     |

            | ATLA   | AccesoSinEscalerasORampas   | Acceso que no requiere subir/bajar escaleras o rampas     |

            | ATLL   | AlturaSillaRuedas   | Altura adecuada para usuarios con silla de ruedas     |

            | ATOT   | OtrasUbicaciones   | Otros ambientes, como por ejemplo aeropuerto, centros comerciales     |

            | ATPT   | PantallaTouch   | Equipo de autoservicio con pantalla touch     |

            |  ATWA   | AccesoSillaRuedas   | Acceso para silla de ruedas     |

            |
          title: Accesibilidad
          type: array
          minItems: 0
          maxItems: 1
          items:
            type: string
            example:
              - ATAC
              - ATAD
              - ATER
              - ATIR
              - ATLA
              - ATLL
              - ATOT
              - ATPT
              - ATWA
            minItems: 0
        Access24HoursIndicator:
          description: Indicador de acceso al ATM las 24 Indica que el ATM esta dispnible para uso de los clientes las 24 horas del día.
          title: IndicadorAcceso24Horas
          type: boolean
          example: true
          minItems: 0
          maxItems: 1
        SupportedCurrencies:
          description: Divisas disponibles. Todas las monedas definidas por ISO 4217 admitidas por el ATM.
          title: DivisasDisponibles
          type: array
          minItems: 1
          items:
            type: string
            pattern: "[A-Z]{3}"
            minItems: 1
            example:
              - MXN
              - USD
              - GBP
        MinimumPossibleAmount:
          description: Monto minimo permitido para la transaccion en el servicio.
          title: MontoMinimoPermitido
          type: string
          pattern: ^-?\d{1,10}\.?\d{0,2}$
          minItems: 0
          maxItems: 1
          example: "5"
        Note:
          description: Descripcion adicional sobre el ATM.
          title: DescripcionAdicional
          type: array
          minItems: 0
          items:
            description: maxLength 2000 text
            type: string
            minLength: 1
            maxLength: 2000
        OtherAccessibility:
          description: Ingresa un nuevo código, nombre y descripción para cualquier otra opción de accesibilidad al ATM.
          type: array
          title: OtraAccesibilidad
          minItems: 0
          items:
            description: Ingresa un nuevo código, nombre y descripción para cualquier otra opción de accesibilidad al ATM.
            type: object
            properties:
              Code:
                description: La clave (Mnemotécnica) de cuatro letras dentro de un archivo XML para identificar a un código. 
                title: Código
                type: string
                pattern: "[A-Z]{4}"
                minLength: 0
                maxLength: 4
                minItems: 0
                maxItems: 1
              Description:
                description: Descripcion del codigo.
                title: Descripcion
                type: string
                minLength: 1
                maxLength: 350
                minItems: 1
                maxItems: 1
              Name:
                description: El nombre asociado con el codigo. 
                title: Nombre
                type: string
                minLength: 1
                maxLength: 70
                minItems: 1
                maxItems: 1
            required:
              - Name
              - Description
          additionalProperties: false
        OtherATMServices:
          description: Otros servicios que el ATM pueda otorgar. Ingresa un nuevo código, nombre y descripción para cualquier otro servicio del ATM.
          type: array
          title: OtrosServiciosATM
          items:
            description: Otros servicios que el ATM pueda otorgar.
            minItems: 0
            type: object
            properties:
              Code:
                description: La clave (Mnemotécnica) de cuatro letras dentro de un archivo XML para identificar a un código
                title: Codigo
                type: string
                pattern: "[A-Z]{4}"
                minLength: 0
                maxLength: 4
                minItems: 0
                maxItems: 1
              Description:
                description: Descripcion del propósito del código.
                title: Descripción
                type: string
                minLength: 1
                maxLength: 350
                minItems: 1
                maxItems: 1
              Name:
                description: El nombre asociado con el codigo.
                title: Nombre
                type: string
                minLength: 1
                maxLength: 70
                minItems: 1
                maxItems: 1
            required:
              - Name
              - Description
          additionalProperties: false
        Branch:
          description: Informacion que ubica e identifica una sucursal o institución financiera.
          type: object
          title: Sucursal
          minItems: 0
          maxItems: 1
          properties:
            Identification:
              description: ID de la sucursal.
              title: Identificacion
              type: string
              minLength: 1
              maxLength: 35
              example: N/A
              minItems: 0
              maxItems: 1
          additionalProperties: false
        Location:
          description: La ubicacion del ATM.
          type: object
          title: Ubicacion
          minItems: 1
          maxItems: 1
          properties:
            LocationCategory:
              description: Indica la categoria (entorno) del ATM.
              title: CategoriaUbicacion
              type: array
              items:
                description: >-
                  Indica el entorno del ATM.


                  | CAMPOS | NOMBRE CÓDIGO ESPAÑOL | DEFINICIÓN EN ESPAÑOL |

                  |-----|-----|-------|

                  | ATBE   | AccesoIndependienteASucursal   | Con acceso independiente a la sucursal     |

                  | ATBI   | InteriorSucursal   | Ubicado al interior de la sucursal, disponible durante horarios de servicio     |

                  | ATBL   | LobbySucursal   | Ubicado en el lobby accesible por clientes del banco     |

                  | ATOT   | OtrasUbicaciones   | Otros ambientes, como por ejemplo aeropuerto, centros comerciales     |

                  | ATRO   | UbicadoComercio   | Cajero ubicado en un comercio     |

                  | ATRU   | UnidadMovil   | Cajero es parte de una unidad bancaria movil     |
                type: string
                example:
                  - ATBE
                  - ATBI
                  - ATBL
                  - ATOT
                  - ATRO
                  - ATRU
                minItems: 0
            OtherLocationCategory:
              description: Ingresa un nuevo código, nombre y descripción para cualquier otra categoría.
              type: array
              title: OtraCategoriaUbicacion
              minItems: 0
              items:
                description: Ingresa un nuevo código, nombre y descripción para cualquier otra caetgoría de ubicación.
                type: object
                properties:
                  Code:
                    description: La clave (Mnemotécnica) de cuatro letras dentro de un archivo XML para identificar a un código.
                    title: Codigo
                    type: string
                    pattern: ^\w{4}$
                    maxLength: 4
                    minItems: 0
                    maxItems: 1
                  Description:
                    description: Descripcion del propósito del codigo.
                    title: Descripcion
                    type: string
                    minLength: 1
                    maxLength: 350
                    minItems: 1
                    maxItems: 1
                  Name:
                    description: El nombre asociado con el codigo.
                    title: 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
            Site:
              description: Usado internamente por una Institución financiera para identificar la ubicacion de un ATM.
              type: object
              title: Sitio
              minItems: 0
              maxItems: 1
              properties:
                Identification:
                  description: Identificacion de la ubicación de ATM otorgada por la entidad financiera.
                  title: Identificacion
                  type: string
                  minLength: 1
                  maxLength: 35
                  minItems: 0
                  maxItems: 1
                Name:
                  description: Nombre del sitio del ATM usado por la entidad financiera.
                  title: Nombre
                  type: string
                  minLength: 1
                  maxLength: 140
                  minItems: 0
                  maxItems: 1
              additionalProperties: false
            PostalAddress:
              description: Direccion Postal.
              type: object
              title: DireccionPostal
              minItems: 1
              maxItems: 1
              properties:
                AddressLine:
                  description: Lugar en que se encuentra ubicado el ATM, según los servicios postales o en texto de formato libre.
                    automÃ¡tico.
                  title: DireccionCompleta
                  type: array
                  items:
                    description: maxLength 70 text
                    type: string
                    minLength: 1
                    maxLength: 70
                  minItems: 0
                  maxItems: 7
                  example: SAN JERONIMO LIDICE
                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 símbolos 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 símbolos
                    que identifican una o más ubicaciones pertenecientes a un
                    número exterior (Ejemplos: 2, Local C, L-5)."
                  title: 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,
                    Río Blanco, Tlalpan, Revolución)."
                  title: Vialidad
                  type: string
                  minLength: 1
                  maxLength: 70
                  example: PINOS
                  minItems: 0
                  maxItems: 1
                TownName:
                  description: 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: Localidad/Municipio
                  type: string
                  minLength: 1
                  maxLength: 35
                  example: MAGDALENA CONTRERAS
                  minItems: 0
                  maxItems: 1
                CountrySubDivision:
                  description: Nombre propio que identifica a las Entidades Federativas (Morelos, Yucatán,
                    Sonora, Tamaulipas, Baja California Norte, Ciudad de México).
                  title: Estado
                  type: array
                  items:
                    description: maxLength 35 text
                    type: string
                    minLength: 1
                    maxLength: 35
                    example: CD MEXICO
                  minItems: 0
                  maxItems: 1
                Country:
                  description: "Código ISO de 2 letras designado para identificar a México y que es reconocido internacionalmente: MX."
                  title: Pais
                  type: string
                  pattern: "[A-Z]{2}"
                  example: MX
                  minItems: 0
                  maxItems: 1
                PostCode:
                  description: Número que identifica al código postal, constituido por cinco dígitos, obtenido de la información oficial del Servicio Postal Mexicano.
                  title: CP
                  type: string
                  minLength: 1
                  maxLength: 16
                  example: "10100"
                  minItems: 0
                  maxItems: 1
                GeoLocation:
                  description: Ubicación geográfica del ATM especificada por coordenadas geográficas o en formato UTM, se especifica por dos números que representan la posición vertical y horizontal en la tierra.
                  type: object
                  title: GeoLocalizacion
                  minItems: 0
                  maxItems: 1
                  properties:
                    GeographicCoordinates:
                      description: Ubicación de la tierra especificada por dos posiciones, una vertical y otra horizontal, pemiten localizar a un ATM con suma exactitud.
                      type: object
                      title: CoordenadasGeograficas
                      minItems: 1
                      maxItems: 1
                      properties:
                        Latitude:
                          description: Ubicacion geografica por latitud.
                          title: Latitud
                          type: string
                          pattern: ^-?\d{1,3}\.\d{1,8}$
                          example: "19.333474"
                          minItems: 1
                          maxItems: 1
                        Longitude:
                          description: Ubicacion geografica por longitud. Medición angular de la distancia de un lugar en la Tierra al este u oeste del observatorio de Greenwich
                          title: Longitud
                          type: string
                          pattern: ^-?\d{1,3}\.\d{1,8}$
                          example: "-99.215063"
                          minItems: 1
                          maxItems: 1
                      additionalProperties: false
                      required:
                        - Latitude
                        - Longitude
                  additionalProperties: false
                  required:
                    - GeographicCoordinates
              additionalProperties: false
          additionalProperties: false
          required:
            - PostalAddress
        FeeSurcharges:
          description: Cargos y comisiones
          title: CargosComisiones
          type: object
          minItems: 0
          maxItems: 1
          properties:
            CashWithdrawalNational:
              title: 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: 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: 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
      required:
        - ATMServices
        - Identification
        - SupportedCurrencies
        - Location