MÓDULOS
Suscripciones/Recurrencia
Suscripción con DEBIN
5 min
debin o débito inmediato es el reemplazo natural del débito directo utilizado durante tantos años la principal ventaja es que es totalmente digital, administrado por el usuario y seguro ya que puede ser controlado por el usuario directamente desde su banco en este documento enseñaremos cómo utilizar esta valiosisima herramienta en nuestro módulo de suscripciones permitiendo cobrar tus suscripciones directamente desde una cuenta bancacia (cbu) o una cuenta virtual (cvu) antes de comenzar, es necesario verificar que el medio de pago debin se encuentre activo en tu consola primeros pasos crear o actualizar un suscriptor es sumamente importante que tu suscriptor tenga correctamente configurado en el objeto "customer" en "identification" su cuit o cuil ya que si utilizás sólo el dni este medio de pago no funcionará podes ver nuestra documentación acá crear la intención para cambiar el medio de pago del suscriptor crear un token de tipo cuenta bancaria ejecutar el cambio de método de pago creando una intención para cambiar el medio de pago { "tab" "request", "url" "https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}", "name" "crear intención", "method" "get", "request" { "pathparameters" \[ { "kind" "required", "name" "id", "type" "string", "description" "id de la suscripción" }, { "name" "sid", "kind" "required", "type" "string", "description" "id del suscriptor puede ser el id otorgado por nosotros o tu \\"reference\\" en el formato ref {reference}", "" "id del suscriptor puede ser el id otorgado por nosotros o tu \\"reference\\" en el formato ref {reference}" }, { "name" "priority", "kind" "required", "type" "string", "description" "permite configurar la prioridad del medio de pago opciones primary, secondary", "" "permite configurar la prioridad del medio de pago opciones primary, secondary" } ], "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 la entidad para la cual desea realizar la operación " } ], "bodydataparameters" \[], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "et ejmradiyvwqsk3nflp", "code" "{\n\t\\"result\\" true,\n\t\\"data\\" {\n\t\t\\"id\\" \\"7xvd7zvka6lbdilgi3\\",\n\t\t\\"sid\\" \\"7376xdpmmw33mq59ne\\",\n\t\t\\"priority\\" \\"primary\\",\n\t\t\\"status\\" \\"active\\",\n\t\t\\"sourcepriority\\" \\"primary\\",\n\t\t\\"intent\\" {\n\t\t\t\\"token\\" \\"ab5fa79f 2d5f 4c04 a85f bea9db3e4e20\\"\n\t\t}\n\t}\n}", "language" "200" } ], "selectedlanguageid" "et ejmradiyvwqsk3nflp" }, "examples" { "languages" \[ { "id" "9sy1psfwaqts6a3rhq5f ", "language" "curl", "code" "curl location globoff 'https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}/{id}/{sid}/{priority}' \\\\\n header 'accept application/json' \\\\\n header 'content type application/json'", "customlabel" "" }, { "id" "khxxg8x66gmu2 rc4 p2 ", "language" "nodejs", "code" "var request = require('request');\nvar options = {\n 'method' 'get',\n 'url' 'https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}/{id}/{sid}/{priority}',\n 'headers' {\n 'accept' 'application/json',\n 'content type' 'application/json'\n }\n};\nrequest(options, function (error, response) {\n if (error) throw new error(error);\n console log(response body);\n});\n", "customlabel" "" }, { "id" "av03tmh wbeokh1qumcde", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\n\nvar requestoptions = {\n method 'get',\n headers myheaders,\n redirect 'follow'\n};\n\nfetch(\\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}/{id}/{sid}/{priority}\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" }, { "id" "bqsjsyo8czyiumkbpdauf", "language" "python", "code" "import requests\nimport json\n\nurl = \\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}/{id}/{sid}/{priority}\\"\n\npayload = {}\nheaders = {\n 'accept' 'application/json',\n 'content type' 'application/json'\n}\n\nresponse = requests request(\\"get\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "t2bw0x rlvxbsts9ymbbu", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"json\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{priority}}/{id}/{sid}/{priority}\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http get new(url)\nrequest\[\\"accept\\"] = \\"application/json\\"\nrequest\[\\"content type\\"] = \\"application/json\\"\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" } ], "selectedlanguageid" "9sy1psfwaqts6a3rhq5f " }, "description" "esa api permite crear una intención para cambiar el medio de pago de un suscriptor ", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" false, "response" \[ { "name" "intent", "kind" "optional", "type" "object", "description" "intención generada", "children" \[ { "name" "token", "kind" "optional", "type" "string", "description" "token de la intención generada este es el dato importante que debés tomar!" } ] } ] } de este endpoint deberás tomar el token generado dentro de "data" => "intent" => "token" esto será importante para crear tu token de la cuenta bancaria creando un token de tipo cuenta bancaria { "tab" "examples", "url" "https //api mobbex com/p/sources/token/{it}", "name" "generar token de medio de pago", "method" "post", "request" { "pathparameters" \[ { "name" "it", "kind" "required", "type" "string", "description" "token de intención creado y obtenido en el paso anterior ", "" "token de intención creado y obtenido en el paso anterior " } ], "queryparameters" \[], "headerparameters" \[ { "kind" "optional", "name" "api key", "type" "string", "description" "clave pública de la entidad opcional si se llama desde un servidor utilizando x api key + x access token ", "" "clave pública de la entidad opcional si se llama desde un servidor utilizando x api key + x access token " }, { "name" "x api key", "kind" "optional", "type" "string", "description" "clave api de su aplicación obligatorio si se invoca desde el servidor ", "" "clave api de su aplicación obligatorio si se invoca desde el servidor " }, { "name" "x access token", "kind" "optional", "type" "string", "description" "token de acceso a la entidad para la cual desea realizar la operación obligatorio si se invoca desde el servidor ", "" "token de acceso a la entidad para la cual desea realizar la operación obligatorio si se invoca desde el servidor " } ], "bodydataparameters" \[ { "kind" "required", "name" "source", "type" "object", "description" "objeto con los datos del medio de pago a tokenizar", "children" \[ { "name" "bank", "kind" "optional", "type" "object", "description" "objeto de medio de pago de tipo cuenta bancaria o virtual", "children" \[ { "name" "cbu", "kind" "optional", "type" "string", "description" "cbu sólo argentina" }, { "name" "cvu", "kind" "optional", "type" "string", "description" "cvu sólo argentina" }, { "name" "identification", "kind" "required", "type" "string", "description" "identificador del propietario de la cuenta sólo cuil o cuit es válido " } ] }, { "name" "reference", "kind" "required", "type" "string", "description" "valor fijo \\"arg debin\\"" } ], "schema" \[ { "name" "bank", "kind" "optional", "type" "object", "description" "objeto de medio de pago de tipo cuenta bancaria o virtual", "children" \[ { "name" "cbu", "kind" "optional", "type" "string", "description" "cbu sólo argentina" }, { "name" "cvu", "kind" "optional", "type" "string", "description" "cvu sólo argentina" }, { "name" "identification", "kind" "required", "type" "string", "description" "identificador del propietario de la cuenta sólo cuil o cuit es válido " } ] }, { "name" "reference", "kind" "required", "type" "string", "description" "valor fijo \\"arg debin\\"" } ] } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "o orawgydthqczlfg6xcr", "code" "{\n\t\\"result\\" true,\n\t\\"data\\" {\n\t\t\\"token\\" \\"t 8sfz95lok9hdmtamrafkv9\\",\n\t\t\\"description\\" \\"\\",\n\t\t\\"source\\" {\n\t\t\t\\"country\\" \\"arg\\",\n\t\t\t\\"countries\\" \[\n\t\t\t\t\\"arg\\"\n\t\t\t],\n\t\t\t\\"references\\" \[\n\t\t\t\t\\"arg debin\\"\n\t\t\t],\n\t\t\t\\"reference\\" \\"arg debin\\",\n\t\t\t\\"name\\" \\"debin\\",\n\t\t\t\\"shortname\\" \\"debin\\",\n\t\t\t\\"visibility\\" \[\n\t\t\t\t\\"direct\\"\n\t\t\t],\n\t\t\t\\"currency\\" \\"\\",\n\t\t\t\\"type\\" \\"p2p\\",\n\t\t\t\\"priority\\" 0,\n\t\t\t\\"action\\" \\"cashin\\",\n\t\t\t\\"installments\\" {\n\t\t\t\t\\"enabled\\" true,\n\t\t\t\t\\"method\\" \\"\\",\n\t\t\t\t\\"numeric\\" false,\n\t\t\t\t\\"custom\\" \[\n\t\t\t\t\t{\n\t\t\t\t\t\t\\"charges\\" \[],\n\t\t\t\t\t\t\\"count\\" 1,\n\t\t\t\t\t\t\\"countries\\" \[],\n\t\t\t\t\t\t\\"name\\" \\"1 pago\\",\n\t\t\t\t\t\t\\"reference\\" 1\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t\\"childsources\\" {}\n\t\t}\n\t}\n}", "language" "200" } ], "selectedlanguageid" "o orawgydthqczlfg6xcr" }, "examples" { "languages" \[ { "id" "3ragx o4mjdniuv2cc8ub", "language" "curl", "code" "curl location globoff 'https //api mobbex com/p/sources/token/{it}/{it}' \\\\\n header 'accept application/json' \\\\\n header 'content type application/json' \\\\\n data '{\n \\"source\\" {\n \\"bank\\" {\n \\"cbu\\" \\"string\\",\n \\"cvu\\" \\"string\\",\n \\"identification\\" \\"string\\"\n },\n \\"reference\\" \\"arg debin\\"\n }\n}'", "customlabel" "" }, { "id" "xmbftinxadqd17mrmqt6b", "language" "nodejs", "code" "var request = require('request');\nvar options = {\n 'method' 'post',\n 'url' 'https //api mobbex com/p/sources/token/{it}/{it}',\n 'headers' {\n 'accept' 'application/json',\n 'content type' 'application/json'\n },\n body json stringify({\n \\"source\\" {\n \\"bank\\" {\n \\"cbu\\" \\"string\\",\n \\"cvu\\" \\"string\\",\n \\"identification\\" \\"string\\"\n },\n \\"reference\\" \\"arg debin\\"\n }\n })\n\n};\nrequest(options, function (error, response) {\n if (error) throw new error(error);\n console log(response body);\n});\n", "customlabel" "" }, { "id" "e0krovou62beje 6fdzak", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\n\nvar raw = json stringify({\n \\"source\\" {\n \\"bank\\" {\n \\"cbu\\" \\"string\\",\n \\"cvu\\" \\"string\\",\n \\"identification\\" \\"string\\"\n },\n \\"reference\\" \\"arg debin\\"\n }\n});\n\nvar requestoptions = {\n method 'post',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"https //api mobbex com/p/sources/token/{it}/{it}\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" }, { "id" "kn0rvktd7qdmeeu3zfnai", "language" "python", "code" "import requests\nimport json\n\nurl = \\"https //api mobbex com/p/sources/token/{it}/{it}\\"\n\npayload = json dumps({\n \\"source\\" {\n \\"bank\\" {\n \\"cbu\\" \\"string\\",\n \\"cvu\\" \\"string\\",\n \\"identification\\" \\"string\\"\n },\n \\"reference\\" \\"arg debin\\"\n }\n})\nheaders = {\n 'accept' 'application/json',\n 'content type' 'application/json'\n}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "moigmfrgnpeyvx2xnlmpc", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"json\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //api mobbex com/p/sources/token/{it}/{it}\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http post new(url)\nrequest\[\\"accept\\"] = \\"application/json\\"\nrequest\[\\"content type\\"] = \\"application/json\\"\nrequest body = json dump({\n \\"source\\" {\n \\"bank\\" {\n \\"cbu\\" \\"string\\",\n \\"cvu\\" \\"string\\",\n \\"identification\\" \\"string\\"\n },\n \\"reference\\" \\"arg debin\\"\n }\n})\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" } ], "selectedlanguageid" "3ragx o4mjdniuv2cc8ub" }, "description" "a través de esta api se podrá crear el token del medio de pago ", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" } } del resultado de este endpoint debes capturar el token devuelto bajo "data" => "token" cambiando el método de pago con un debin { "tab" "request", "url" "https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source", "name" "asociar debin", "method" "post", "request" { "pathparameters" \[ { "kind" "required", "name" "id", "type" "string", "description" "id de la suscripción" }, { "name" "sid", "kind" "required", "type" "string", "description" "id del suscriptor puede ser el id otorgado por nosotros o tu \\"reference\\" en el formato ref {reference}", "" "id del suscriptor puede ser el id otorgado por nosotros o tu \\"reference\\" en el formato ref {reference}" } ], "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 la entidad para la cual desea realizar la operación " } ], "bodydataparameters" \[ { "name" "token", "kind" "required", "type" "string", "description" "enviar el token de medio de pago obtenido en el paso anterior ", "" "enviar el token de medio de pago obtenido en el paso anterior " } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "et ejmradiyvwqsk3nflp", "code" "{\n\t\\"result\\" true,\n\t\\"data\\" {\n\t\t\\"status\\" \\"success\\",\n\t\t\\"code\\" \\"200\\",\n\t\t\\"text\\" \\"operación exitosa!\\",\n\t\t\\"operation\\" {\n\t\t\t\\"view\\" \\"default\\",\n\t\t\t\\"options\\" {},\n\t\t\t\\"id\\" \\"cgfmhp3vqmxkoajiowpkfx\\",\n\t\t\t\\"status\\" {\n\t\t\t\t\\"code\\" \\"200\\",\n\t\t\t\t\\"text\\" \\"aprobado\\",\n\t\t\t\t\\"message\\" \\"transacción aprobada\\",\n\t\t\t\t\\"data\\" {},\n\t\t\t\t\\"view\\" \\"default\\"\n\t\t\t},\n\t\t\t\\"total\\" 14 27,\n\t\t\t\\"currency\\" {\n\t\t\t\t\\"value\\" \\"ars\\",\n\t\t\t\t\\"label\\" \\"peso argentino\\",\n\t\t\t\t\\"symbol\\" \\"$\\",\n\t\t\t\t\\"locale\\" \\"es ar\\",\n\t\t\t\t\\"isocode\\" \\"032\\",\n\t\t\t\t\\"exponent\\" 2,\n\t\t\t\t\\"hidden\\" false\n\t\t\t},\n\t\t\t\\"data\\" \[],\n\t\t\t\\"actions\\" \[]\n\t\t}\n\t}\n}", "language" "200" } ], "selectedlanguageid" "et ejmradiyvwqsk3nflp" }, "examples" { "languages" \[ { "id" "t o wdzrpqrgyb uah22u", "language" "curl", "code" "curl location globoff 'https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{id}/{sid}' \\\\\n header 'accept application/json' \\\\\n header 'content type application/json' \\\\\n data '{\n \\"token\\" \\"string\\"\n}'", "customlabel" "" }, { "id" "yc12zqkchweyhtsukhyrb", "language" "nodejs", "code" "var request = require('request');\nvar options = {\n 'method' 'post',\n 'url' 'https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{id}/{sid}',\n 'headers' {\n 'accept' 'application/json',\n 'content type' 'application/json'\n },\n body json stringify({\n \\"token\\" \\"string\\"\n })\n\n};\nrequest(options, function (error, response) {\n if (error) throw new error(error);\n console log(response body);\n});\n", "customlabel" "" }, { "id" " m4zmo6xjuevwyysvnaef", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\n\nvar raw = json stringify({\n \\"token\\" \\"string\\"\n});\n\nvar requestoptions = {\n method 'post',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{id}/{sid}\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" }, { "id" "fqfkdkv s5zhtcxsqjug7", "language" "python", "code" "import requests\nimport json\n\nurl = \\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{id}/{sid}\\"\n\npayload = json dumps({\n \\"token\\" \\"string\\"\n})\nheaders = {\n 'accept' 'application/json',\n 'content type' 'application/json'\n}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "tzbjcytugvh2hmlg bkmg", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"json\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //api mobbex com/p/subscriptions/{id}/subscriber/{sid}/source/{id}/{sid}\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http post new(url)\nrequest\[\\"accept\\"] = \\"application/json\\"\nrequest\[\\"content type\\"] = \\"application/json\\"\nrequest body = json dump({\n \\"token\\" \\"string\\"\n})\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" } ], "selectedlanguageid" "t o wdzrpqrgyb uah22u" }, "description" "esa api permite crear una intención para cambiar el medio de pago de un suscriptor ", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" false } si obtenes un status 200 es que la operación fue exitosa y ya tenes tu suscriptor activo via debin con su cuenta bancaria (cbu) o con su cuenta virtual (cvu)