MÓDULOS
Checkout
16 min
{ "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 } ejemplos del nodo items checkout con suscripciones aclaración para generar un checkout con suscripciones, es necesario previamente crear la suscripción y pasar el uid de la misma en el campo "reference" { "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 sources { "sources" \["visa", "mastercard"] } ejemplos del nodo 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 { "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 { "installments" \["1", "3", "ahora 12"] } mostrar planes especiales basado en reglas avanzadas { "installments" \["+uid\ xpdhremog7","+uid id regla avanzada"] } para conocer las opciones disponibles de medios de pago sources y planes installments ver métodos de pago y cuotas para el caso especial de los planes ahora (argentina) las referencias siempre serán fijas ahora 3 , ahora 6 , ahora 12 , ahora 18 importante 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) 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 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 { "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 { "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í sóolo 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" { "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" } }