Conoce cómo escribir el código para manejar las notificaciones al webhook.
Para agregar webhooks a tu integración debes crear un endpoint para exponerlo en internet a través de una URL (por ejemplo, https://myproduct.com/webhooks). Crear un endpoint de webhook en tu servidor no es tan diferente a crear cualquier página en su sitio web o aplicación. Puede estar escrito en Ruby, PHP, NodeJS, Python usando o no un framework de Python como Flask.
Tu endpoint debe devolver un código de estado HTTP 2xx a Piriod. Cualquier respuesta fuera de este rango, incluidos los códigos 3xx, indica a Piriod que el evento no se recibió correctamente.
Si endpoint devuelve un código de estado distinto de 2xx en 3 llamadas consecutivas, el webhook se desactiva automáticamente. Deberás volver a activarlo manualmente desde el dashboard de Piriod.
Dado que la entrega exitosa es fundamental, su punto final debe devolver una respuesta 2xx antes de ejecutar cualquier lógica de negocio compleja que pueda causar un error o exceder el tiempo de espera de 6 segundos.
El siguiente ejemplo muestra un endpoint de Python/Flask que confirma la recepción y luego obtiene el objeto Payment completo de la API de Piriod.
import requestsfrom flask import Flaskapp = Flask(__name__)PIRIOD_API = 'https://api.piriod.com'credentials = { 'Authorization': f'Token {your_piriod_token}', 'x-simple-workspace': 'your_piriod_organization_id'}@app.route('/webhooks', methods=['POST'])def webhooks(): payload = request.json if not payload: abort(400) if payload.get('event') == 'payment.created': payment = _get_payment(payload.get('id')) # do anything with your new payment return Truedef _get_payment(id): r = requests.get(f'{PIRIOD_API}/payments/{id}/', headers=credentials) if not r.status_code == requests.codes.ok: abort(r.status_code) return r.json()if __name__ == '__main__': app.run(debug=True)
Una vez que tu endpoint esté listo y sea accesible públicamente, el siguiente paso es registrarlo en Piriod.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Piriod Docs","colors":{"primary":"#3F51B5","light":"#34459E","dark":"#081327"},"logo":{"light":"https://media.brand.dev/2499034c-5cde-4114-85b1-0361503c7e7f.png","dark":"https://media.brand.dev/2499034c-5cde-4114-85b1-0361503c7e7f.png"},"favicon":"https://media.brand.dev/7b8c1437-b60f-42d6-b350-abcd9e656f1e.png","navbar":{"primary":{"type":"button","label":"Ir a Piriod","href":"https://app.piriod.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"piriod-d406ac55","hasAudioNarration":false,"actualSubdomain":"piriod-d406ac55","customDomains":["docs.piriod.com"],"gitSource":{"type":"github","owner":"piriod","repo":"piriod-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae11a5c81dd5d628a1ada87","collectionId":"43508f08-a5b8-4eb2-b129-a812d03fda11","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae11a5c81dd5d628a1ada87"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae11a5c81dd5d628a1ada87","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":137},{"language":"default","tag":"Guía de uso","count":72},{"language":"default","tag":"Billing","count":70},{"language":"default","tag":"Procurement","count":36},{"language":"default","tag":"Payments","count":25},{"language":"default","tag":"Integraciones","count":23},{"language":"default","tag":"Configuración de la organización","count":14},{"language":"default","tag":"Changelog","count":13},{"language":"default","tag":"Procesadores de pago","count":11},{"language":"default","tag":"Procesadores de facturación","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"developers/webhooks/crear-un-webhook","slug":"/developers/webhooks/crear-un-webhook","pageMetadata":{"title":"Crear un webhook","description":"Conoce cómo escribir el código para manejar las notificaciones al webhook.","sidebarTitle":"Crear un webhook","href":"/developers/webhooks/crear-un-webhook"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Conoce cómo escribir el código para manejar las notificaciones al webhook.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Para agregar webhooks a tu integración debes crear un endpoint para exponerlo en internet a través de una URL (por ejemplo, `,_jsx(_components.a,{href:`https://myproduct.com/webhooks`,children:`https://myproduct.com/webhooks`}),`). Crear un endpoint de webhook en tu servidor no es tan diferente a crear cualquier página en su sitio web o aplicación. Puede estar escrito en Ruby, PHP, NodeJS, Python usando o no un framework de Python como Flask.`]}),`\n`,_jsx(Heading,{level:`2`,id:`consideraciones`,children:`Consideraciones`}),`\n`,_jsx(_components.p,{children:`En cada activación de un evento, Piriod envía los datos del webhook a su endpoint en formato JSON.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`event`}),` - corresponde al `,_jsx(_components.a,{href:`https://docs.piriod.com/guide/desarrolladores/webhooks#eventos`,children:`nombre del evento`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_id`}),` - corresponde al id del objeto que activó el evento.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Por lo tanto, como mínimo, el endpoint del webhook debe esperar datos a través de una solicitud POST y confirmar la recepción exitosa de esos datos.`}),`\n`,_jsx(Heading,{level:`2`,id:`respuesta-http-y-desactivación-automática`,children:`Respuesta HTTP y desactivación automática`}),`\n`,_jsx(_components.p,{children:`Tu endpoint debe devolver un código de estado HTTP 2xx a Piriod. Cualquier respuesta fuera de este rango, incluidos los códigos 3xx, indica a Piriod que el evento no se recibió correctamente.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Si endpoint devuelve un código de estado distinto de 2xx en `,_jsx(_components.strong,{children:`3 llamadas consecutivas`}),`, el webhook se desactiva automáticamente. Deberás volver a activarlo manualmente desde el dashboard de Piriod.`]})}),`\n`,_jsx(_components.p,{children:`Dado que la entrega exitosa es fundamental, su punto final debe devolver una respuesta 2xx antes de ejecutar cualquier lógica de negocio compleja que pueda causar un error o exceder el tiempo de espera de 6 segundos.`}),`\n`,_jsx(Heading,{level:`2`,id:`example-code`,children:`Example code`}),`\n`,_jsx(_components.p,{children:`El siguiente ejemplo muestra un endpoint de Python/Flask que confirma la recepción y luego obtiene el objeto Payment completo de la API de Piriod.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`30`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`30`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` flask `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Flask`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`app `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Flask(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`__name__`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`PIRIOD_API`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.piriod.com'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`credentials `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Token `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`your_piriod_token`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'x-simple-workspace'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'your_piriod_organization_id'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@app.route`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/webhooks'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`methods`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'POST'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` webhooks`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`():`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payload `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` request.json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` not`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payload:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` abort(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`400`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payload.get(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'event'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'payment.created'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payment `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` _get_payment(payload.get(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'id'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # do anything with your new payment`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` True`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` _get_payment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.get(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`PIRIOD_API`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/payments/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`credentials)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` not`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.status_code `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.codes.ok:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` abort(r.status_code)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.json()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` __name__`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '__main__'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` app.run(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`debug`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Una vez que tu endpoint esté listo y sea accesible públicamente, el siguiente paso es registrarlo en Piriod.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Crear un webhook","description":"Conoce cómo escribir el código para manejar las notificaciones al webhook.","sidebarTitle":"Crear un webhook","href":"/developers/webhooks/crear-un-webhook"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Consideraciones","slug":"consideraciones","depth":2,"children":[]},{"title":"Respuesta HTTP y desactivación automática","slug":"respuesta-http-y-desactivación-automática","depth":2,"children":[]},{"title":"Example code","slug":"example-code","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"piriod-d406ac55","siteName":"Piriod Docs","title":"Crear un webhook - Piriod Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-02T01:09:25.353Z","originalFileLocation":"developers/webhooks/crear-un-webhook.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Conoce cómo escribir el código para manejar las notificaciones al webhook.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Piriod Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://media.brand.dev/7b8c1437-b60f-42d6-b350-abcd9e656f1e.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://media.brand.dev/7b8c1437-b60f-42d6-b350-abcd9e656f1e.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://media.brand.dev/7b8c1437-b60f-42d6-b350-abcd9e656f1e.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://media.brand.dev/7b8c1437-b60f-42d6-b350-abcd9e656f1e.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Crear un webhook - Piriod Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Conoce cómo escribir el código para manejar las notificaciones al webhook.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Piriod Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.piriod.com/developers/webhooks/crear-un-webhook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://piriod-d406ac55.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Crear+un+webhook\u0026amp;description=Conoce+c%C3%B3mo+escribir+el+c%C3%B3digo+para+manejar+las+notificaciones+al+webhook.\u0026amp;theme=69e1917499376dd906c268fa\u0026amp;signature=caa21b08b431698da3c319f63eef18d7f143c7ccc67233ca033a75111d31956e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Crear un webhook - Piriod Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Conoce cómo escribir el código para manejar las notificaciones al webhook.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://piriod-d406ac55.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Crear+un+webhook\u0026amp;description=Conoce+c%C3%B3mo+escribir+el+c%C3%B3digo+para+manejar+las+notificaciones+al+webhook.\u0026amp;theme=69e1917499376dd906c268fa\u0026amp;signature=caa21b08b431698da3c319f63eef18d7f143c7ccc67233ca033a75111d31956e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/piriod-d406ac55/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Piriod Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3F51B5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.piriod.com/developers/webhooks/crear-un-webhook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/webhooks/crear-un-webhook.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.piriod.com/#organization\",\"name\":\"Piriod Docs\",\"url\":\"https://docs.piriod.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://media.brand.dev/2499034c-5cde-4114-85b1-0361503c7e7f.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.piriod.com#website\",\"name\":\"Piriod Docs\",\"url\":\"https://docs.piriod.com\",\"publisher\":{\"@id\":\"https://docs.piriod.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook#webpage\",\"url\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook\",\"name\":\"Crear un webhook\",\"description\":\"Conoce cómo escribir el código para manejar las notificaciones al webhook.\",\"dateModified\":\"2026-05-02T01:09:25.353Z\",\"isPartOf\":{\"@id\":\"https://docs.piriod.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.piriod.com/developers/webhooks/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crear un webhook\",\"item\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook#article\",\"headline\":\"Crear un webhook\",\"name\":\"Crear un webhook\",\"description\":\"Conoce cómo escribir el código para manejar las notificaciones al webhook.\",\"url\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook\",\"mainEntityOfPage\":{\"@id\":\"https://docs.piriod.com/developers/webhooks/crear-un-webhook#webpage\"},\"dateModified\":\"2026-05-02T01:09:25.353Z\",\"publisher\":{\"@id\":\"https://docs.piriod.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.piriod.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Piriod Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Piriod Docs","nav":{"global":null,"tabs":[{"tab":"Guía de uso","pages":[{"title":"Guía de uso","href":"/guia/comenzar/introduccion-a-piriod"}]},{"tab":"Developers","pages":[{"title":"Recursos para desarrolladores","mode":"default","href":"/developers/overview"},{"group":"Webhooks","pages":[{"title":"Recibe notificaciones de eventos en tiempo real con webhooks ","description":"Los webhooks de Piriod notifican a tu servicio cuando cambian los clientes, las facturas, los pagos o las suscripciones. Configura un endpoint y regístralo en dos pasos.","sidebarTitle":"Overview","href":"/developers/webhooks/overview"},{"title":"Crear un webhook","sidebarTitle":"Crear un webhook","href":"/developers/webhooks/crear-un-webhook"},{"title":" Registrar un webhook","sidebarTitle":" Registrar un webhook","description":"Registra la URL del endpoint de tu servicio en Piriod, selecciona los eventos a los que deseas suscribirlo y gestiona su activación, desactivación o eliminación desde el dashboard.","href":"/developers/webhooks/registrar-un-webhook"},{"title":"Verificar firma","sidebarTitle":"Verificar firma","href":"/developers/webhooks/verificar-firma"}]},{"group":"API Templates","pages":[{"title":"Overview","href":"/developers/api-templates/overview"},{"group":"Por localización","pages":[{"title":"Crear complemento de pago","href":"/developers/api-templates/mx-create-payment-complement"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/funciones beta/introduccion-a-funciones-beta"}]},{"tab":"Términos","pages":[{"title":"Términos","href":"/terminos-y-condiciones"}]}]},"basePath":"","title":"Crear un webhook - Piriod Docs","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}