---
title: Checkout
slug: checkout
description: Learn how to create a seamless checkout with Mobbex API using code examples in different programming languages. This document covers setting up headers and parameters for making a POST request, configuring payment sources and installments, and handling im
icon: {"faIcon":"fa-solid fa-bag-shopping"}
docTags: 
createdAt: 2021-01-25T14:13:01.000Z
---

![](https://api.archbee.com/api/optimize/wYlzYU9oe8HZjh9BkqeFY/EMWB48qzwpm3K9kjayhMp_flujo-checkout.png "Flujo de creación de un Checkout simple")

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://api.mobbex.com/p/checkout",
  "name": "Crear Checkout",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "x-api-key",
        "type": "string",
        "description": "Clave API de su aplicación."
      },
      {
        "kind": "required",
        "name": "x-access-token",
        "type": "string",
        "description": "Token de acceso a su comercio."
      },
      {
        "kind": "required",
        "name": "content-type",
        "type": "string",
        "description": "application/json"
      }
    ],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "total",
        "type": "Number",
        "description": "Monto de la operación. Formato XXX.xx donde el PUNTO es el separador decimal."
      },
      {
        "kind": "required",
        "name": "description",
        "type": "string",
        "description": "Descripción de la operación que será mostrada en el checkout al ingresar."
      },
      {
        "kind": "required",
        "name": "currency",
        "type": "string",
        "description": "Moneda de la operación. Valor admitido \"ARS\""
      },
      {
        "kind": "required",
        "name": "reference",
        "type": "string",
        "description": "Factura, Recibo o referencia del pago a Realizar. Puede ser un identificador de un sistema externo para seguimiento. Este Identificador pertenece a su sistema pero debe ser único para cada operación. Mobbex no permite 2 operaciones en estado Pago con el mismo reference."
      },
      {
        "kind": "optional",
        "name": "test",
        "type": "Boolean",
        "description": "Permite colocar el checkout en modo test y realizar operaciones con las tarjetas de prueba. "
      },
      {
        "kind": "optional",
        "name": "return_url",
        "type": "string",
        "description": "URL a la cual será enviado el usuario al finalizar el pago."
      },
      {
        "kind": "optional",
        "name": "webhook",
        "type": "string",
        "description": "URL a la cual será informado el pago mediante WebHooks (POST)"
      },
      {
        "kind": "optional",
        "name": "items",
        "type": "Array",
        "description": "Listado de elementos pertenecientes al cobro con checkout y que serán mostrados al ingresar al mismo como parte de la descripción del pago. Para generar un checkout asociado a una suscripción se debe configurar en este array. Ver el ejemplo sobre este nodo incluído debajo de esta documentación."
      },
      {
        "kind": "optional",
        "name": "options",
        "type": "Object",
        "description": "Permite definir opciones para el checkout creado.",
        "children": [
          {
            "kind": "optional",
            "name": "theme",
            "type": "Boolean",
            "description": "Le permite personalizas su experiencia de cobro en el checkout. Para más información visitar la documentación \"Personalización de la UI de Pago\""
          },
          {
            "kind": "optional",
            "name": "embed",
            "type": "Boolean",
            "description": "Permite habilitar la utilización del checkout en modo embebido. Visitar la documentación \"Integración Embebida (Avanzada)\" para más detalles."
          },
          {
            "kind": "optional",
            "name": "domain",
            "type": "string",
            "description": "Permite indicar el dominio donde se va ejecutar el checkout embebido. Visitar la documentación \"Integración Embebida (Avanzada)\" para más detalles."
          },
          {
            "name": "emitNotifications",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar todas las notificationes al cliente enviadas por el servicio. No desactiva los Webhooks"
          },
          {
            "name": "emitCustomerSuccessNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos exitosos de pago via email, sms o whatstapp."
          },
          {
            "name": "emitCustomerFailureNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos de fallo del pago via email, sms o whatstapp."
          },
          {
            "name": "emitCustomerWaitingNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos de pago en Espera como Códigos de Barra o QR via email, sms o whatstapp."
          },
          {
            "name": "closeOrReturnOnResult",
            "kind": "optional",
            "type": "Boolean",
            "description": "Permite anular el comportamiento de continuar con validaciones u otros pasos. Al generar un resultado de la operación si es TRUE retornará al sitio o cerrará el modal"
          },
          {
            "name": "closeOrReturnTimeout",
            "kind": "optional",
            "type": "Integer",
            "description": "Tiempo en Segundos en que se mostrará el resultado de la Operación antes de retornar o cerrar el modal"
          },
          {
            "name": "showNoInterestLabels",
            "kind": "optional",
            "type": "Boolean",
            "description": "Permite ocultar las etiquetas \"Sin Interés\" de la UI del Checkout. Por defecto: true. "
          },
          {
            "name": "showWallet",
            "kind": "optional",
            "type": "boolean",
            "description": "Permite desactivar la wallet en el checkout. Por defecto: true. "
          },
          {
            "name": "embedVersion",
            "kind": "optional",
            "type": "string",
            "description": "Hace referencia a la versión del embebido. Por defecto siempre tomará la última versión"
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "name": "theme",
            "type": "Boolean",
            "description": "Le permite personalizas su experiencia de cobro en el checkout. Para más información visitar la documentación \"Personalización de la UI de Pago\""
          },
          {
            "kind": "optional",
            "name": "embed",
            "type": "Boolean",
            "description": "Permite habilitar la utilización del checkout en modo embebido. Visitar la documentación \"Integración Embebida (Avanzada)\" para más detalles."
          },
          {
            "kind": "optional",
            "name": "domain",
            "type": "string",
            "description": "Permite indicar el dominio donde se va ejecutar el checkout embebido. Visitar la documentación \"Integración Embebida (Avanzada)\" para más detalles."
          },
          {
            "name": "emitNotifications",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar todas las notificationes al cliente enviadas por el servicio. No desactiva los Webhooks"
          },
          {
            "name": "emitCustomerSuccessNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos exitosos de pago via email, sms o whatstapp."
          },
          {
            "name": "emitCustomerFailureNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos de fallo del pago via email, sms o whatstapp."
          },
          {
            "name": "emitCustomerWaitingNotification",
            "kind": "optional",
            "type": "Boolean",
            "description": "Por defecto es true. Permite desactivar los avisos de pago en Espera como Códigos de Barra o QR via email, sms o whatstapp."
          },
          {
            "name": "closeOrReturnOnResult",
            "kind": "optional",
            "type": "Boolean",
            "description": "Permite anular el comportamiento de continuar con validaciones u otros pasos. Al generar un resultado de la operación si es TRUE retornará al sitio o cerrará el modal"
          },
          {
            "name": "closeOrReturnTimeout",
            "kind": "optional",
            "type": "Integer",
            "description": "Tiempo en Segundos en que se mostrará el resultado de la Operación antes de retornar o cerrar el modal"
          },
          {
            "name": "showNoInterestLabels",
            "kind": "optional",
            "type": "Boolean",
            "description": "Permite ocultar las etiquetas \"Sin Interés\" de la UI del Checkout. Por defecto: true. "
          },
          {
            "name": "showWallet",
            "kind": "optional",
            "type": "boolean",
            "description": "Permite desactivar la wallet en el checkout. Por defecto: true. "
          },
          {
            "name": "embedVersion",
            "kind": "optional",
            "type": "string",
            "description": "Hace referencia a la versión del embebido. Por defecto siempre tomará la última versión"
          }
        ]
      },
      {
        "kind": "optional",
        "name": "sources",
        "type": "Array",
        "description": "Permite la limitación de los medios de pago aceptados. De esta forma, en el checkout únicamente podrán utilizarse los medios aquí definidos."
      },
      {
        "kind": "optional",
        "name": "installments",
        "type": "Array",
        "description": "Permite la limitación de los Planes Activos al pagar la orden. Para realizar dicha limitación se debe enviar un array de referencias de planes. Los ejemplos puedes encontrarlos más abajo en la documentación. "
      },
      {
        "kind": "required",
        "name": "customer",
        "type": "Object",
        "description": "Objeto con los datos del cliente",
        "children": [
          {
            "kind": "required",
            "name": "email",
            "type": "string",
            "description": "Email del cliente. Este parámetro es necesario"
          },
          {
            "kind": "required",
            "name": "name",
            "type": "string",
            "description": "Nombre del cliente. Este parámetro es necesario."
          },
          {
            "kind": "required",
            "name": "identification",
            "type": "string",
            "description": "DNI del cliente. Este parámetro es necesario."
          },
          {
            "kind": "optional",
            "name": "phone",
            "type": "string",
            "description": "Número de teléfono del cliente"
          },
          {
            "kind": "optional",
            "name": "uid",
            "type": "string",
            "description": "Identificador del cliente en la Tienda. Debe ser único e irrepetible."
          },
          {
            "name": "createdAt",
            "kind": "optional",
            "type": "integer",
            "description": "Obligatorio cuando se incluye 'uid'. Debe estar en formato timestamp en milisegundos. Indica la fecha de creación del usuario/cliente en la Tienda."
          },
          {
            "name": "{metadata}",
            "kind": "optional",
            "type": "object",
            "description": "Representa un campo con metadata asociada al cliente. Dentro del objecto \"customer\" se pueden incluir datos adicionales que serán retornados luego en el webhook de la operación.",
            "children": []
          },
          {
            "name": "birthdate",
            "kind": "optional",
            "type": "object",
            "description": "Fecha de Nacimiento del Cliente",
            "children": [
              {
                "name": "day",
                "kind": "required",
                "type": "integer",
                "description": "Día de Nacimiento"
              },
              {
                "name": "month",
                "kind": "required",
                "type": "integer",
                "description": "Mes de Nacimiento"
              },
              {
                "name": "year",
                "kind": "required",
                "type": "integer",
                "description": "Año de nacimiento en formato YYYY. Ej. 1994"
              }
            ]
          }
        ],
        "schema": [
          {
            "kind": "required",
            "name": "email",
            "type": "string",
            "description": "Email del cliente. Este parámetro es necesario"
          },
          {
            "kind": "required",
            "name": "name",
            "type": "string",
            "description": "Nombre del cliente. Este parámetro es necesario."
          },
          {
            "kind": "required",
            "name": "identification",
            "type": "string",
            "description": "DNI del cliente. Este parámetro es necesario."
          },
          {
            "kind": "optional",
            "name": "phone",
            "type": "string",
            "description": "Número de teléfono del cliente"
          },
          {
            "kind": "optional",
            "name": "uid",
            "type": "string",
            "description": "Identificador del cliente en la Tienda. Debe ser único e irrepetible."
          },
          {
            "name": "createdAt",
            "kind": "optional",
            "type": "integer",
            "description": "Obligatorio cuando se incluye 'uid'. Debe estar en formato timestamp en milisegundos. Indica la fecha de creación del usuario/cliente en la Tienda."
          },
          {
            "name": "{metadata}",
            "kind": "optional",
            "type": "object",
            "description": "Representa un campo con metadata asociada al cliente. Dentro del objecto \"customer\" se pueden incluir datos adicionales que serán retornados luego en el webhook de la operación.",
            "children": []
          },
          {
            "name": "birthdate",
            "kind": "optional",
            "type": "object",
            "description": "Fecha de Nacimiento del Cliente",
            "children": [
              {
                "name": "day",
                "kind": "required",
                "type": "integer",
                "description": "Día de Nacimiento"
              },
              {
                "name": "month",
                "kind": "required",
                "type": "integer",
                "description": "Mes de Nacimiento"
              },
              {
                "name": "year",
                "kind": "required",
                "type": "integer",
                "description": "Año de nacimiento en formato YYYY. Ej. 1994"
              }
            ]
          }
        ]
      },
      {
        "kind": "optional",
        "name": "split",
        "type": "Array",
        "description": "Permite dividir el cobro del checkout en varias entidades de Mobbex. Para más detalles ver la sección \"Marketplace, Split, Cobro con Comisión\"."
      },
      {
        "kind": "optional",
        "name": "timeout",
        "type": "Number",
        "description": "Tiempo de vida en minutos del checkout durante el cual podrá ser utilizado, luego de este tiempo el checkout no tendrá validez. Por defecto son 60 minutos."
      },
      {
        "kind": "optional",
        "name": "intent",
        "type": "string",
        "description": "Tipo de operatoria de la operación. Ver documentación sobre operatoria en 2 pasos."
      },
      {
        "kind": "optional",
        "name": "multicard",
        "type": "Boolean",
        "description": "Permite abonar la operación en el checkout con múltiples tarjetas. No es compatible con operaciones de tipo SPLIT."
      },
      {
        "kind": "optional",
        "name": "addresses",
        "type": "Array",
        "description": "Direcciones del cliente"
      },
      {
        "name": "addresses.[$]",
        "kind": "optional",
        "type": "object",
        "description": "Definición de los objetos de dirección incluidos dentro del array \"addresses\"",
        "": "addresses.[$]",
        "children": [
          {
            "name": "type",
            "kind": "required",
            "type": "string",
            "description": "Tipo de Dirección. Valores admitidos: \"billing\", \"shipping\""
          },
          {
            "name": "country",
            "kind": "optional",
            "type": "string",
            "description": "Páis. Valores admitidos: Ver Tabla de Países en Complementos."
          },
          {
            "name": "street",
            "kind": "optional",
            "type": "string",
            "description": "Dirección sin número"
          },
          {
            "name": "streetNumber",
            "kind": "optional",
            "type": "string",
            "description": "Número de Puerta de la dirección"
          },
          {
            "name": "streetNotes",
            "kind": "optional",
            "type": "string",
            "description": "Notas references a la dirección, segunda linea de dirección, Piso, Departamento, Oficina, etc."
          },
          {
            "name": "zipCode",
            "kind": "optional",
            "type": "string",
            "description": "Código Postal"
          },
          {
            "name": "city",
            "kind": "optional",
            "type": "string",
            "description": "Ciudad"
          },
          {
            "name": "state",
            "kind": "optional",
            "type": "string",
            "description": "Estado (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
          }
        ],
        "schema": [
          {
            "name": "type",
            "kind": "required",
            "type": "string",
            "description": "Tipo de Dirección. Valores admitidos: \"billing\", \"shipping\""
          },
          {
            "name": "country",
            "kind": "optional",
            "type": "string",
            "description": "Páis. Valores admitidos: Ver Tabla de Países en Complementos."
          },
          {
            "name": "street",
            "kind": "optional",
            "type": "string",
            "description": "Dirección sin número"
          },
          {
            "name": "streetNumber",
            "kind": "optional",
            "type": "string",
            "description": "Número de Puerta de la dirección"
          },
          {
            "name": "streetNotes",
            "kind": "optional",
            "type": "string",
            "description": "Notas references a la dirección, segunda linea de dirección, Piso, Departamento, Oficina, etc."
          },
          {
            "name": "zipCode",
            "kind": "optional",
            "type": "string",
            "description": "Código Postal"
          },
          {
            "name": "city",
            "kind": "optional",
            "type": "string",
            "description": "Ciudad"
          },
          {
            "name": "state",
            "kind": "optional",
            "type": "string",
            "description": "Estado (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
          }
        ]
      },
      {
        "kind": "optional",
        "name": "webhooksType",
        "type": "String",
        "children": [],
        "description": "Permite activar o desactivar ciertos tipos de Webhooks. Por defecto esta opción será \"all\". Opciones posibles: \"all\", \"none\", \"final\", \"intermediateAndFinal\". Ver explicación más abajo."
      },
      {
        "kind": "optional",
        "name": "multivendor",
        "type": "string",
        "children": [],
        "description": "En el caso de habilitar el modo Multivendedor, indica el tipo de operatoria \"active\" o \"unified\". Active permite el cliente pague los productos de cada vendedor con sus respectivas cuotas. Unified realiza la unificación de las cuotas comunes a todas los vendedores."
      },
      {
        "kind": "optional",
        "name": "merchants",
        "type": "Array",
        "children": [],
        "description": "Requerido en operatoria de tipo Multivendedor. "
      },
      {
        "name": "merchants.[$]",
        "kind": "optional",
        "type": "object",
        "description": "Objeto correspondiente a vendedor dentro del array \"merchants\", aplicable solo en modalidad Multivendor",
        "": "object",
        "children": [
          {
            "name": "uid",
            "kind": "required",
            "type": "string",
            "description": "UID del comercio multivendedor"
          },
          {
            "name": "intent",
            "kind": "optional",
            "type": "string",
            "description": "Intención de pago de las operaciones del comercio multivendedor (aplica para casos de 2-pasos)"
          }
        ],
        "schema": [
          {
            "name": "uid",
            "kind": "required",
            "type": "string",
            "description": "UID del comercio multivendedor"
          },
          {
            "name": "intent",
            "kind": "optional",
            "type": "string",
            "description": "Intención de pago de las operaciones del comercio multivendedor (aplica para casos de 2-pasos)"
          }
        ]
      },
      {
        "name": "travel",
        "kind": "optional",
        "type": "object",
        "description": "Para operaciones relacionadas al segmento de viajes o travel, permite adicionar información relacionada al pasaje que se está cobrando a través del checkout",
        "": "Para operaciones relacionadas al segmento de viajes o travel, permite adicionar información relacionada al pasaje que se está cobrando a través del checkout",
        "children": [
          {
            "name": "type",
            "kind": "required",
            "type": "string",
            "description": "Tipo de transporte: \"airline\", \"bus\", \"cruise\""
          },
          {
            "name": "travelDate",
            "kind": "required",
            "type": "object",
            "description": "Fecha del viaje.",
            "children": [
              {
                "name": "day",
                "kind": "optional",
                "type": "integer",
                "description": "Dia del viaje"
              },
              {
                "name": "month",
                "kind": "optional",
                "type": "integer",
                "description": "Mes del Viaje"
              },
              {
                "name": "year",
                "kind": "optional",
                "type": "integer",
                "description": "Año del viaje. Formato YYYY"
              }
            ]
          },
          {
            "name": "origin",
            "kind": "required",
            "type": "string",
            "description": "Origen del viaje. Valores válidos:\n*Aerolineas: código IATA.\n*Cruceros: códigos UN/LOCODE.\n*Bus: código abierto y personalizado. Se utiliza luego el nodo originData para indicar más información sobre el punto de origen del viaje."
          },
          {
            "name": "destination",
            "kind": "required",
            "type": "string",
            "description": "Destino del viaje. Valores válidos:\n*Aerolineas: código IATA.\n*Cruceros: códigos UN/LOCODE.\n*Bus: código abierto y personalizado. Se utiliza luego el nodo destinationData para indicar más información sobre el punto de destino del viaje."
          },
          {
            "name": "originData",
            "kind": "optional",
            "type": "object",
            "description": "Información sobre el punto de origen del viaje. Aplica solo para viajes de tipo \"bus\"",
            "children": [
              {
                "name": "city",
                "kind": "optional",
                "type": "string",
                "description": "Ciudad de origen"
              },
              {
                "name": "state",
                "kind": "optional",
                "type": "string",
                "description": "Estado o Provincia (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
              },
              {
                "name": "country",
                "kind": "optional",
                "type": "string",
                "description": "Páis en formato ISO-3166. Valores admitidos: Ver Tabla de Países en Complementos."
              }
            ]
          },
          {
            "name": "destinationData",
            "kind": "optional",
            "type": "object",
            "description": "Información sobre el punto de destino del viaje. Aplica solo para viajes de tipo \"bus\"",
            "children": [
              {
                "name": "city",
                "kind": "optional",
                "type": "string",
                "description": "Ciudad de destino"
              },
              {
                "name": "state",
                "kind": "optional",
                "type": "string",
                "description": "Estado (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
              },
              {
                "name": "country",
                "kind": "optional",
                "type": "string",
                "description": "Páis en formato ISO-3166. Valores admitidos: Ver Tabla de Países en Complementos."
              }
            ]
          },
          {
            "name": "passengers",
            "kind": "optional",
            "type": "array",
            "description": "Información de los pasajeros asociados a la compra"
          },
          {
            "name": "passengers.[$]",
            "kind": "optional",
            "type": "object",
            "description": "Objeto con los datos del pasajero dentro del array \"passengers\"",
            "children": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "Nombre y Apellido"
              },
              {
                "name": "identificationType",
                "kind": "optional",
                "type": "string",
                "description": "Tipo de identificación del pasajero. Valores disponibles:\n*arg.dni\n*arg.cuil\n*arg.cuit\n*passport"
              },
              {
                "name": "identification",
                "kind": "optional",
                "type": "string",
                "description": "Identificación del pasajero"
              },
              {
                "name": "phone",
                "kind": "optional",
                "type": "string",
                "description": "Teléfono del pasajero"
              }
            ]
          },
          {
            "name": "routing",
            "kind": "optional",
            "type": "array",
            "description": "En el caso de que el pasaje contemple escalas, permite indicar los tramos del vuelo. Ejemplo: [\"COR\", \"EZE\", \"MVD\"]"
          }
        ],
        "schema": [
          {
            "name": "type",
            "kind": "required",
            "type": "string",
            "description": "Tipo de transporte: \"airline\", \"bus\", \"cruise\""
          },
          {
            "name": "travelDate",
            "kind": "required",
            "type": "object",
            "description": "Fecha del viaje.",
            "children": [
              {
                "name": "day",
                "kind": "optional",
                "type": "integer",
                "description": "Dia del viaje"
              },
              {
                "name": "month",
                "kind": "optional",
                "type": "integer",
                "description": "Mes del Viaje"
              },
              {
                "name": "year",
                "kind": "optional",
                "type": "integer",
                "description": "Año del viaje. Formato YYYY"
              }
            ]
          },
          {
            "name": "origin",
            "kind": "required",
            "type": "string",
            "description": "Origen del viaje. Valores válidos:\n*Aerolineas: código IATA.\n*Cruceros: códigos UN/LOCODE.\n*Bus: código abierto y personalizado. Se utiliza luego el nodo originData para indicar más información sobre el punto de origen del viaje."
          },
          {
            "name": "destination",
            "kind": "required",
            "type": "string",
            "description": "Destino del viaje. Valores válidos:\n*Aerolineas: código IATA.\n*Cruceros: códigos UN/LOCODE.\n*Bus: código abierto y personalizado. Se utiliza luego el nodo destinationData para indicar más información sobre el punto de destino del viaje."
          },
          {
            "name": "originData",
            "kind": "optional",
            "type": "object",
            "description": "Información sobre el punto de origen del viaje. Aplica solo para viajes de tipo \"bus\"",
            "children": [
              {
                "name": "city",
                "kind": "optional",
                "type": "string",
                "description": "Ciudad de origen"
              },
              {
                "name": "state",
                "kind": "optional",
                "type": "string",
                "description": "Estado o Provincia (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
              },
              {
                "name": "country",
                "kind": "optional",
                "type": "string",
                "description": "Páis en formato ISO-3166. Valores admitidos: Ver Tabla de Países en Complementos."
              }
            ]
          },
          {
            "name": "destinationData",
            "kind": "optional",
            "type": "object",
            "description": "Información sobre el punto de destino del viaje. Aplica solo para viajes de tipo \"bus\"",
            "children": [
              {
                "name": "city",
                "kind": "optional",
                "type": "string",
                "description": "Ciudad de destino"
              },
              {
                "name": "state",
                "kind": "optional",
                "type": "string",
                "description": "Estado (ISO 3166). Ver Cod. de Provincias Argentinas en la sección Complementos."
              },
              {
                "name": "country",
                "kind": "optional",
                "type": "string",
                "description": "Páis en formato ISO-3166. Valores admitidos: Ver Tabla de Países en Complementos."
              }
            ]
          },
          {
            "name": "passengers",
            "kind": "optional",
            "type": "array",
            "description": "Información de los pasajeros asociados a la compra"
          },
          {
            "name": "passengers.[$]",
            "kind": "optional",
            "type": "object",
            "description": "Objeto con los datos del pasajero dentro del array \"passengers\"",
            "children": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "Nombre y Apellido"
              },
              {
                "name": "identificationType",
                "kind": "optional",
                "type": "string",
                "description": "Tipo de identificación del pasajero. Valores disponibles:\n*arg.dni\n*arg.cuil\n*arg.cuit\n*passport"
              },
              {
                "name": "identification",
                "kind": "optional",
                "type": "string",
                "description": "Identificación del pasajero"
              },
              {
                "name": "phone",
                "kind": "optional",
                "type": "string",
                "description": "Teléfono del pasajero"
              }
            ]
          },
          {
            "name": "routing",
            "kind": "optional",
            "type": "array",
            "description": "En el caso de que el pasaje contemple escalas, permite indicar los tramos del vuelo. Ejemplo: [\"COR\", \"EZE\", \"MVD\"]"
          }
        ]
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "LWJlt1LWvsxZL8CX9ww7g",
        "code": "{\n    \"result\": true,\n    \"data\": {\n        \"id\": \"EC27WUC5YH5MHT0J9I\",\n        \"url\": \"https://mobbex.com/p/checkout/v2/EC27WUC5YH5MHT0J9I\",\n        \"description\": \"Checkout de Prueba\",\n        \"currency\": \"ARS\",\n        \"total\": 100.53,\n        \"created\": 1622033797494\n    }\n}",
        "language": "200"
      },
      {
        "id": "NUyspC_b4yq-ypq5L8fCJ",
        "code": "",
        "language": "404"
      }
    ],
    "selectedLanguageId": "LWJlt1LWvsxZL8CX9ww7g"
  },
  "examples": {
    "languages": [
      {
        "id": "Qgls_KieGKKstM5LFaETH",
        "code": "var client = new RestClient(\"https://api.mobbex.com/p/checkout\");\r\nclient.Timeout = -1;\r\nvar request = new RestRequest(Method.POST);\r\nrequest.AddHeader(\"x-api-key\", \"zJ8LFTBX6Ba8D611e9io13fDZAwj0QmKO1Hn1yIj\");\r\nrequest.AddHeader(\"x-access-token\", \"d31f0721-2f85-44e7-bcc6-15e19d1a53cc\");\r\nrequest.AddHeader(\"Content-Type\", \"application/json\");\r\nvar body = @\"{\r\n\" + \"\\n\" +\r\n@\"    \"\"total\"\": \"\"100.53\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"description\"\": \"\"Checkout de Prueba\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"reference\"\": \"\"260520210954\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"currency\"\": \"\"ARS\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"test\"\": true,\r\n\" + \"\\n\" +\r\n@\"    \"\"return_url\"\": \"\"https://mobbex.com/return_url\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"webhook\"\": \"\"https://mobbex.com/webhook\"\",\r\n\" + \"\\n\" +\r\n@\"    \"\"customer\"\": {\r\n\" + \"\\n\" +\r\n@\"        \"\"email\"\": \"\"demo@mobbex.com\"\",\r\n\" + \"\\n\" +\r\n@\"        \"\"name\"\": \"\"Cliente Demo\"\",\r\n\" + \"\\n\" +\r\n@\"        \"\"identification\"\": \"\"12123123\"\"\r\n\" + \"\\n\" +\r\n@\"    }\r\n\" + \"\\n\" +\r\n@\"}\";\r\nrequest.AddParameter(\"application/json\", body,  ParameterType.RequestBody);\r\nIRestResponse response = client.Execute(request);\r\nConsole.WriteLine(response.Content);",
        "language": "csharp"
      },
      {
        "id": "y-WZgtIvK2bt80YLd59uG",
        "code": "curl --location --request POST 'https://api.mobbex.com/p/checkout' \\\r\n--header 'x-api-key: zJ8LFTBX6Ba8D611e9io13fDZAwj0QmKO1Hn1yIj' \\\r\n--header 'x-access-token: d31f0721-2f85-44e7-bcc6-15e19d1a53cc' \\\r\n--header 'Content-Type: application/json' \\\r\n--data-raw '{\r\n    \"total\": \"100.53\",\r\n    \"description\": \"Checkout de Prueba\",\r\n    \"reference\": \"260520210954\",\r\n    \"currency\": \"ARS\",\r\n    \"test\": true,\r\n    \"return_url\": \"https://mobbex.com/return_url\",\r\n    \"webhook\": \"https://mobbex.com/webhook\",\r\n    \"customer\": {\r\n        \"email\": \"demo@mobbex.com\",\r\n        \"name\": \"Cliente Demo\",\r\n        \"identification\": \"12123123\"\r\n    }\r\n}'",
        "language": "curl"
      },
      {
        "id": "5m9vmgCTh_RcgnRPc1d5P",
        "code": "import java.io.IOException;\nimport java.net.URI;\nimport java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\n\nHttpClient httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build();\n\nString data = \"{\\n\\t\\\"total\\\": 100.2,\\n\\t\\\"currency\\\": \\\"ars\\\",\\n\\t\\\"reference\\\": \\\"2982-2XtPXlgSaWccqUyobuv4sEmLYMV0N6oX6MoridMw\\\",\\n\\t\\\"description\\\": \\\"Descripción de la Venta\\\",\\n\\t\\\"return_url\\\": \\\"https://mobbex.com/sale/return?session=56789\\\",\\n\\t\\\"webhook\\\": \\\"https://mobbex.com/sale/webhook?user=1234\\\"\\n}\";\n\nHttpRequest request = HttpRequest.newBuilder()\n        .POST(HttpRequest.BodyPublishers.ofString(data))\n        .uri(URI.create(\"https://api.mobbex.com/p/intent\"))\n        .setHeader(\"x-api-key\", MobbexClient.xApiKey)\n        .setHeader(\"x-lang\", \"es\")\n        .setHeader(\"x-access-token\", MobbexClient.xAccessToken)\n        .setHeader(\"Content-Type\", \"application/json\")\n        .build();\n\nHttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.statusCode());\nSystem.out.println(response.body());",
        "language": "java"
      },
      {
        "id": "pmI2fYs6hkDatEI_4dv8w",
        "code": "var data = JSON.stringify({\n  \"total\": 100.53,\n  \"description\": \"Checkout de Prueba\",\n  \"reference\": \"260520210954\",\n  \"currency\": \"ARS\",\n  \"test\": true,\n  \"return_url\": \"https://mobbex.com/return_url\",\n  \"webhook\": \"https://mobbex.com/webhook\",\n  \"customer\": {\n    \"email\": \"demo@mobbex.com\",\n    \"name\": \"Cliente Demo\",\n    \"identification\": \"12123123\"\n  }\n});\n\nvar xhr = new XMLHttpRequest();\nxhr.withCredentials = true;\n\nxhr.addEventListener(\"readystatechange\", function() {\n  if(this.readyState === 4) {\n    console.log(this.responseText);\n  }\n});\n\nxhr.open(\"POST\", \"https://api.mobbex.com/p/checkout\");\nxhr.setRequestHeader(\"x-api-key\", \"zJ8LFTBX6Ba8D611e9io13fDZAwj0QmKO1Hn1yIj\");\nxhr.setRequestHeader(\"x-access-token\", \"d31f0721-2f85-44e7-bcc6-15e19d1a53cc\");\nxhr.setRequestHeader(\"Content-Type\", \"application/json\");\n\nxhr.send(data);",
        "language": "javascript"
      },
      {
        "id": "UYcoGoicQAiLFTL9TTP2S",
        "code": "import requests\r\nimport json\r\n\r\nurl = \"https://api.mobbex.com/p/checkout\"\r\n\r\npayload = json.dumps({\r\n  \"total\": \"100.53\",\r\n  \"description\": \"Checkout de Prueba\",\r\n  \"reference\": \"260520210954\",\r\n  \"currency\": \"ARS\",\r\n  \"test\": True,\r\n  \"return_url\": \"https://mobbex.com/return_url\",\r\n  \"webhook\": \"https://mobbex.com/webhook\",\r\n  \"customer\": {\r\n    \"email\": \"demo@mobbex.com\",\r\n    \"name\": \"Cliente Demo\",\r\n    \"identification\": \"12123123\"\r\n  }\r\n})\r\nheaders = {\r\n  'x-api-key': 'zJ8LFTBX6Ba8D611e9io13fDZAwj0QmKO1Hn1yIj',\r\n  'x-access-token': 'd31f0721-2f85-44e7-bcc6-15e19d1a53cc',\r\n  'Content-Type': 'application/json'\r\n}\r\n\r\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\r\n\r\nprint(response.text)\r\n",
        "language": "python"
      }
    ],
    "selectedLanguageId": "pmI2fYs6hkDatEI_4dv8w"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "crear-checkout",
  "legacyHash": "uzsDNcr23xXeTK8J_J6Ky"
}
```
:::

**Ejemplos del nodo &#x20;**`items`**&#x20;- Checkout con suscripciones:**

Aclaración: para generar un checkout con suscripciones, es necesario previamente crear la [suscripción](https://mobbex.dev/ckn4-suscripciones) y pasar el UID de la misma en el campo "reference".&#x20;

```json
{
    "items": [
        {
            "image": "https://www.mobbex.com/wp-content/uploads/2019/03/web_logo.png",
            "quantity": 2,
            "description": "Mi Producto",
            "total": 50
        },
        {
            "type": "subscription",
            "reference": "SUBSCRIPTIONUID"
        },
        {
            "image": "https://www.mobbex.com/wp-content/uploads/2019/03/web_logo.png",
            "quantity": 2,
            "description": "Mi Producto Entity Multivendedor",
            "total": 50,
            "entity": "demo_uid"
        }
    ]
}
```

Aclaración: Las imágenes deben soportar HTTPS, de lo contrario no serán mostradas.
Para colocar suscripciones dentro del checkout, se debe agregar un objeto al array de items con el `type` "subscription" y como `reference` el UID de la suscripción a la cual se va a asociar el suscriptor.

**Ejemplos del nodo&#x20;**`sources`**:**

```json
{
    "sources": ["visa", "mastercard"]
}
```

**Ejemplos del nodo&#x20;**`installments`**:**

Eisten 3 formas de Limitar Planes:

- *Ocultar determinados planes de todo el conjunto de planes existentes:*

Estos planes se pueden oxcultar por referencia o por ID de plan

```json
{
    "installments": ["-ahora_12", "-ahora_18"]
}
```

- *Limitar los Planes a las elegidos en el Array:*

Estos planes se pueden limitar por referencia o por ID de plan

```json
{
    "installments": ["1", "3", "ahora_12"]
}
```

- *Mostrar planes especiales basado en Reglas Avanzadas:*

```json
{
    "installments": ["+uid:XPDhreMoG7","+uid: ID Regla Avanzada"]
}
```

![](https://api.archbee.com/api/optimize/wYlzYU9oe8HZjh9BkqeFY/0lWA8Mwb-WwsvWNaMN6lj_image.png)

Para conocer las opciones disponibles de medios de pago sources y planes installments ver [Métodos de pago y cuotas](https://mobbex.dev/metodos-de-pago-y-cuotas)

:::BlockQuote
Para el caso especial de los Planes Ahora (Argentina) las referencias siempre serán fijas: **ahora\_3**, **ahora\_6**, **ahora\_12**, **ahora\_18**
:::

### Importante

:::hint{type="info"}
## Duración del Checkout

El checkout creado sólo podrá ser utilizado por 60 ( o el tiempo definido en la variable Timeout ) minutos, luego de esto expirará. Si el cliente intenta pagar luego de este periodo será redireccionado a la url declarada en return\_url con status 401 (Expirado).
:::

:::hint{type="warning"}
## Atributo "reference"

Este atributo es utilizado para evitar pagos duplicados. Debe ser único para cada operación de pago a identificar, ya que Mobbex NO permitirá 2 transacciones en estado "Pago" con el mismo reference.
:::



### Operatoria en 2 pasos

El módulo de checkout está habilitado para utilizar la operatoria en 2 pasos o "Autorización y Captura". Este tipo de operatoria especial requiere habilitación previa del comercio para poder utilizarla. La documentación sobre el flujo de la operación y los detalles de la implementación se encuentran en el siguiente [enlace](https://mobbex.dev/operatoria-en-2-pasos).

### Postman

[Descargar POSTMAN](https://res.mobbex.com/dev/MobbexCheckout.postman_collection.json)



## Retorno y WebHooks

### Transacción Finalizada

Al definir el parámetro `return_url` el servicio redireccionará a la URL provista mediante HTTP Get una vez finalizada la transacción. A esta url se le agregará el Estado de la misma mediante el parámetro `status`, el tipo de transacción generada por el usuario mediante el parámetro `type` (*cash/card*) y el identificador de la transacción mediante el parámetro `transactionId`.

Ejemplo:

`https://mobbex.com/thank_you?status=200&type=cash&transactionId=NfkvurRUX`


### Transacción Cancelada

Si el usuario cancela la operación status será 0 y type será none. Esto como se señala indica que el usuario no finalizó la operación y decidió volver al sitio.

Ejemplo:

`https://mobbex.com/thank_you?status=0&type=none&transactionId=-1`


### Referencia de estados posibles

Es ***muy importante*** revisar la documentación sobre estados y tipos de documentación ya que el manejo de los mismos será utilizado durante la homologación del comercio. Esta documentación puede ser encontrada en el siguiente link: [Estados y Tipos de Transacción](https://mobbex.dev/codigos-de-estado)



### Vencimiento del Checkout

Para evitar que un Checkout quede pendiente de pago luego de cierto tiempo los Checkout tienen un tiempo límite por defecto de 60 minutos que puede ser personalizado via el parámetro "timeout" al crear el checkout enviando la cantidad de minutos máximos que se desea que el checkout siga activo. El mínimo de minutos es 1 minuto.

Cuando un Checkout Expira o se Vence el servicio envía automáticamente una notificación via Webhook notificando dicho vencimiento. Este Webhook tiene un formado especial descripto a continuación. Se debe tener en cuenta que este Webhook no es similar a los Webhooks de la operatoria.

```json
{
  "data": {
    "checkout": {
      "items": [
        {
          "_id": "63b47c090038d225bcba1297",
          "categoryId": "",
          "description": "Mi Producto",
          "entity": "",
          "image": "https://picsum.photos/200/300?grayscale&blur=2",
          "productId": "",
          "quantity": 2,
          "reference": "",
          "sku": "",
          "total": 50,
          "type": "third_party",
          "uid": "f2d29353-8e09-4237-a7a7-e551cd759ff6",
          "unitPrice": 0
        },
        {
          "_id": "63b47c090038d225bcba1298",
          "categoryId": "",
          "description": "Mi otro producto",
          "entity": "",
          "image": "https://picsum.photos/200/300?grayscale&blur=2",
          "productId": "",
          "quantity": 1,
          "reference": "",
          "sku": "",
          "total": 50.2,
          "type": "third_party",
          "uid": "51182c25-c341-4000-b048-5ce48d541fc5",
          "unitPrice": 0
        }
      ],
      "reference": "d0246167-533c-4f3e-a56d-467eee21dbe5",
      "uid": "CHK:D5TCT76SEAM4C1TRW9"
    },
    "data": null,
    "status": {
      "code": 401
    }
  },
  "type": "checkout:expired"
}
```

Al recibir este Webhook se entiende que el Checkout ya no podrá pagarse y se recomienda devolver el Stock o tomar las acciones necesarias desde su Backend.

El campo "data" será enviado cuando haya habido intentos infructuosos de pago, este campo sirve como control de la operación

```json
{
  "data": {
    "checkout": {
      "items": [
        {
          "_id": "63bb874426a735b851538775",
          "categoryId": "",
          "description": "Mi Producto",
          "entity": "",
          "image": "https://picsum.photos/200/300?grayscale&blur=2",
          "productId": "",
          "quantity": 2,
          "reference": "",
          "sku": "",
          "total": 50,
          "type": "third_party",
          "uid": "4f104654-b81f-48f1-9bf9-14fd2abb7b82",
          "unitPrice": 0
        },
        {
          "_id": "63bb874426a735b851538776",
          "categoryId": "",
          "description": "Mi otro producto",
          "entity": "",
          "image": "https://picsum.photos/200/300?grayscale&blur=2",
          "productId": "",
          "quantity": 1,
          "reference": "",
          "sku": "",
          "total": 50.2,
          "type": "third_party",
          "uid": "9637ae7c-337f-42ae-8d8f-3c1e346492da",
          "unitPrice": 0
        }
      ],
      "reference": "ref_test_checkout_ent_1",
      "uid": "CHK:02RH4B42JS9AULEHX0"
    },
    "data": {
      "customer": {
        "email": "demo@mobbex.com",
        "identification": "12123123",
        "name": "Demo Mobbex"
      },
      "entity": {
        "name": "Mi Ready",
        "uid": "myready"
      },
      "payment": {
        "created": "2023-01-09T03:18:36.589Z",
        "currency": {
          "code": "TEST",
          "locale": "es",
          "symbol": "T$",
          "text": "Test Money"
        },
        "description": "Descripción de la Venta",
        "id": "QL18TN2SG5ETDMAEFMP951",
        "operation": {
          "type": "payment.v2"
        },
        "reference": "ref_test_checkout_ent_1",
        "riskAnalysis": {
          "band": "N/A",
          "level": "N/A"
        },
        "source": {
          "cardholder": {
            "identification": "12123123",
            "name": "Demo"
          },
          "expiration": {
            "month": "12",
            "year": "34"
          },
          "installment": {
            "amount": 10,
            "count": 1,
            "description": "Débito",
            "reference": "1"
          },
          "name": "Visa Débito",
          "number": "450799******0010",
          "reference": "visa.debit",
          "transaction": {
            "authorizationCode": "869348355213",
            "batchNo": "",
            "resultCode": "0",
            "retrievalReferenceNo": "",
            "ticketNo": "740135094293",
            "transactionId": "QL18TN2SG5ETDMAEFMP951"
          },
          "type": "card"
        },
        "status": {
          "code": "400",
          "data": {},
          "message": "Estado 400",
          "resultCode": "0",
          "text": "Rechazado",
          "view": "default"
        },
        "total": 10,
        "updated": "2023-01-09T03:18:47.212Z"
      },
      "result": true,
      "source": {
        "name": "Visa Débito",
        "reference": "visa.debit",
        "type": "card"
      },
      "user": {
        "email": "demo@mobbex.com",
        "name": "Demo Mobbex"
      },
      "view": {
        "type": "card"
      }
    },
    "status": {
      "code": 401
    }
  },
  "type": "checkout:expired"
}
```

Este webhook especial **NO** será enviado cuando haya una operación en los siguientes estados:

- 200
- 3
- 210
- 300
- 301
- 2
- 100

### WebhooksType Parameter

Se debe utilizar este parámetro para limitar los Webhooks recibidos, por ejemplo cuando sólo querramos ser notificados cuando una operación llegue a un estado final pero no cuando haya intentos infructuosos de pago.

Opciones de Tipo de Webhook:

- **all:** Esta es la opción por defecto y el servicio enviará todo intento de transacción que realice el cliente durante el pago del Checkout.
- **final:** Aquí solo se enviarán Webhooks cuando el cliente llegue a un estado final, como un pago Aprobado. Todo el resto de los estados no será enviado aunque el estado del checkout será enviado en el Webhook de Expiración o Vencimiento tratado antes. Estados que serán notificados: **200, 3, 300, 301, 2.**
- **intermediateAndFinal:** A la opción anterior seran enviados los estados intermedios, por ejemplo una operación en revisión por fraude. Estados adicionales al tipo "final" que serán enviados: 100, 210.
- **none:** En esta opción ningún Webhook será enviado incluso si se define la url del checkout. Solo utilizar esta opción en casos especiales. Si utiliza esta opción deberá obtener el estado del checkout via API utilizando el "reference" definido.

Si el checkout expira y la operación cambia de estado, por ejemplo de "En Espera (2)" a "Rechazado (400)" la notificación será enviada en los tipos "all", "final" e "intermediateAndFinal", sólo no será enviado en el tipo "none"



:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://api.mobbex.com/p/checkout/{ID}",
  "name": "Eliminar Checkout",
  "method": "DELETE",
  "request": {
    "pathParameters": [],
    "queryParameters": [
      {
        "kind": "required",
        "name": "ID",
        "type": "string",
        "description": "ID del Checkout a Eliminar."
      }
    ],
    "headerParameters": [
      {
        "kind": "required",
        "name": "x-api-key",
        "type": "string",
        "description": "Clave API de su aplicación."
      },
      {
        "kind": "required",
        "name": "x-access-token",
        "type": "string",
        "description": "Token de Acceso a la entidad."
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "xBPkU6WFU_Hz8CxIBzdYk",
        "code": "{\n    \"name\": \"Cake's name\",\n}",
        "language": "200"
      }
    ],
    "selectedLanguageId": "xBPkU6WFU_Hz8CxIBzdYk"
  },
  "examples": {
    "languages": [
      {
        "id": "lTxVpg27niau7J_RP8K76",
        "code": "fetch(\"https://api.mobbex.com/p/checkout/EC27WUC5YH5MHT0J9I\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"x-api-key\": \"zJ8LFTBX6Ba8D611e9io13fDZAwj0QmKO1Hn1yIj\",\n    \"x-access-token\": \"d31f0721-2f85-44e7-bcc6-15e19d1a53cc\"\n  }\n})\n.then(response => {\n  console.log(response);\n})\n.catch(err => {\n  console.error(err);\n});",
        "language": "javascript"
      }
    ],
    "selectedLanguageId": "lTxVpg27niau7J_RP8K76"
  },
  "description": "Esto le permitirá eliminar un checkout creado antes de los 60 minutos de duración por defecto.",
  "currentNewParameter": {
    "label": "Header Parameter",
    "value": "headerParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "eliminar-checkout",
  "legacyHash": "Vj7dn6RoGfdcYSPuJ9Jl3"
}
```
:::

