MÓDULOS
Fidelización
15 min
el api de fidelización a diferencia de otros api requiere de 2 niveles de claves de acceso al servicio debido a que el mismo es un servicio operado y auditado a continuación se explica cómo generar un api key para acceder a mobbex y cómo obtener el audit key para acceder al módulo de fidelización audit key clave de auditoria para crear una clave de auditoria debería generar su empresa en mobbex, para ello luego de haber creado la cuenta en el punto anterior, dirijase a "crear entidad", ingrese su cuit y valide los datos una vez que la entidad se encuentre creada provea su cuit a la entidad operadora para que asocie su cuenta y genere su audit key una vez asociado a la entidad operadora podrá ver en su consola un nuevo item con su clave de auditoria aclaraciones generales la carga de puntos no depende ni dependerá de los medios de pago provistos por mobbex siendo responsabilidad del sistema ( entidad con audit key ) la implementación de limitaciones en caso de que la implementación lo requiera los números de tarjeta no poseen ningún tipo de limitaciones de caracteres aunque se recomienda que posean un número mínimo de 4 digitos por cuestiones de no colisión aunque esto será gestionado exclusivamente por el operador autorizado al uso del servicio la carga de puntos no es exclusiva de entidades registradas en mobbex pero si es exclusiva a la autorización del operador los operadores deberán autorizar previamente a los cuit que podrán sumar puntos mediante su sistema de fidelización utilizando la consola de mobbex todas las entidades autorizadas por el operador del sistema de fidelización podrán sumar puntos en las credenciales emitidas url del servicio https //api mobbex com/p/loyalty cabeceras (headers) x api key clave api de su aplicación x audit key clave de auditoria servicios { "tab" "request", "url" "https //api mobbex com/p/loyalty/accounts/search", "name" "búsqueda de cuenta", "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 audit key", "type" "string", "description" "clave de auditoria" } ], "bodydataparameters" \[ { "kind" "required", "name" "reference", "type" "string", "description" "referencia a buscar, puede ser un dni, una credencial, un email o un nombre" } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "ketmyugdlpc pqpok18wp", "code" "{\n \\"result\\" true,\n \\"data\\" \[\n {\n \\"uid\\" \\"ght12s sq\\",\n \\"credential\\" \\"45485\\",\n \\"name\\" \\"demo mobbex\\",\n \\"identification\\" \\"12123123\\",\n \\"email\\" \\"demo\@mobbex com\\",\n \\"phone\\" \\"\\",\n \\"customer\\" {\n \\" id\\" \\"4a6ad3cf120790ab0f8b2b49\\",\n \\"name\\" \\"demo mobbex\\",\n \\"email\\" \\"demo\@mobbex com\\",\n \\"identification\\" \\"12123123\\",\n \\"phone\\" \\"\\"\n },\n \\"balance\\" 150,\n \\"account\\" \\"4a6ad3cf120790ab0f8b2b49\\"\n }\n ]\n}", "language" "200" } ], "selectedlanguageid" "ketmyugdlpc pqpok18wp" }, "examples" { "languages" \[ { "id" "acr4sjockspnuvruwywkt", "code" "var client = new restclient(\\"https //api mobbex com/p/loyalty/accounts/search\\");\r\nclient timeout = 1;\r\nvar request = new restrequest(method post);\r\nrequest addheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\r\nrequest addheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\r\nrequest addheader(\\"content type\\", \\"application/json\\");\r\nrequest addparameter(\\"application/json\\", \\"{\\\r\\\n \\\\\\"reference\\\\\\" \\\\\\"45485\\\\\\"\\\r\\\n}\\", parametertype requestbody);\r\nirestresponse response = client execute(request);\r\nconsole writeline(response content);", "language" "csharp" }, { "id" "dvg0kl38 85yqlcnkmmnv", "code" "curl location request post 'https //api mobbex com/p/loyalty/accounts/search' \\\\\r\n header 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij' \\\\\r\n header 'x audit key d31f0721 2f85 44e7 bcc6 15e19d1a53cc' \\\\\r\n header 'content type application/json' \\\\\r\n data raw '{\r\n \\"reference\\" \\"45485\\"\r\n}'", "language" "curl" }, { "id" "uk5yenhfbdrxydyjo8ilm", "code" "var data = json stringify({\n \\"reference\\" \\"45485\\"\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/loyalty/accounts/search\\");\nxhr setrequestheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nxhr setrequestheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\nxhr setrequestheader(\\"content type\\", \\"application/json\\");\n\nxhr send(data);", "language" "javascript" }, { "id" "ygs3dz 4f7fsj1gk boo6", "code" "\<?php\r\n\r\n$curl = curl init();\r\n\r\ncurl setopt array($curl, array(\r\n curlopt url => 'https //api mobbex com/p/loyalty/accounts/search',\r\n curlopt returntransfer => true,\r\n curlopt encoding => '',\r\n curlopt maxredirs => 10,\r\n curlopt timeout => 0,\r\n curlopt followlocation => true,\r\n curlopt http version => curl http version 1 1,\r\n curlopt customrequest => 'post',\r\n curlopt postfields =>'{\r\n \\"reference\\" \\"45485\\"\r\n}',\r\n curlopt httpheader => array(\r\n 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\r\n 'x audit key d31f0721 2f85 44e7 bcc6 15e19d1a53cc',\r\n 'content type application/json'\r\n ),\r\n));\r\n\r\n$response = curl exec($curl);\r\n\r\ncurl close($curl);\r\necho $response;\r\n", "language" "php" } ], "selectedlanguageid" "acr4sjockspnuvruwywkt" }, "description" "importante se debe limitar la cantidad de consultas generadas al server ya que de lo contrario el ip podrá ser bloqueado ", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" } } { "tab" "request", "url" "https //api mobbex com/p/loyalty/accounts/create", "name" "creación de cuenta", "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 audit key", "type" "string", "description" "clave de auditoria" } ], "bodydataparameters" \[ { "kind" "required", "name" "identification", "type" "string", "description" "dni del usuario " }, { "kind" "required", "name" "email", "type" "string", "description" "email del usuario " }, { "kind" "optional", "name" "credential", "type" "string", "description" "número o identificador de credencial del usuario si no se provee un número de credencial el sistema creará una credencial virtual y retornará la misma " }, { "kind" "optional", "name" "name", "type" "string", "description" "nombre del usuario " }, { "kind" "optional", "name" "phone", "type" "string", "description" "teléfono del usuario " } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "ar2fnfvtxqw0uwyfsnxr7", "code" "", "language" "200" } ], "selectedlanguageid" "ar2fnfvtxqw0uwyfsnxr7" }, "examples" { "languages" \[ { "id" "mmvlvsehhtb6whvgjsesv", "code" "var client = new restclient(\\"https //api mobbex com/p/loyalty/accounts/create\\");\r\nclient timeout = 1;\r\nvar request = new restrequest(method post);\r\nrequest addheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\r\nrequest addheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\r\nrequest addheader(\\"content type\\", \\"application/json\\");\r\nrequest addparameter(\\"application/json\\", \\"{\\\r\\\n \\\\\\"identification\\\\\\" \\\\\\"12123123\\\\\\",\\\r\\\n \\\\\\"email\\\\\\" \\\\\\"demo\@mobbex com\\\\\\",\\\r\\\n \\\\\\"credential\\\\\\" \\\\\\"000123\\\\\\",\\\r\\\n \\\\\\"name\\\\\\" \\\\\\"cliente demo\\\\\\"\\\r\\\n}\\", parametertype requestbody);\r\nirestresponse response = client execute(request);\r\nconsole writeline(response content);", "language" "csharp" }, { "id" "t6tpy60prmxtgqociic2b", "code" "var data = json stringify({\n \\"identification\\" \\"12123123\\",\n \\"email\\" \\"demo\@mobbex com\\",\n \\"credential\\" \\"000123\\",\n \\"name\\" \\"cliente demo\\"\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/loyalty/accounts/create\\");\nxhr setrequestheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nxhr setrequestheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\nxhr setrequestheader(\\"content type\\", \\"application/json\\");\n\nxhr send(data);", "language" "javascript" }, { "id" "vdfrbllqtxxp1s6g1cmxw", "code" "\<?php\r\n\r\n$curl = curl init();\r\n\r\ncurl setopt array($curl, array(\r\n curlopt url => 'https //api mobbex com/p/loyalty/accounts/create',\r\n curlopt returntransfer => true,\r\n curlopt encoding => '',\r\n curlopt maxredirs => 10,\r\n curlopt timeout => 0,\r\n curlopt followlocation => true,\r\n curlopt http version => curl http version 1 1,\r\n curlopt customrequest => 'post',\r\n curlopt postfields =>'{\r\n \\"identification\\" \\"12123123\\",\r\n \\"email\\" \\"demo\@mobbex com\\",\r\n \\"credential\\" \\"000123\\",\r\n \\"name\\" \\"cliente demo\\"\r\n}',\r\n curlopt httpheader => array(\r\n 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\r\n 'x audit key d31f0721 2f85 44e7 bcc6 15e19d1a53cc',\r\n 'content type application/json'\r\n ),\r\n));\r\n\r\n$response = curl exec($curl);\r\n\r\ncurl close($curl);\r\necho $response;\r\n", "language" "php" } ], "selectedlanguageid" "mmvlvsehhtb6whvgjsesv" }, "description" "permite crear una nueva credencial dentro del servicio de fidelización", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" } } importante los datos opcionales a pesar de ser, justamente opcionales, deberían ser completados siempre que sea posible { "tab" "request", "url" "https //api mobbex com/p/loyalty/accounts/balance", "name" "balance de cuenta", "method" "get", "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "kind" "required", "name" "x api key", "type" "string", "description" "clave api de su aplicación" }, { "kind" "required", "name" "x audit key", "type" "string", "description" "clave de auditoría " } ], "bodydataparameters" \[ { "kind" "required", "name" "credential", "type" "string", "description" "número de credencial obtenido usando la búsqueda " } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "22jga6khqlw5k2br9v2za", "code" "{\r\n \\"result\\" true,\r\n \\"data\\" {\r\n \\"balance\\" 16,\r\n \\"user\\" {\r\n \\"name\\" \\"cliente demo\\"\r\n }\r\n }\r\n}", "language" "200" } ], "selectedlanguageid" "22jga6khqlw5k2br9v2za" }, "examples" { "languages" \[ { "id" "5zjxeqdn7ilhb1ugdcu48", "code" "var client = new restclient(\\"https //api mobbex com/p/loyalty/accounts/balance\\");\r\nclient timeout = 1;\r\nvar request = new restrequest(method post);\r\nrequest addheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\r\nrequest addheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\r\nrequest addheader(\\"content type\\", \\"application/json\\");\r\nrequest addparameter(\\"application/json\\", \\"{\\\r\\\n \\\\\\"credential\\\\\\" \\\\\\"45485\\\\\\"\\\r\\\n}\\", parametertype requestbody);\r\nirestresponse response = client execute(request);\r\nconsole writeline(response content);", "language" "csharp" }, { "id" "japjlkkdo4zikpr9lb52f", "code" "var data = json stringify({\n \\"credential\\" \\"45485\\"\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/loyalty/accounts/balance\\");\nxhr setrequestheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nxhr setrequestheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\nxhr setrequestheader(\\"content type\\", \\"application/json\\");\n\nxhr send(data);", "language" "javascript" }, { "id" "uhlxpepdif5eqm ahv10k", "code" "\<?php\r\n\r\n$curl = curl init();\r\n\r\ncurl setopt array($curl, array(\r\n curlopt url => 'https //api mobbex com/p/loyalty/accounts/balance',\r\n curlopt returntransfer => true,\r\n curlopt encoding => '',\r\n curlopt maxredirs => 10,\r\n curlopt timeout => 0,\r\n curlopt followlocation => true,\r\n curlopt http version => curl http version 1 1,\r\n curlopt customrequest => 'post',\r\n curlopt postfields =>'{\r\n \\"credential\\" \\"45485\\"\r\n}',\r\n curlopt httpheader => array(\r\n 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\r\n 'x audit key d31f0721 2f85 44e7 bcc6 15e19d1a53cc',\r\n 'content type application/json'\r\n ),\r\n));\r\n\r\n$response = curl exec($curl);\r\n\r\ncurl close($curl);\r\necho $response;\r\n", "language" "php" } ], "selectedlanguageid" "5zjxeqdn7ilhb1ugdcu48" }, "description" "", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" } } { "tab" "request", "url" "https //api mobbex com/p/loyalty/points/charge", "name" "carga de puntos", "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 audit key", "type" "string", "description" "clave de auditoría " } ], "bodydataparameters" \[ { "kind" "required", "name" "credential", "type" "string", "description" "número de credencial obtenido usando la búsqueda " }, { "kind" "required", "name" "tax id", "type" "string", "description" "cuit de la entidad que realiza la carga de puntos debe ser una entidad válida y asociada al operador " }, { "kind" "required", "name" "points", "type" "integer", "description" "cantidad de puntos a cargar en la cuenta " }, { "kind" "required", "name" "reference", "type" "string", "description" "referencia de la operación de carga " } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "17zbagprfn82u3yeho6g7", "code" "", "language" "200" } ], "selectedlanguageid" "17zbagprfn82u3yeho6g7" }, "examples" { "languages" \[ { "id" "5ccw0a8q3flrtbeb7xhs2", "code" "var client = new restclient(\\"https //api mobbex com/p/loyalty/points/charge\\");\r\nclient timeout = 1;\r\nvar request = new restrequest(method post);\r\nrequest addheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\r\nrequest addheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\r\nrequest addheader(\\"content type\\", \\"application/json\\");\r\nrequest addparameter(\\"application/json\\", \\"{\\\r\\\n \\\\\\"credential\\\\\\" \\\\\\"45485\\\\\\",\\\r\\\n \\\\\\"tax id\\\\\\" \\\\\\"99999999999\\\\\\",\\\r\\\n \\\\\\"point\\\\\\" 10,\\\r\\\n \\\\\\"reference\\\\\\" \\\\\\"carga de punto al cliente demo\\\\\\"\\\r\\\n}\\", parametertype requestbody);\r\nirestresponse response = client execute(request);\r\nconsole writeline(response content);", "language" "csharp" }, { "id" "yjufxupvklnk ltqesman", "code" "var data = json stringify({\n \\"credential\\" \\"45485\\",\n \\"tax id\\" \\"99999999999\\",\n \\"point\\" 10,\n \\"reference\\" \\"carga de punto al cliente demo\\"\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/loyalty/points/charge\\");\nxhr setrequestheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nxhr setrequestheader(\\"x audit key\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\nxhr setrequestheader(\\"content type\\", \\"application/json\\");\n\nxhr send(data);", "language" "javascript" }, { "id" "v gaedv xumorrxlvn9gw", "code" "\<?php\r\n\r\n$curl = curl init();\r\n\r\ncurl setopt array($curl, array(\r\n curlopt url => 'https //api mobbex com/p/loyalty/points/charge',\r\n curlopt returntransfer => true,\r\n curlopt encoding => '',\r\n curlopt maxredirs => 10,\r\n curlopt timeout => 0,\r\n curlopt followlocation => true,\r\n curlopt http version => curl http version 1 1,\r\n curlopt customrequest => 'post',\r\n curlopt postfields =>'{\r\n \\"credential\\" \\"45485\\",\r\n \\"tax id\\" \\"99999999999\\",\r\n \\"point\\" 10,\r\n \\"reference\\" \\"carga de punto al cliente demo\\"\r\n}',\r\n curlopt httpheader => array(\r\n 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\r\n 'x audit key d31f0721 2f85 44e7 bcc6 15e19d1a53cc',\r\n 'content type application/json'\r\n ),\r\n));\r\n\r\n$response = curl exec($curl);\r\n\r\ncurl close($curl);\r\necho $response;\r\n", "language" "php" } ], "selectedlanguageid" "5ccw0a8q3flrtbeb7xhs2" }, "description" "permite realizar la carga de puntos a una credencial específica ", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" } } enpoints restringidos las siguientes rutas requieren de permisos especiales y no podrán ser consultadas utilizando el audit key transacciones post https //api mobbex com/p/loyalty/transactions parámetros credential número de credencial obtenido usando la búsqueda consumo de puntos post https //api mobbex com/p/loyalty/points/discharge parámetros credential número de credencial obtenido usando la búsqueda points cantidad de puntos a consumir en la cuenta webhooks los webhooks son urls seguras mediante las cual mobbex notificará los diferentes eventos relacionados con el módulo de fidelización para configurar un webhook debe hacerlo desde la consola de mobbex en la sección fidelización, configuración el webhook debe ser https (tls 1 2 o superior) y debe poder recibir datos mediante el método post de http tipos nueva credencial nueva operación nueva credencial tipo post formato json { "type" "loyalty credential", "data" { "uid" "r18wgnqmm", "credential" "a1b2c3d4", "name" "juan perez", "identification" "12123123", "email" "juanperez\@email com" } } nueva operación tipo post formato json { "type" "loyalty transaction", "data" { "result" true, "view" { "type" "card" }, "payment" { "id" "rkwpx3yu6x", "status" { "code" "200", "text" "paid", "message" "aprobada" }, "total" 10, "currency" { "code" "ars", "text" "peso argentino" }, "currency data" { "value" "pts", "label" "puntos", "symbol" "$p" }, "source" { "name" "puntos", "type" "card", "number" "xxxxxxxxxxxx" }, "user" { "name" "juan perez", "email" "juanperez\@mobbex com" }, "reference" "hyjdik8tx" } } }