{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/es/products/payments_mexico/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab","split","img"]},"type":"markdown"},"seo":{"title":"Recopilar consentimiento con enlaces de consentimiento","description":"Belvo provides open finance products for Latin America that allow you to securely access and aggregate financial data as well as accept and issue bank-to-bank payments","siteUrl":"https://developers.belvo.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"recopilar-consentimiento-con-enlaces-de-consentimiento","__idx":0},"children":["Recopilar consentimiento con enlaces de consentimiento"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Un enlace de consentimiento te permite recopilar una autorización de débito directo sin necesidad de construir tu propia interfaz de usuario. Creas el enlace con una llamada a la API y envías la URL a tu cliente. Tu cliente lo abre en su navegador, ingresa su CLABE, revisa y acepta la autorización de débito directo, y la firma electrónicamente con un código que Belvo deposita en su cuenta."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando tu cliente termina, Belvo ha creado un método de pago y un consentimiento confirmado para ellos. Son los mismos recursos que de otro modo crearías tú mismo con la ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-direct-api-setup","target":"_blank"},"children":["API de Débito Directo"]},", por lo que puedes enviar solicitudes de pago de inmediato."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["En esta guía, tú:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Crearás un enlace de consentimiento para un cliente existente, con los términos de pago que deben autorizar."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Compartirás el enlace con tu cliente y verás qué hacen en el widget de enlace de consentimiento."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Manejarás la redirección de vuelta a tu aplicación."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Escucharás los webhooks y confirmarás el resultado."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Los enlaces de consentimiento reemplazan dos pasos de la API"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Un enlace de consentimiento reemplaza los pasos de ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Crear un método de pago"]}," y ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Crear un consentimiento"]}," de la guía ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-direct-api-setup","target":"_blank"},"children":["Pagos por Débito Directo vía API"]},". Aún creas el cliente con la API, y aún creas solicitudes de pago con la API."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"requisitos-previos","__idx":1},"children":["Requisitos previos"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Antes de comenzar, asegúrate de:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-authentication-and-environments#api-keys-and-authentication","target":"_blank"},"children":["Generar tus claves API."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/developer_resources/resources-webhooks-payments-mexico","target":"_blank"},"children":["Configurar un webhook para escuchar eventos."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-idempotency-and-whitelisting","target":"_blank"},"children":["Configurar la lista blanca de IPs."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Pedir a tu representante de Belvo que habilite los enlaces de consentimiento para tu cuenta. Los enlaces de consentimiento utilizan la validación de centavos para entregar el código de firma, por lo que el consentimiento de validación de centavos debe estar activo para tu cuenta."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-direct-api-setup#create-a-customer","target":"_blank"},"children":["Crear un cliente"]}," para la persona a la que deseas debitar. El widget muestra el nombre del cliente y un RFC o CURP enmascarado de este registro, así que asegúrate de que los datos sean correctos."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"descripción-general-del-flujo-de-datos","__idx":2},"children":["Descripción general del flujo de datos"]},{"$$mdtype":"Tag","name":"Mermaid","attributes":{"data-language":"mermaid","diagramSource":"sequenceDiagram\n    participant App as Your application\n    participant Customer as Customer\n    participant Widget as Consent link widget\n    participant Belvo as Belvo\n    participant Bank as Customer's bank\n\n    Note over App,Bank: 1. Create the consent link\n    App->>Belvo: POST /consents/links\n    Belvo-->>App: 201 - Created + id + consentLinkUrl\n\n    Note over App,Bank: 2. Share the link\n    App->>Customer: Send consentLinkUrl (SMS, email, WhatsApp, or redirect)\n    Customer->>Widget: Open consentLinkUrl\n\n    Note over App,Bank: 3. Customer completes the widget\n    Widget->>Belvo: Submit CLABE\n    Belvo->>Bank: Send a $0.01 MXN deposit with a code\n    Widget->>Belvo: Accept the authorization\n    Customer->>Widget: Enter the code from the deposit\n    Widget->>Belvo: Verify the code (electronic signature)\n    Belvo-->>Widget: Link completed\n\n    Note over App,Bank: 4. Confirm the result\n    Belvo->>App: WEBHOOK consent_confirmed (consentId, paymentMethodId)\n    Widget->>App: Redirect to callbackUrl?status=completed\n    App->>Belvo: GET /consents/links/{id}\n    Belvo-->>App: 200 + status completed\n","diagramHtml":"<div class=\"mermaid\" data-processed=\"true\"><svg id=\"mermaid-1790773753513\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"max-width: 1745px;\" viewBox=\"-50 -10 1745 1135\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"1495\" y=\"1049\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Bank\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1570\" y=\"1081.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"1570\" dy=\"0\">Customer's bank</tspan></text></g><g><rect x=\"1141\" y=\"1049\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Belvo\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1216\" y=\"1081.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"1216\" dy=\"0\">Belvo</tspan></text></g><g><rect x=\"790\" y=\"1049\" fill=\"#eaeaea\" stroke=\"#666\" width=\"166\" height=\"65\" name=\"Widget\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"873\" y=\"1081.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"873\" dy=\"0\">Consent link widget</tspan></text></g><g><rect x=\"490\" y=\"1049\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Customer\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"565\" y=\"1081.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"565\" dy=\"0\">Customer</tspan></text></g><g><rect x=\"0\" y=\"1049\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"1081.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"75\" dy=\"0\">Your application</tspan></text></g><g><line id=\"actor4\" x1=\"1570\" y1=\"65\" x2=\"1570\" y2=\"1049\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Bank\"></line><g id=\"root-4\"><rect x=\"1495\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Bank\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1570\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"1570\" dy=\"0\">Customer's bank</tspan></text></g></g><g><line id=\"actor3\" x1=\"1216\" y1=\"65\" x2=\"1216\" y2=\"1049\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Belvo\"></line><g id=\"root-3\"><rect x=\"1141\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Belvo\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1216\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"1216\" dy=\"0\">Belvo</tspan></text></g></g><g><line id=\"actor2\" x1=\"873\" y1=\"65\" x2=\"873\" y2=\"1049\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Widget\"></line><g id=\"root-2\"><rect x=\"790\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"166\" height=\"65\" name=\"Widget\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"873\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"873\" dy=\"0\">Consent link widget</tspan></text></g></g><g><line id=\"actor1\" x1=\"565\" y1=\"65\" x2=\"565\" y2=\"1049\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Customer\"></line><g id=\"root-1\"><rect x=\"490\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Customer\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"565\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"565\" dy=\"0\">Customer</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"1049\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"App\"></line><g id=\"root-0\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400;\"><tspan x=\"75\" dy=\"0\">Your application</tspan></text></g></g><style>#mermaid-1790773753513{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-1790773753513 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-1790773753513 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-1790773753513 .error-icon{fill:#552222;}#mermaid-1790773753513 .error-text{fill:#552222;stroke:#552222;}#mermaid-1790773753513 .edge-thickness-normal{stroke-width:1px;}#mermaid-1790773753513 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1790773753513 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1790773753513 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-1790773753513 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1790773753513 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1790773753513 .marker{fill:#333333;stroke:#333333;}#mermaid-1790773753513 .marker.cross{stroke:#333333;}#mermaid-1790773753513 svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-1790773753513 p{margin:0;}#mermaid-1790773753513 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-1790773753513 text.actor&gt;tspan{fill:black;stroke:none;}#mermaid-1790773753513 .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-1790773753513 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-1790773753513 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1790773753513 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1790773753513 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1790773753513 .sequenceNumber{fill:white;}#mermaid-1790773753513 #sequencenumber{fill:#333;}#mermaid-1790773753513 #crosshead path{fill:#333;stroke:#333;}#mermaid-1790773753513 .messageText{fill:#333;stroke:none;}#mermaid-1790773753513 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-1790773753513 .labelText,#mermaid-1790773753513 .labelText&gt;tspan{fill:black;stroke:none;}#mermaid-1790773753513 .loopText,#mermaid-1790773753513 .loopText&gt;tspan{fill:black;stroke:none;}#mermaid-1790773753513 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-1790773753513 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1790773753513 .noteText,#mermaid-1790773753513 .noteText&gt;tspan{fill:black;stroke:none;}#mermaid-1790773753513 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1790773753513 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1790773753513 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1790773753513 .actorPopupMenu{position:absolute;}#mermaid-1790773753513 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-1790773753513 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-1790773753513 .actor-man circle,#mermaid-1790773753513 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-1790773753513 :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}</style><g></g><defs><symbol id=\"computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><g><rect x=\"50\" y=\"75\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1545\" height=\"42\" class=\"note\"></rect><text x=\"823\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\"><tspan x=\"823\">1. Create the consent link</tspan></text></g><g><rect x=\"50\" y=\"235\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1545\" height=\"42\" class=\"note\"></rect><text x=\"823\" y=\"240\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\"><tspan x=\"823\">2. Share the link</tspan></text></g><g><rect x=\"50\" y=\"395\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1545\" height=\"42\" class=\"note\"></rect><text x=\"823\" y=\"400\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\"><tspan x=\"823\">3. Customer completes the widget</tspan></text></g><g><rect x=\"50\" y=\"771\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1545\" height=\"42\" class=\"note\"></rect><text x=\"823\" y=\"776\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\"><tspan x=\"823\">4. Confirm the result</tspan></text></g><text x=\"644\" y=\"132\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">POST /consents/links</text><line x1=\"76\" y1=\"171\" x2=\"1212\" y2=\"171\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"647\" y=\"186\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">201 - Created + id + consentLinkUrl</text><line x1=\"1215\" y1=\"225\" x2=\"79\" y2=\"225\" class=\"messageLine1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"319\" y=\"292\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Send consentLinkUrl (SMS, email, WhatsApp, or redirect)</text><line x1=\"76\" y1=\"331\" x2=\"561\" y2=\"331\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"718\" y=\"346\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Open consentLinkUrl</text><line x1=\"566\" y1=\"385\" x2=\"869\" y2=\"385\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"1043\" y=\"452\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Submit CLABE</text><line x1=\"874\" y1=\"491\" x2=\"1212\" y2=\"491\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"1392\" y=\"506\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Send a $0.01 MXN deposit with a code</text><line x1=\"1217\" y1=\"545\" x2=\"1566\" y2=\"545\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"1043\" y=\"560\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Accept the authorization</text><line x1=\"874\" y1=\"599\" x2=\"1212\" y2=\"599\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"718\" y=\"614\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Enter the code from the deposit</text><line x1=\"566\" y1=\"653\" x2=\"869\" y2=\"653\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"1043\" y=\"668\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Verify the code (electronic signature)</text><line x1=\"874\" y1=\"707\" x2=\"1212\" y2=\"707\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"1046\" y=\"722\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Link completed</text><line x1=\"1215\" y1=\"761\" x2=\"877\" y2=\"761\" class=\"messageLine1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"647\" y=\"828\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">WEBHOOK consent_confirmed (consentId, paymentMethodId)</text><line x1=\"1215\" y1=\"867\" x2=\"79\" y2=\"867\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"476\" y=\"882\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">Redirect to callbackUrl?status=completed</text><line x1=\"872\" y1=\"921\" x2=\"79\" y2=\"921\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"644\" y=\"936\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">GET /consents/links/{id}</text><line x1=\"76\" y1=\"975\" x2=\"1212\" y2=\"975\" class=\"messageLine0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"fill: none;\"></line><text x=\"647\" y=\"990\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-size: 16px; font-weight: 400;\">200 + status completed</text><line x1=\"1215\" y1=\"1029\" x2=\"79\" y2=\"1029\" class=\"messageLine1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line></svg></div>"},"children":["sequenceDiagram\n    participant App as Your application\n    participant Customer as Customer\n    participant Widget as Consent link widget\n    participant Belvo as Belvo\n    participant Bank as Customer's bank\n\n    Note over App,Bank: 1. Create the consent link\n    App->>Belvo: POST /consents/links\n    Belvo-->>App: 201 - Created + id + consentLinkUrl\n\n    Note over App,Bank: 2. Share the link\n    App->>Customer: Send consentLinkUrl (SMS, email, WhatsApp, or redirect)\n    Customer->>Widget: Open consentLinkUrl\n\n    Note over App,Bank: 3. Customer completes the widget\n    Widget->>Belvo: Submit CLABE\n    Belvo->>Bank: Send a $0.01 MXN deposit with a code\n    Widget->>Belvo: Accept the authorization\n    Customer->>Widget: Enter the code from the deposit\n    Widget->>Belvo: Verify the code (electronic signature)\n    Belvo-->>Widget: Link completed\n\n    Note over App,Bank: 4. Confirm the result\n    Belvo->>App: WEBHOOK consent_confirmed (consentId, paymentMethodId)\n    Widget->>App: Redirect to callbackUrl?status=completed\n    App->>Belvo: GET /consents/links/{id}\n    Belvo-->>App: 200 + status completed\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"crear-un-enlace-de-consentimiento","__idx":3},"children":["Crear un enlace de consentimiento"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para crear un enlace de consentimiento, realiza una llamada ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /consents/links"]}," con el ID del cliente y los términos de pago que deben autorizar."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Sandbox","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"curl","data-title":"Crear una Solicitud de Enlace de Consentimiento (Sandbox)","header":{"title":"Crear una Solicitud de Enlace de Consentimiento (Sandbox)","controls":{"copy":{}}},"source":"curl -i -X POST \\\n  'https://api.sandbox.directdebit.belvo.com/consents/links' \\\n  -H 'Content-Type: application/json' \\\n  -H 'api-key-id: YOUR_API_KEY_ID' \\\n  -H 'api-key-secret: YOUR_API_KEY_SECRET' \\\n  -d '{\n    \"customerId\": \"0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c\",\n    \"expiresIn\": 72,\n    \"callbackUrl\": \"https://www.your-app.com/direct-debit/return\",\n    \"terms\": {\n      \"chargeType\": \"RECURRING\",\n      \"chargeAmount\": 420.00,\n      \"paymentFrequency\": \"MONTHLY\",\n      \"serviceOrCreditDescription\": \"Préstamo personal\",\n      \"termDescription\": \"12 meses\",\n      \"interestRate\": \"1,0% mensual\",\n      \"numberOfCharges\": 12,\n      \"firstChargeDate\": \"2026-11-10\",\n      \"isPayrollLinked\": false\n    }\n  }'\n","lang":"curl"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Producción","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"curl","data-title":"Crear una Solicitud de Enlace de Consentimiento (Producción)","header":{"title":"Crear una Solicitud de Enlace de Consentimiento (Producción)","controls":{"copy":{}}},"source":"curl -i -X POST \\\n  'https://api.directdebit.belvo.com/consents/links' \\\n  -H 'Content-Type: application/json' \\\n  -H 'api-key-id: YOUR_API_KEY_ID' \\\n  -H 'api-key-secret: YOUR_API_KEY_SECRET' \\\n  -d '{\n    \"customerId\": \"0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c\",\n    \"expiresIn\": 72,\n    \"callbackUrl\": \"https://www.your-app.com/direct-debit/return\",\n    \"terms\": {\n      \"chargeType\": \"RECURRING\",\n      \"chargeAmount\": 420.00,\n      \"paymentFrequency\": \"MONTHLY\",\n      \"serviceOrCreditDescription\": \"Préstamo personal\",\n      \"termDescription\": \"12 meses\",\n      \"interestRate\": \"1,0% mensual\",\n      \"numberOfCharges\": 12,\n      \"firstChargeDate\": \"2026-11-10\",\n      \"isPayrollLinked\": false\n    }\n  }'\n","lang":"curl"},"children":[]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"width":"20%","data-label":"Parámetro"},"children":["Parámetro "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tipo"},"children":["Tipo"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Requerido"},"children":["Requerido"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (UUID)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["true"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}," del cliente que debe autorizar el débito directo. El cliente debe pertenecer a tu cuenta."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["terms"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["false"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Los términos de pago que tu cliente revisa y autoriza en el widget. Para más detalles, consulta la tabla ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#terms-object"},"children":["Objeto Terms"]}," a continuación."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiresIn"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["false"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El número de horas hasta que el enlace expire. Mínimo ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},", máximo ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["720"]}," (30 días). Por defecto: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["72"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["false"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La URL a la que el widget redirige a tu cliente cuando termina o abandona el flujo. Belvo añade el resultado como parámetros de consulta. La URL debe usar ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https"]},", no debe contener credenciales y puede tener un máximo de 2048 caracteres. Solo puedes establecerla cuando creas el enlace. Para más detalles, consulta ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#handle-the-redirect-to-your-callback-url"},"children":["Manejar la redirección a tu URL de callback"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"objeto-de-términos","__idx":4},"children":["Objeto de términos"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Todos los términos son opcionales. El widget solo muestra los términos que envías, así que envía cada término que aplique al acuerdo con tu cliente."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Envía valores sin formato, no texto formateado"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Envía ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeAmount"]}," como un número JSON (por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["420.00"]},"), no como una cadena. Belvo rechaza valores preformateados como ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"$420.00 MXN\""]}," o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"420.00\""]},". El monto siempre está en pesos mexicanos (MXN), y Belvo lo formatea para tu cliente."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Envía ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeType"]}," y ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentFrequency"]}," en mayúsculas (por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RECURRING"]}," y ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MONTHLY"]},"). Belvo rechaza valores en minúsculas."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"width":"22%","data-label":"Parámetro"},"children":["Parámetro "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tipo"},"children":["Tipo"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeType"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["string (enum)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El tipo de cargo que tu cliente autoriza. Puede ser uno de:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RECURRING"]},": Cargos que se repiten en un horario, como cuotas de préstamos o suscripciones."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SINGLE"]},": Un solo cargo."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SINGLE"]},", el widget etiqueta el monto y la fecha como un cargo único (\"Monto de cargo (cargo único)\" y \"Fecha del cargo\")."]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeAmount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["number"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El monto de cada cargo, en MXN. Debe ser al menos ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},". Belvo lo redondea a dos decimales. Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1234.5"]}," se muestra a tu cliente como \"$1,234.50 MXN\"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentFrequency"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (enum)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Con qué frecuencia cobras a tu cliente. Puede ser uno de: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MONTHLY"]}," (mostrado como \"Mensual\"), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BIWEEKLY"]}," (mostrado como \"Quincenal\"), o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WEEKLY"]}," (mostrado como \"Semanal\")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["serviceOrCreditDescription"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Una descripción del servicio o crédito, en español. Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Préstamo personal"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["termDescription"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Una descripción del plazo del acuerdo, en español. Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["12 meses"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["interestRate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La tasa de interés, formateada como deseas que tu cliente la lea. Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1,0% mensual"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["numberOfCharges"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El número total de cargos. Debe ser al menos ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["firstChargeDate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La fecha del primer cargo, en formato ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["YYYY-MM-DD"]},". Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2026-11-10"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isPayrollLinked"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Indica si el crédito está vinculado a la nómina de tu cliente."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Permite que tu cliente revise el contrato completo"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente solo puede abrir el contrato completo de domiciliación (",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Revisar contrato de domiciliación"]},") cuando el enlace tiene un ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeAmount"]},", y también un ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentFrequency"]}," para cargos ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RECURRING"]},". Asegúrate de enviar estos términos."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Recibirás la siguiente respuesta de nuestra API. Asegúrate de guardar el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," para verificar el estado del enlace más tarde, y envía el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentLinkUrl"]}," a tu cliente."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Create a Consent Link Response Body","header":{"title":"Create a Consent Link Response Body","controls":{"copy":{}}},"source":"{\n  \"id\": \"b8e1c2f4-5a6d-4e7f-8a9b-0c1d2e3f4a5b\", // [!code highlight]\n  \"consentLinkUrl\": \"https://portal.sandbox.directdebit.belvo.com/consent.html?token=aB3dE6fG9hJ2kL5mN8pQ1rS4\", // [!code highlight]\n  \"status\": \"active\",\n  \"step\": \"bank_account\",\n  \"customerId\": \"0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c\",\n  \"terms\": {\n    \"chargeType\": \"RECURRING\",\n    \"chargeAmount\": 420,\n    \"paymentFrequency\": \"MONTHLY\",\n    \"serviceOrCreditDescription\": \"Préstamo personal\",\n    \"termDescription\": \"12 meses\",\n    \"interestRate\": \"1,0% mensual\",\n    \"numberOfCharges\": 12,\n    \"firstChargeDate\": \"2026-11-10\",\n    \"isPayrollLinked\": false\n  },\n  \"expiresAt\": \"2026-10-03T15:00:00.000Z\",\n  \"callbackUrl\": \"https://www.your-app.com/direct-debit/return\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"width":"20%","data-label":"Parámetro"},"children":["Parámetro "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tipo"},"children":["Tipo"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (UUID)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El ID de Belvo del enlace de consentimiento."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentLinkUrl"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La URL que envías a tu cliente."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El estado del enlace. Para los valores posibles, consulta ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#consent-link-statuses"},"children":["Estados del enlace de consentimiento"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["step"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La pantalla en la que se encuentra tu cliente mientras el enlace está ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["active"]},". Para los valores posibles, consulta ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#consent-link-steps"},"children":["Pasos del enlace de consentimiento"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (UUID)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}," al que pertenece el enlace."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["terms"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Los términos, exactamente como los enviaste."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiresAt"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La marca de tiempo ISO-8601 cuando el enlace expira."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completedAt"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La marca de tiempo ISO-8601 cuando tu cliente completó el enlace. Solo presente para enlaces ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La URL de callback, si configuraste una."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"comparte-el-enlace-con-tu-cliente","__idx":5},"children":["Comparte el enlace con tu cliente"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Envía el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentLinkUrl"]}," a tu cliente por SMS, correo electrónico o WhatsApp, o redirígelo desde tu aplicación. El widget funciona en cualquier navegador móvil o de escritorio, está en español y no requiere que tu cliente inicie sesión."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Trata el enlace como un secreto"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cualquiera con el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentLinkUrl"]}," puede abrir el widget para tu cliente. Solo envíalo a tu cliente y no lo registres ni lo añadas a herramientas de análisis. Si crees que un enlace fue compartido con la persona equivocada, revócalo y crea uno nuevo. Consulta ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#manage-consent-links"},"children":["Gestionar enlaces de consentimiento"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"lo-que-ve-tu-cliente","__idx":6},"children":["Lo que ve tu cliente"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente pasa por las siguientes pantallas. El widget guarda su progreso, por lo que si cierra la página y vuelve a abrir el enlace antes de que expire, continuará en la misma pantalla."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-bienvenido","__idx":7},"children":["1. Bienvenido"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["La pantalla de bienvenida explica cómo funciona el proceso:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tu cliente confirma y revisa el débito directo."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Belvo deposita $0.01 MXN en su cuenta, con un código."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tu cliente ingresa el código para autorizar el débito directo."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para continuar, tu cliente debe aceptar los Términos y Condiciones y el Aviso de Privacidad de Belvo."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Si configuras un ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]},", una flecha de retroceso permite a tu cliente salir del flujo. Belvo los redirige a tu ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status=cancelled&error=user_cancelled"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-welcome.a498caa25266e37c64e65d0fc0d10dab1806499c37b62529baab42104292239e.9c1bb791.png","alt":"Pantalla de bienvenida del enlace de consentimiento","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-confirmar-datos-personales-y-clabe","__idx":8},"children":["2. Confirmar datos personales y CLABE"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El widget muestra el nombre completo de tu cliente y el RFC o CURP enmascarado del registro del cliente. Tu cliente no puede editar estos valores."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente ingresa su CLABE de 18 dígitos. El widget verifica que la CLABE sea válida, y Belvo identifica el banco a partir de ella. La cuenta debe estar a nombre de tu cliente. Los enlaces de consentimiento solo aceptan cuentas CLABE, no tarjetas de débito."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando tu cliente toca ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Continuar"]},", Belvo crea el método de pago y envía inmediatamente el depósito de $0.01 MXN con el código."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Si el nombre o ID es incorrecto, tu cliente puede tocar ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No soy yo"]}," y luego ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Salir sin autorizar"]},". Belvo los redirige a tu ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status=cancelled&error=customer_data_mismatch"]},". Corrige los datos del cliente y crea un nuevo enlace."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-bank-account.f030a3f117d425f25a7c9cbdc5c3e215b50aa5413a6afad8074a233063da2caa.9c1bb791.png","alt":"Pantalla de datos personales y CLABE del enlace de consentimiento","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-revisa-y-acepta-la-autorización","__idx":9},"children":["3. Revisa y acepta la autorización"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El widget muestra un resumen de los términos que enviaste, junto con el número de cuenta enmascarado, el banco y el nombre de tu empresa como beneficiario. También informa a tu cliente que hoy no se cobra nada."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para cargos ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RECURRING"]},", el título dice \"Revisa y autoriza tus cargos recurrentes\". Para cargos ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SINGLE"]},", dice \"Revisa y autoriza tu cargo único\". El resumen solo tiene una fila por cada término que enviaste."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando tu cliente toca ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Continuar"]},", acepta la autorización. Belvo sella el documento de autorización y lo almacena como el archivo ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract"]}," del consentimiento."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-authorization-recurring.2053a4ae05b067b9f5ee136cfa6b83f9d4c44ff8ba6e61a15d9a2753b960ef18.9c1bb791.png","alt":"Resumen de autorización para cargos recurrentes","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cargo único"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Este enlace de ejemplo tiene ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"chargeType\": \"SINGLE\""]}," y solo envía ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeAmount"]}," y ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["firstChargeDate"]},", por lo que el resumen muestra el monto, la fecha del cargo, la cuenta y el beneficiario."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-authorization-single.71112f12c40d26d7998ff190e161585d6d0551ee40ffb1c5af5a6a481cb7b849.9c1bb791.png","alt":"Resumen de autorización para un cargo único","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Revisión del contrato"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Con ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Revisar contrato de domiciliación"]},", tu cliente lee el contrato completo de domiciliación, rellenado con sus datos y tus términos, y puede descargar una copia en PDF antes de aceptar."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-authorization-contract.d6d6369567ac112285d1c03dc6f9a761beabf2d7a58b457ade0fa4e3a59b12fb.9c1bb791.png","alt":"Revisión del contrato de domiciliación","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-espera-el-depósito","__idx":10},"children":["4. Espera el depósito"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Si el depósito aún no ha llegado, el widget le indica a tu cliente que busque un depósito de $0.01 MXN en su aplicación bancaria. El código está en la descripción de la transacción."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El widget verifica automáticamente el depósito y pasa a la siguiente pantalla cuando llega. Si el depósito ya llegó mientras tu cliente revisaba la autorización, el widget omite esta pantalla."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-awaiting-deposit.1d5b2164768bee49048c5f07335b66b44d28f585eb6d1b63fa7341229c23e237.9c1bb791.png","alt":"Esperando el depósito de verificación","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"5-ingresar-el-código-y-autorizar","__idx":11},"children":["5. Ingresar el código y autorizar"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente ingresa el código de 6 dígitos de la descripción del depósito y toca ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Autorizar"]},". Ingresar el código es la firma electrónica de autorización de tu cliente."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente tiene 3 intentos para ingresar el código correcto. Si no pueden encontrar el depósito, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No recibí el depósito"]}," explica dónde encontrar el código. Si tu cliente ingresó la CLABE incorrecta, el depósito nunca llega. Pueden finalizar el flujo desde el mismo diálogo, y necesitas crear un nuevo enlace para ellos."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-verification.b2d6c3fe5b2551a194cda1ce1ccb3be493fdad267090a6effce172ffaf92dbde.9c1bb791.png","alt":"Pantalla de código de verificación","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"6-autorización-confirmada","__idx":12},"children":["6. Autorización confirmada"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando el código es correcto, el consentimiento se confirma y el enlace se marca como ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]},". El widget muestra un resumen de los términos autorizados."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando tu cliente toca ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cerrar"]},", Belvo los redirige a tu ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status=completed"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-success.2a425bda7fb9eb6cbb2ccfdf38d3494538e05b52e7150c435aaaf023ffe8e649.9c1bb791.png","alt":"Pantalla de autorización confirmada","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contrato firmado"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Con ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contrato de domiciliación"]},", tu cliente ve la evidencia de la firma electrónica: la fecha y hora de la firma (hora de Ciudad de México), el folio de la firma, el dispositivo, una dirección IP enmascarada y los detalles del depósito de verificación. También pueden descargar el contrato firmado como un PDF."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-signed-contract.462c6902f898a68d9a0d1b28ebd5ddac8e3c2a66b351b6ce5c67e1a4a125cec1.9c1bb791.png","alt":"Contrato firmado con detalles de firma electrónica","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pantallas-de-error","__idx":13},"children":["Pantallas de error"]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enlace no disponible"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El widget muestra esta pantalla cuando el enlace ha expirado, ha sido revocado, ya se ha completado, ha fallado o es inválido. Por razones de seguridad, el widget muestra el mismo mensaje en cada caso. Se le pide a tu cliente que solicite un nuevo enlace de tu parte."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-unavailable.496bac1d344d298a9ad21c88e71adcdf690cd640b086f1ddba9e9f7c7e0a484e.9c1bb791.png","alt":"Pantalla de enlace no disponible","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Autorización fallida"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["El widget muestra esta pantalla cuando Belvo no puede completar una acción mientras tu cliente está en el flujo, por ejemplo, cuando la validación de la cuenta falla después de que han enviado su CLABE. La pantalla incluye un ID que tu cliente puede compartir con el soporte de Belvo en cobros@belvo.com."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/mx-pay-dd-consent-link-failure.c26eeb35840d9f15d1c383fb5bd882c2053243c3b1842261f23103fbf047a5e6.9c1bb791.png","alt":"Pantalla de autorización fallida","withLightbox":false,"width":"75%"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"manejar-la-redirección-a-tu-url-de-callback","__idx":14},"children":["Manejar la redirección a tu URL de callback"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Si configuras un ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]},", Belvo redirige a tu cliente a esta cuando terminan o abandonan el flujo. Belvo mantiene cualquier parámetro de consulta que tu URL ya tenga y añade los siguientes:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"status"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"error"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Cuándo"},"children":["Cuándo"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No presente"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente autorizó el débito directo y tocó ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cerrar"]}," en la pantalla de confirmación."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cancelled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user_cancelled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente salió desde la pantalla de bienvenida."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cancelled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_data_mismatch"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente indicó que el nombre o ID en el widget no es el suyo."]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","data-title":"Ejemplo de redirección","header":{"title":"Ejemplo de redirección","controls":{"copy":{}}},"source":"https://www.your-app.com/direct-debit/return?status=completed\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["La redirección nunca incluye el token de enlace ni ningún dato del cliente."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"No confíes solo en la redirección"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Usa la redirección para actualizar tu interfaz de usuario, pero siempre confirma el resultado con la API o webhooks antes de crear solicitudes de pago. Cualquiera puede abrir tu URL de callback con cualquier parámetro, y tu cliente puede cerrar la página sin ser redirigido. Además, ignora cualquier valor de parámetro que no reconozcas, ya que podríamos añadir nuevos."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"escuchar-webhooks-y-confirmar-el-resultado","__idx":15},"children":["Escuchar webhooks y confirmar el resultado"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Un enlace de consentimiento crea un método de pago regular y un consentimiento, por lo que recibes los mismos webhooks que en el flujo de ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-direct-api-setup","target":"_blank"},"children":["Pagos por Débito Directo vía API"]},":"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consent_update"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consent_confirmed"]},": Tu cliente ingresó el código correcto y el consentimiento está confirmado. El campo ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.id"]}," es el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentId"]}," y ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.paymentMethodId"]}," es el método de pago que el enlace creó."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payment_method_update"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payment_method_registration_successful"]}," o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payment_method_registration_failed"]},": El resultado de la validación de la cuenta. Los métodos de pago creados por un enlace de consentimiento tienen ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ConsentLink"]}," como su ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reference"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para ver los payloads completos de los webhooks, consulta nuestra documentación de ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/developer_resources/resources-webhooks-payments-mexico","target":"_blank"},"children":["Webhooks de Pagos (México)"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para verificar el estado del enlace en cualquier momento, realiza una llamada ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /consents/links/{id}"]},". Un estado ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}," significa que tu cliente terminó el flujo."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Sandbox","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"curl","data-title":"Get a Consent Link Request (Sandbox)","header":{"title":"Get a Consent Link Request (Sandbox)","controls":{"copy":{}}},"source":"curl -i -X GET \\\n  'https://api.sandbox.directdebit.belvo.com/consents/links/{id}' \\\n  -H 'api-key-id: YOUR_API_KEY_ID' \\\n  -H 'api-key-secret: YOUR_API_KEY_SECRET'\n","lang":"curl"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Producción","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"curl","data-title":"Get a Consent Link Request (Production)","header":{"title":"Get a Consent Link Request (Production)","controls":{"copy":{}}},"source":"curl -i -X GET \\\n  'https://api.directdebit.belvo.com/consents/links/{id}' \\\n  -H 'api-key-id: YOUR_API_KEY_ID' \\\n  -H 'api-key-secret: YOUR_API_KEY_SECRET'\n","lang":"curl"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Para identificar el método de pago que el enlace creó, utiliza el valor ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.paymentMethodId"]}," del webhook ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consent_confirmed"]},". No lo busques solo por ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_id"]},", ya que tu cliente puede tener más de un método de pago. Para confirmar a qué cliente pertenece el método de pago, realiza una llamada ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/apis/belvopaymentsmexico/payment-methods-(direct-debit-mexico)/detaildirectdebitpaymentmethod","target":"_blank"},"children":["GET para obtener los detalles de un método de pago"]}," y compara su ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer"]}," con el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}," del enlace. Esto solo confirma el cliente: si creaste más de un enlace de consentimiento para el mismo cliente, no te dice qué enlace creó el método de pago."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"¡Hecho!"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tu cliente ha autorizado el débito directo, y tienes un método de pago con un consentimiento confirmado. Ahora puedes ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-direct-api-setup#create-a-payment-request","target":"_blank"},"children":["crear solicitudes de pago"]}," para este cliente."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"probar-enlaces-de-consentimiento-en-sandbox","__idx":16},"children":["Probar enlaces de consentimiento en Sandbox"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["En Sandbox, Belvo no envía un depósito real de $0.01 MXN, por lo que no puedes leer un código de un estado de cuenta bancario. En su lugar, controlas el resultado del flujo con la CLABE y el código que tu tester ingresa en el widget. Usa el ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentLinkUrl"]}," que obtienes de la ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/es/products/payments_mexico/direct-debit-authentication-and-environments#sandbox","target":"_blank"},"children":["API de Sandbox"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"elige-el-resultado-de-validación-de-cuenta","__idx":17},"children":["Elige el resultado de validación de cuenta"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ingresa una de las siguientes CLABEs en la pantalla de datos personales y CLABE:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"width":"25%","data-label":"CLABE"},"children":["CLABE "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Resultado"},"children":["Resultado"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["012180000000000015"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La validación de la cuenta falla. El método de pago es ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed"]},", el estado del enlace cambia a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed"]},", y el widget muestra una pantalla de error. Para más detalles, consulta ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#error-screens"},"children":["Pantallas de error"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["012180000000000028"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El depósito nunca llega. El método de pago permanece en ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pending_validation"]},", y el enlace se mantiene en el paso ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["awaiting_deposit"]}," hasta que expira. Úsalo para probar la pantalla de espera."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cualquier otra CLABE válida"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El depósito llega inmediatamente. El enlace avanza al paso de ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification"]}," tan pronto como tu evaluador acepta la autorización, y el widget omite la pantalla de espera."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Los métodos de pago que creas con estas CLABEs usan ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed"]}," o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pending"]}," como su ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reference"]}," en lugar de ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ConsentLink"]},". Las CLABEs mágicas solo funcionan en Sandbox. En Producción, Belvo las trata como cualquier otra CLABE."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ingresa-el-código-de-verificación","__idx":18},"children":["Ingresa el código de verificación"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["En Sandbox, el código de verificación siempre es ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["123456"]},". Ingresa cualquier otro código para probar el mensaje de código incorrecto. Tu evaluador tiene 3 intentos para ingresar el código correcto."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"probar-otros-estados-de-enlaces","__idx":19},"children":["Probar otros estados de enlaces"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Expirado:"]}," crea un enlace con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"expiresIn\": 1"]}," y ábrelo después de una hora."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Revocado:"]}," realiza una llamada ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /consents/links/{id}/revoke"]},", y luego abre el enlace."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"referencia-de-enlace-de-consentimiento","__idx":20},"children":["Referencia de enlace de consentimiento"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"estados-de-los-enlaces-de-consentimiento","__idx":21},"children":["Estados de los enlaces de consentimiento"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Estado"},"children":["Estado"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["active"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El enlace puede ser utilizado. Verifica ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["step"]}," para ver en qué pantalla se encuentra tu cliente."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente autorizó el débito directo. El consentimiento está confirmado."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El enlace alcanzó su fecha de ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiresAt"]}," antes de que tu cliente lo completara."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["revoked"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Revocaste el enlace."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["La validación de la cuenta falló, por ejemplo, porque el titular de la cuenta no coincide con el cliente. Crea un nuevo enlace para que tu cliente pueda intentarlo de nuevo con una cuenta diferente."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Solo los enlaces ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["active"]}," pueden ser abiertos. Para cualquier otro estado, el widget muestra la pantalla de ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enlace no disponible"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pasos-del-enlace-de-consentimiento","__idx":22},"children":["Pasos del enlace de consentimiento"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Paso"},"children":["Paso"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bank_account"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente aún no ha enviado su CLABE."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authorization"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente envió su CLABE y está revisando la autorización."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["awaiting_deposit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tu cliente aceptó la autorización y está esperando el depósito de $0.01 MXN."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El depósito llegó y tu cliente debe ingresar el código."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cuando un enlace está ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["step"]}," mantiene el último paso en el que estaba tu cliente. Siempre verifica ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," primero."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"administrar-enlaces-de-consentimiento","__idx":23},"children":["Administrar enlaces de consentimiento"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Solicitud"},"children":["Solicitud"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /consents/links"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Lista tus enlaces de consentimiento, paginados. Soporta los parámetros de consulta ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," y ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /consents/links/{id}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Obtiene los detalles de un enlace de consentimiento."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /consents/links/{id}/revoke"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Revoca un enlace de consentimiento. El enlace ya no se puede abrir. Revocar un enlace no cambia un método de pago o consentimiento que el enlace ya haya creado."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"errores","__idx":24},"children":["Errores"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Estado HTTP"},"children":["Estado HTTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descripción"},"children":["Descripción"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El cuerpo de la solicitud es inválido. Por ejemplo, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeAmount"]}," es una cadena o es menor que ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargeType"]}," está en minúsculas, o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callbackUrl"]}," no utiliza ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["El cliente o el enlace de consentimiento no existe o no pertenece a tu cuenta."]}]}]}]}]}]},"headings":[{"value":"Recopilar consentimiento con enlaces de consentimiento","id":"recopilar-consentimiento-con-enlaces-de-consentimiento","depth":1},{"value":"Requisitos previos","id":"requisitos-previos","depth":2},{"value":"Descripción general del flujo de datos","id":"descripción-general-del-flujo-de-datos","depth":2},{"value":"Crear un enlace de consentimiento","id":"crear-un-enlace-de-consentimiento","depth":2},{"value":"Objeto de términos","id":"objeto-de-términos","depth":3},{"value":"Comparte el enlace con tu cliente","id":"comparte-el-enlace-con-tu-cliente","depth":2},{"value":"Lo que ve tu cliente","id":"lo-que-ve-tu-cliente","depth":2},{"value":"1. Bienvenido","id":"1-bienvenido","depth":3},{"value":"2. Confirmar datos personales y CLABE","id":"2-confirmar-datos-personales-y-clabe","depth":3},{"value":"3. Revisa y acepta la autorización","id":"3-revisa-y-acepta-la-autorización","depth":3},{"value":"4. Espera el depósito","id":"4-espera-el-depósito","depth":3},{"value":"5. Ingresar el código y autorizar","id":"5-ingresar-el-código-y-autorizar","depth":3},{"value":"6. Autorización confirmada","id":"6-autorización-confirmada","depth":3},{"value":"Pantallas de error","id":"pantallas-de-error","depth":3},{"value":"Manejar la redirección a tu URL de callback","id":"manejar-la-redirección-a-tu-url-de-callback","depth":2},{"value":"Escuchar webhooks y confirmar el resultado","id":"escuchar-webhooks-y-confirmar-el-resultado","depth":2},{"value":"Probar enlaces de consentimiento en Sandbox","id":"probar-enlaces-de-consentimiento-en-sandbox","depth":2},{"value":"Elige el resultado de validación de cuenta","id":"elige-el-resultado-de-validación-de-cuenta","depth":3},{"value":"Ingresa el código de verificación","id":"ingresa-el-código-de-verificación","depth":3},{"value":"Probar otros estados de enlaces","id":"probar-otros-estados-de-enlaces","depth":3},{"value":"Referencia de enlace de consentimiento","id":"referencia-de-enlace-de-consentimiento","depth":2},{"value":"Estados de los enlaces de consentimiento","id":"estados-de-los-enlaces-de-consentimiento","depth":3},{"value":"Pasos del enlace de consentimiento","id":"pasos-del-enlace-de-consentimiento","depth":3},{"value":"Administrar enlaces de consentimiento","id":"administrar-enlaces-de-consentimiento","depth":3},{"value":"Errores","id":"errores","depth":3}],"frontmatter":{"seo":{"title":"Recopilar consentimiento con enlaces de consentimiento"}},"lastModified":"2026-10-08T16:03:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/es/products/payments_mexico/direct-debit-consent-links","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}