[{"data":1,"prerenderedAt":781},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fsesiones-de-checkout":3,"docs-surround:\u002Fdocs\u002Fsesiones-de-checkout":756,"docs-navigation":765},{"id":4,"title":5,"body":6,"description":748,"extension":749,"meta":750,"navigation":751,"path":752,"seo":753,"stem":754,"__hash__":755},"docs\u002Fdocs\u002F2.sesiones-de-checkout.md","Crear una sesión de checkout",{"type":7,"value":8,"toc":739},"minimark",[9,23,28,83,93,97,100,226,273,284,374,388,392,449,458,462,472,488,509,527,531,593,597,716,724,728,735],[10,11,12,13,17,18,22],"p",{},"Una sesión de checkout es un enlace de un solo uso a la página de pago de Paygumi (",[14,15,16],"code",{},"checkout.paygumi.com","). Tu cliente escribe allí su tarjeta, que va de su navegador ",[19,20,21],"strong",{},"directo a Wompi",": tu sitio no toca datos de tarjeta y no instalas ningún SDK.",[24,25,27],"h2",{"id":26},"modos","Modos",[29,30,31,49],"table",{},[32,33,34],"thead",{},[35,36,37,43,46],"tr",{},[38,39,40],"th",{},[14,41,42],{},"mode",[38,44,45],{},"Qué hace",[38,47,48],{},"Cuándo usarlo",[50,51,52,66],"tbody",{},[35,53,54,60,63],{},[55,56,57],"td",{},[14,58,59],{},"setup",[55,61,62],{},"Registra o reemplaza la tarjeta del cliente.",[55,64,65],{},"Cambiar la tarjeta, o recuperar a un cliente con un pago rechazado.",[35,67,68,73,80],{},[55,69,70],{},[14,71,72],{},"subscription",[55,74,75,76,79],{},"Registra la tarjeta y suscribe al cliente a ",[14,77,78],{},"plan_id",".",[55,81,82],{},"El alta de un usuario a un plan.",[10,84,85,86,88,89,92],{},"El modo no distingue mayúsculas (",[14,87,59],{}," o ",[14,90,91],{},"SETUP","); en las respuestas viene en mayúsculas.",[24,94,96],{"id":95},"modo-subscription","Modo subscription",[10,98,99],{},"Desde tu backend, cuando tu usuario elige un plan:",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-bash shiki shiki-themes github-light github-dark","curl https:\u002F\u002Fapi.paygumi.com\u002Fv1\u002Fcheckout-sessions \\\n  -H \"Authorization: Bearer pgm_test_...\" \\\n  -H \"Idempotency-Key: 3f0c1d7e-8b1a-4f3e-9a51-6d2b7c9e0a14\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"mode\": \"subscription\",\n    \"customer\": {\n      \"external_id\": \"user_42\",\n      \"email\": \"ana@ejemplo.co\",\n      \"full_name\": \"Ana Pérez\"\n    },\n    \"plan_id\": \"pln_01JB86R800ABCDEFGHJKMNPQRS\",\n    \"success_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\u002Fok\",\n    \"cancel_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\"\n  }'\n","bash","",[14,108,109,126,137,147,157,166,172,178,184,190,196,202,208,214,220],{"__ignoreMap":106},[110,111,114,118,122],"span",{"class":112,"line":113},"line",1,[110,115,117],{"class":116},"sScJk","curl",[110,119,121],{"class":120},"sZZnC"," https:\u002F\u002Fapi.paygumi.com\u002Fv1\u002Fcheckout-sessions",[110,123,125],{"class":124},"sj4cs"," \\\n",[110,127,129,132,135],{"class":112,"line":128},2,[110,130,131],{"class":124},"  -H",[110,133,134],{"class":120}," \"Authorization: Bearer pgm_test_...\"",[110,136,125],{"class":124},[110,138,140,142,145],{"class":112,"line":139},3,[110,141,131],{"class":124},[110,143,144],{"class":120}," \"Idempotency-Key: 3f0c1d7e-8b1a-4f3e-9a51-6d2b7c9e0a14\"",[110,146,125],{"class":124},[110,148,150,152,155],{"class":112,"line":149},4,[110,151,131],{"class":124},[110,153,154],{"class":120}," \"Content-Type: application\u002Fjson\"",[110,156,125],{"class":124},[110,158,160,163],{"class":112,"line":159},5,[110,161,162],{"class":124},"  -d",[110,164,165],{"class":120}," '{\n",[110,167,169],{"class":112,"line":168},6,[110,170,171],{"class":120},"    \"mode\": \"subscription\",\n",[110,173,175],{"class":112,"line":174},7,[110,176,177],{"class":120},"    \"customer\": {\n",[110,179,181],{"class":112,"line":180},8,[110,182,183],{"class":120},"      \"external_id\": \"user_42\",\n",[110,185,187],{"class":112,"line":186},9,[110,188,189],{"class":120},"      \"email\": \"ana@ejemplo.co\",\n",[110,191,193],{"class":112,"line":192},10,[110,194,195],{"class":120},"      \"full_name\": \"Ana Pérez\"\n",[110,197,199],{"class":112,"line":198},11,[110,200,201],{"class":120},"    },\n",[110,203,205],{"class":112,"line":204},12,[110,206,207],{"class":120},"    \"plan_id\": \"pln_01JB86R800ABCDEFGHJKMNPQRS\",\n",[110,209,211],{"class":112,"line":210},13,[110,212,213],{"class":120},"    \"success_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\u002Fok\",\n",[110,215,217],{"class":112,"line":216},14,[110,218,219],{"class":120},"    \"cancel_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\"\n",[110,221,223],{"class":112,"line":222},15,[110,224,225],{"class":120},"  }'\n",[227,228,229,248,257],"ul",{},[230,231,232,235,236,239,240,243,244,247],"li",{},[19,233,234],{},"Cliente:"," envía ",[14,237,238],{},"customer_id"," si ya existe en Paygumi, o ",[14,241,242],{},"customer"," con sus datos para crearlo al completar (uno de los dos). ",[14,245,246],{},"external_id"," es tu id del usuario.",[230,249,250,253,254,79],{},[19,251,252],{},"Plan:"," obligatorio en este modo, del mismo entorno y ",[14,255,256],{},"ACTIVE",[230,258,259,262,263,266,267,269,270,79],{},[19,260,261],{},"Al completar:"," Paygumi crea la suscripción (",[14,264,265],{},"TRIALING"," si el plan tiene días de prueba; si no, ",[14,268,256],{}," con el primer cobro en curso) y la deja en ",[14,271,272],{},"subscription_id",[10,274,275,276,279,280,283],{},"La respuesta (",[14,277,278],{},"201",", aquí recortada) trae la ",[14,281,282],{},"url"," de la página de pago:",[101,285,289],{"className":286,"code":287,"language":288,"meta":106,"style":106},"language-json shiki shiki-themes github-light github-dark","{\n  \"id\": \"cs_01JB86R800ABCDEFGHJKMNPQRS\",\n  \"environment\": \"SANDBOX\",\n  \"mode\": \"SUBSCRIPTION\",\n  \"status\": \"OPEN\",\n  \"url\": \"https:\u002F\u002Fcheckout.paygumi.com\u002Fc\u002F3q2-7wEmWbIu4pS1Jx7bS1Kc0yQe9Gm9cXyZ0aBcDeF\",\n  \"expires_at\": \"2026-11-02T05:00:00Z\"\n}\n","json",[14,290,291,297,311,323,335,347,359,369],{"__ignoreMap":106},[110,292,293],{"class":112,"line":113},[110,294,296],{"class":295},"sVt8B","{\n",[110,298,299,302,305,308],{"class":112,"line":128},[110,300,301],{"class":124},"  \"id\"",[110,303,304],{"class":295},": ",[110,306,307],{"class":120},"\"cs_01JB86R800ABCDEFGHJKMNPQRS\"",[110,309,310],{"class":295},",\n",[110,312,313,316,318,321],{"class":112,"line":139},[110,314,315],{"class":124},"  \"environment\"",[110,317,304],{"class":295},[110,319,320],{"class":120},"\"SANDBOX\"",[110,322,310],{"class":295},[110,324,325,328,330,333],{"class":112,"line":149},[110,326,327],{"class":124},"  \"mode\"",[110,329,304],{"class":295},[110,331,332],{"class":120},"\"SUBSCRIPTION\"",[110,334,310],{"class":295},[110,336,337,340,342,345],{"class":112,"line":159},[110,338,339],{"class":124},"  \"status\"",[110,341,304],{"class":295},[110,343,344],{"class":120},"\"OPEN\"",[110,346,310],{"class":295},[110,348,349,352,354,357],{"class":112,"line":168},[110,350,351],{"class":124},"  \"url\"",[110,353,304],{"class":295},[110,355,356],{"class":120},"\"https:\u002F\u002Fcheckout.paygumi.com\u002Fc\u002F3q2-7wEmWbIu4pS1Jx7bS1Kc0yQe9Gm9cXyZ0aBcDeF\"",[110,358,310],{"class":295},[110,360,361,364,366],{"class":112,"line":174},[110,362,363],{"class":124},"  \"expires_at\"",[110,365,304],{"class":295},[110,367,368],{"class":120},"\"2026-11-02T05:00:00Z\"\n",[110,370,371],{"class":112,"line":180},[110,372,373],{"class":295},"}\n",[10,375,376,377,379,380,383,384,387],{},"Redirige a tu usuario a ",[14,378,282],{}," (por ejemplo con un ",[14,381,382],{},"303 See Other","). ",[19,385,386],{},"Es la única vez que la recibes",": Paygumi solo guarda el hash del token. Si la pierdes, cancela la sesión y crea otra.",[24,389,391],{"id":390},"modo-setup","Modo setup",[101,393,395],{"className":103,"code":394,"language":105,"meta":106,"style":106},"curl https:\u002F\u002Fapi.paygumi.com\u002Fv1\u002Fcheckout-sessions \\\n  -H \"Authorization: Bearer pgm_test_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"mode\": \"setup\",\n    \"customer_id\": \"cus_01JB86R800ABCDEFGHJKMNPQRS\",\n    \"success_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\u002Fok\",\n    \"cancel_url\": \"https:\u002F\u002Ftuapp.co\u002Fbilling\"\n  }'\n",[14,396,397,405,413,421,427,432,437,441,445],{"__ignoreMap":106},[110,398,399,401,403],{"class":112,"line":113},[110,400,117],{"class":116},[110,402,121],{"class":120},[110,404,125],{"class":124},[110,406,407,409,411],{"class":112,"line":128},[110,408,131],{"class":124},[110,410,134],{"class":120},[110,412,125],{"class":124},[110,414,415,417,419],{"class":112,"line":139},[110,416,131],{"class":124},[110,418,154],{"class":120},[110,420,125],{"class":124},[110,422,423,425],{"class":112,"line":149},[110,424,162],{"class":124},[110,426,165],{"class":120},[110,428,429],{"class":112,"line":159},[110,430,431],{"class":120},"    \"mode\": \"setup\",\n",[110,433,434],{"class":112,"line":168},[110,435,436],{"class":120},"    \"customer_id\": \"cus_01JB86R800ABCDEFGHJKMNPQRS\",\n",[110,438,439],{"class":112,"line":174},[110,440,213],{"class":120},[110,442,443],{"class":112,"line":180},[110,444,219],{"class":120},[110,446,447],{"class":112,"line":186},[110,448,225],{"class":120},[10,450,451,452,454,455,457],{},"En modo ",[14,453,59],{}," no se envía ",[14,456,78],{},". Si el cliente tenía un cobro rechazado, actualizar la tarjeta dispara un reintento inmediato.",[24,459,461],{"id":460},"al-volver-a-tu-sitio","Al volver a tu sitio",[10,463,464,465,468,469,79],{},"Al completar, Paygumi redirige a ",[14,466,467],{},"success_url?session_id=cs_…",". Si el cliente abandona, vuelve a ",[14,470,471],{},"cancel_url",[473,474,475],"callout",{},[10,476,477,483,484,487],{},[19,478,479,480],{},"No des acceso solo porque el usuario volvió a ",[14,481,482],{},"success_url",": esa URL se puede abrir a mano. Confirma con el webhook ",[14,485,486],{},"checkout_session.completed"," o consultando la sesión.",[101,489,491],{"className":103,"code":490,"language":105,"meta":106,"style":106},"curl https:\u002F\u002Fapi.paygumi.com\u002Fv1\u002Fcheckout-sessions\u002Fcs_01JB86R800ABCDEFGHJKMNPQRS \\\n  -H \"Authorization: Bearer pgm_test_...\"\n",[14,492,493,502],{"__ignoreMap":106},[110,494,495,497,500],{"class":112,"line":113},[110,496,117],{"class":116},[110,498,499],{"class":120}," https:\u002F\u002Fapi.paygumi.com\u002Fv1\u002Fcheckout-sessions\u002Fcs_01JB86R800ABCDEFGHJKMNPQRS",[110,501,125],{"class":124},[110,503,504,506],{"class":112,"line":128},[110,505,131],{"class":124},[110,507,508],{"class":120}," \"Authorization: Bearer pgm_test_...\"\n",[10,510,511,512,515,516,518,519,522,523,518,525,79],{},"Una sesión ",[14,513,514],{},"COMPLETED"," trae ",[14,517,238],{},", ",[14,520,521],{},"payment_method_id"," y, en modo ",[14,524,72],{},[14,526,272],{},[24,528,530],{"id":529},"estados","Estados",[29,532,533,543],{},[32,534,535],{},[35,536,537,540],{},[38,538,539],{},"Estado",[38,541,542],{},"Significado",[50,544,545,556,565,579],{},[35,546,547,553],{},[55,548,549],{},[550,551],"status-badge",{"status":552},"OPEN",[55,554,555],{},"Esperando a que el cliente registre su tarjeta.",[35,557,558,562],{},[55,559,560],{},[550,561],{"status":514},[55,563,564],{},"El cliente registró la tarjeta.",[35,566,567,572],{},[55,568,569],{},[550,570],{"status":571},"EXPIRED",[55,573,574,575,578],{},"Venció sin completarse (por defecto a las 24 h; ",[14,576,577],{},"expires_at"," entre 30 min y 7 días).",[35,580,581,586],{},[55,582,583],{},[550,584],{"status":585},"CANCELED",[55,587,588,589,592],{},"La cancelaste con ",[14,590,591],{},"POST \u002Fv1\u002Fcheckout-sessions\u002F{id}\u002Fcancel",", o el cliente agotó los 5 intentos de tarjeta.",[24,594,596],{"id":595},"errores-frecuentes","Errores frecuentes",[29,598,599,609],{},[32,600,601],{},[35,602,603,606],{},[38,604,605],{},"Código",[38,607,608],{},"Causa",[50,610,611,621,636,655,676,686,699],{},[35,612,613,618],{},[55,614,615],{},[14,616,617],{},"409 tenant_not_ready",[55,619,620],{},"El entorno no tiene llaves de Wompi verificadas.",[35,622,623,628],{},[55,624,625],{},[14,626,627],{},"422 customer_required",[55,629,630,631,88,633,635],{},"Falta ",[14,632,238],{},[14,634,242],{}," (o enviaste los dos).",[35,637,638,643],{},[55,639,640],{},[14,641,642],{},"409 customer_external_id_taken",[55,644,645,646,648,649,652,653,79],{},"Ya existe un cliente con ese ",[14,647,246],{},"; su id viene en ",[14,650,651],{},"error.resource_id",". Usa ",[14,654,238],{},[35,656,657,666],{},[55,658,659,662,663],{},[14,660,661],{},"422 plan_required"," \u002F ",[14,664,665],{},"422 plan_not_allowed",[55,667,630,668,670,671,673,674,79],{},[14,669,78],{}," en modo ",[14,672,72],{},", o sobra en modo ",[14,675,59],{},[35,677,678,683],{},[55,679,680],{},[14,681,682],{},"409 plan_archived",[55,684,685],{},"El plan está archivado.",[35,687,688,693],{},[55,689,690],{},[14,691,692],{},"409 subscription_exists",[55,694,695,696,698],{},"El cliente ya tiene una suscripción viva a ese plan (id en ",[14,697,651],{},").",[35,700,701,709],{},[55,702,703,662,706],{},[14,704,705],{},"422 invalid_success_url",[14,707,708],{},"invalid_cancel_url",[55,710,711,712,715],{},"URL no absoluta, con fragmento, o ",[14,713,714],{},"http"," en producción.",[10,717,718,719,79],{},"Todos los detalles en la ",[720,721,723],"a",{"href":722},"\u002Fdocs\u002Fapi\u002Fcheckout","referencia de sesiones de checkout",[24,725,727],{"id":726},"probar-en-sandbox","Probar en sandbox",[10,729,730,731,734],{},"Con una llave ",[14,732,733],{},"pgm_test_"," la página de pago trabaja contra el sandbox de Wompi y muestra que es un pago de prueba. Usa las tarjetas de prueba que publica Wompi en su documentación de sandbox para simular pagos aprobados y rechazados.",[736,737,738],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":106,"searchDepth":139,"depth":139,"links":740},[741,742,743,744,745,746,747],{"id":26,"depth":128,"text":27},{"id":95,"depth":128,"text":96},{"id":390,"depth":128,"text":391},{"id":460,"depth":128,"text":461},{"id":529,"depth":128,"text":530},{"id":595,"depth":128,"text":596},{"id":726,"depth":128,"text":727},"Envía a tu cliente a la página de pago de Paygumi para registrar su tarjeta (modo setup) o registrarla y suscribirse a un plan (modo subscription).","md",{},true,"\u002Fdocs\u002Fsesiones-de-checkout",{"title":5,"description":748},"docs\u002F2.sesiones-de-checkout","C36pOFKwK4EDYSEug1EkoTSrXUDP3PZyQWjVnCYuShA",[757,761],{"title":758,"path":759,"stem":760,"children":-1},"Primeros pasos","\u002Fdocs\u002Fprimeros-pasos","docs\u002F1.primeros-pasos",{"title":762,"path":763,"stem":764,"children":-1},"Suscripciones y estados de acceso","\u002Fdocs\u002Fsuscripciones-y-acceso","docs\u002F3.suscripciones-y-acceso",[766,769,770,771,772,775,778],{"title":767,"path":768},"Introducción","\u002Fdocs",{"title":758,"path":759},{"title":5,"path":752},{"title":762,"path":763},{"title":773,"path":774},"Webhooks","\u002Fdocs\u002Fwebhooks",{"title":776,"path":777},"Portal del cliente","\u002Fdocs\u002Fportal-del-cliente",{"title":779,"path":780},"Idempotencia y errores","\u002Fdocs\u002Fidempotencia-y-errores",1794279320059]