Desarrolladores
Botón de Pago
8 min
{ "tab" "examples", "url" "https //api unicobros com ar/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 unicobros 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", "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" } ], "description" "permite definir opciones para el checkout creado " }, { "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" "{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" "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" "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" "{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" "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" "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 unicobros 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" }, { "kind" "optional", "name" "addresses\[$] type", "type" "string", "description" "tipo de dirección valores admitidos \\"billing\\", \\"shipping\\"" }, { "kind" "optional", "name" "addresses\[$] country", "type" "string", "description" "páis valores admitidos ver tabla de países en complementos " }, { "kind" "optional", "name" "addresses\[$] street", "type" "string", "description" "dirección sin número" }, { "kind" "optional", "name" "addresses\[$] streetnumber", "type" "string", "description" "número de puerta de la dirección" }, { "kind" "optional", "name" "addresses\[$] streetnotes", "type" "string", "description" "notas references a la dirección, segunda linea de dirección, piso, departamento, oficina, etc " }, { "kind" "optional", "name" "addresses\[$] zipcode", "type" "string", "description" "código postal" }, { "kind" "optional", "name" "addresses\[$] city", "type" "string", "description" "ciudad" }, { "kind" "optional", "name" "addresses\[$] state", "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 " }, { "kind" "required", "name" "merchants \[$] uid", "type" "string", "children" \[], "description" "uid del comercio multivendedor" }, { "kind" "optional", "name" "merchants \[$] intent", "type" "string", "children" \[], "description" "intención de pago de las operaciones del comercio multivendedor (aplica para casos de 2 pasos)" } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "lwjlt1lwvsxzl8cx9ww7g", "code" "{\n \\"result\\" true,\n \\"data\\" {\n \\"id\\" \\"ec27wuc5yh5mht0j9i\\",\n \\"url\\" \\"https //sugaway 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 unicobros com ar/p/checkout\\");\nclient timeout = 1;\nvar request = new restrequest(method post);\nrequest addheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nrequest addheader(\\"x access token\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\nrequest addheader(\\"content type\\", \\"application/json\\");\nvar body = @\\"{\n\\" + \\"\\\n\\" +\n@\\" \\"\\"total\\"\\" \\"\\"100 53\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"description\\"\\" \\"\\"checkout de prueba\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"reference\\"\\" \\"\\"260520210954\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"currency\\"\\" \\"\\"ars\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"test\\"\\" true,\n\\" + \\"\\\n\\" +\n@\\" \\"\\"return url\\"\\" \\"\\"https //unicobros com ar/return url\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"webhook\\"\\" \\"\\"https //unicobros com ar/webhook\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"customer\\"\\" {\n\\" + \\"\\\n\\" +\n@\\" \\"\\"email\\"\\" \\"\\"demo\@unicobros com\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"name\\"\\" \\"\\"cliente demo\\"\\",\n\\" + \\"\\\n\\" +\n@\\" \\"\\"identification\\"\\" \\"\\"12123123\\"\\"\n\\" + \\"\\\n\\" +\n@\\" }\n\\" + \\"\\\n\\" +\n@\\"}\\";\nrequest addparameter(\\"application/json\\", body, parametertype requestbody);\nirestresponse response = client execute(request);\nconsole writeline(response content);", "language" "csharp" }, { "id" "y wzgtivk2bt80yld59ug", "code" "curl location request post 'https //api unicobros com ar/checkout' \\\\\n header 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij' \\\\\n header 'x access token d31f0721 2f85 44e7 bcc6 15e19d1a53cc' \\\\\n header 'content type application/json' \\\\\n data raw '{\n \\"total\\" \\"100 53\\",\n \\"description\\" \\"checkout de prueba\\",\n \\"reference\\" \\"260520210954\\",\n \\"currency\\" \\"ars\\",\n \\"test\\" true,\n \\"return url\\" \\"https //unicobros com ar/return url\\",\n \\"webhook\\" \\"https //unicobros com ar/webhook\\",\n \\"customer\\" {\n \\"email\\" \\"demo\@unicobros com\\",\n \\"name\\" \\"cliente demo\\",\n \\"identification\\" \\"12123123\\"\n }\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 unicobros com ar/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 //unicobros com ar/return url\\",\n \\"webhook\\" \\"https //unicobros com ar/webhook\\",\n \\"multivendor\\" \\"active\\",\n \\"merchants\\" \[\n {\n \\"uid\\" \\"demo uid\\"\n }\n ],\n \\"customer\\" {\n \\"email\\" \\"demo\@sugaway 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 unicobros com ar/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\nimport json\n\nurl = \\"https //api unicobros com ar/p/checkout\\"\n\npayload = json dumps({\n \\"total\\" \\"100 53\\",\n \\"description\\" \\"checkout de prueba\\",\n \\"reference\\" \\"260520210954\\",\n \\"currency\\" \\"ars\\",\n \\"test\\" true,\n \\"return url\\" \\"https //unicobros com ar/return url\\",\n \\"webhook\\" \\"https //api unicobros com ar/webhook\\",\n \\"customer\\" {\n \\"email\\" \\"demo\@unicobros com\\",\n \\"name\\" \\"cliente demo\\",\n \\"identification\\" \\"12123123\\"\n }\n})\nheaders = {\n 'x api key' 'zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\n 'x access token' 'd31f0721 2f85 44e7 bcc6 15e19d1a53cc',\n 'content type' 'application/json'\n}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "language" "python" } ], "selectedlanguageid" "uycogoicqailftl9ttp2s" }, "description" "", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" } } 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"] } 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 unicobros no permitirá 2 transacciones en estado "pago" con el mismo reference retorno 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 //unicobros 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 //unicobros com/thank you?status=0\&type=none\&transactionid= 1 { "tab" "examples", "url" "https //api unicobros com ar/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 unicobros com ar/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" } }