MÓDULOS
Checkout
16min
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"