[{"data":1,"prerenderedAt":1367},["ShallowReactive",2],{"navigation":3,"\u002Fbooki-documentation\u002Fapi\u002Fmaya":303,"\u002Fbooki-documentation\u002Fapi\u002Fmaya-surround":1362},[4,55,105],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":54},"Nuxt Guide","i-lucide-layout","\u002Fnuxt-guide","1.nuxt-guide",[10,14,19,24,29,34,39,44,49],{"title":11,"path":12,"stem":13,"icon":6},"Overview","\u002Fnuxt-guide\u002Foverview","1.nuxt-guide\u002F1.overview",{"title":15,"path":16,"stem":17,"icon":18},"Folder Structure","\u002Fnuxt-guide\u002Ffolder-structure","1.nuxt-guide\u002F2.folder-structure","i-lucide-folder-tree",{"title":20,"path":21,"stem":22,"icon":23},"Components","\u002Fnuxt-guide\u002Fcomponents","1.nuxt-guide\u002F3.components","i-lucide-component",{"title":25,"path":26,"stem":27,"icon":28},"Composables","\u002Fnuxt-guide\u002Fcomposables","1.nuxt-guide\u002F4.composables","i-lucide-puzzle",{"title":30,"path":31,"stem":32,"icon":33},"Pages & Routing","\u002Fnuxt-guide\u002Fpages-routing","1.nuxt-guide\u002F5.pages-routing","i-lucide-file-text",{"title":35,"path":36,"stem":37,"icon":38},"Middleware","\u002Fnuxt-guide\u002Fmiddleware","1.nuxt-guide\u002F6.middleware","i-lucide-shield-check",{"title":40,"path":41,"stem":42,"icon":43},"Plugins","\u002Fnuxt-guide\u002Fplugins","1.nuxt-guide\u002F7.plugins","i-lucide-plug",{"title":45,"path":46,"stem":47,"icon":48},"State Management","\u002Fnuxt-guide\u002Fstate-management","1.nuxt-guide\u002F8.state-management","i-lucide-database",{"title":50,"path":51,"stem":52,"icon":53},"TypeScript","\u002Fnuxt-guide\u002Ftypescript","1.nuxt-guide\u002F9.typescript","i-lucide-braces",false,{"title":56,"icon":57,"path":58,"stem":59,"children":60,"page":54},"Node \u002F Express Guide","i-lucide-server","\u002Fnode-express-guide","2.node-express-guide",[61,64,69,72,77,82,86,91,96,100],{"title":11,"path":62,"stem":63,"icon":57},"\u002Fnode-express-guide\u002Foverview","2.node-express-guide\u002F1.overview",{"title":65,"path":66,"stem":67,"icon":68},"Error Handling","\u002Fnode-express-guide\u002Ferror-handling","2.node-express-guide\u002F10.error-handling","i-lucide-alert-triangle",{"title":15,"path":70,"stem":71,"icon":18},"\u002Fnode-express-guide\u002Ffolder-structure","2.node-express-guide\u002F2.folder-structure",{"title":73,"path":74,"stem":75,"icon":76},"Controllers","\u002Fnode-express-guide\u002Fcontrollers","2.node-express-guide\u002F3.controllers","i-lucide-cpu",{"title":78,"path":79,"stem":80,"icon":81},"Services","\u002Fnode-express-guide\u002Fservices","2.node-express-guide\u002F4.services","i-lucide-workflow",{"title":83,"path":84,"stem":85,"icon":48},"Repositories","\u002Fnode-express-guide\u002Frepositories","2.node-express-guide\u002F5.repositories",{"title":87,"path":88,"stem":89,"icon":90},"Models","\u002Fnode-express-guide\u002Fmodels","2.node-express-guide\u002F6.models","i-lucide-boxes",{"title":92,"path":93,"stem":94,"icon":95},"Routes","\u002Fnode-express-guide\u002Froutes","2.node-express-guide\u002F7.routes","i-lucide-route",{"title":35,"path":97,"stem":98,"icon":99},"\u002Fnode-express-guide\u002Fmiddleware","2.node-express-guide\u002F8.middleware","i-lucide-shield",{"title":101,"path":102,"stem":103,"icon":104},"Validation","\u002Fnode-express-guide\u002Fvalidation","2.node-express-guide\u002F9.validation","i-lucide-check-circle",{"title":106,"icon":107,"path":108,"stem":109,"children":110,"page":54},"Booki Documentation","i-lucide-book-open","\u002Fbooki-documentation","3.booki-documentation",[111,115,120,125,130,229,244,257],{"title":112,"path":113,"stem":114,"icon":107},"Project Overview","\u002Fbooki-documentation\u002Foverview","3.booki-documentation\u002F1.overview",{"title":116,"path":117,"stem":118,"icon":119},"Installation","\u002Fbooki-documentation\u002F1.installation","3.booki-documentation\u002F2.1.installation","i-lucide-download",{"title":121,"path":122,"stem":123,"icon":124},"Development Overview","\u002Fbooki-documentation\u002F2.architecture","3.booki-documentation\u002F2.2.architecture","i-lucide-layers",{"title":126,"path":127,"stem":128,"icon":129},"Local Development","\u002Fbooki-documentation\u002F3.local-development","3.booki-documentation\u002F2.3.local-development","i-lucide-monitor",{"title":131,"icon":57,"path":132,"stem":133,"children":134,"page":54},"API","\u002Fbooki-documentation\u002Fapi","3.booki-documentation\u002F3.api",[135,139,144,149,154,159,163,168,173,178,183,188,192,197,202,206,211,216,220,224],{"title":136,"path":137,"stem":138,"icon":57},"Booki API Reference","\u002Fbooki-documentation\u002Fapi\u002Fbooki-api","3.booki-documentation\u002F3.api\u002F1.booki-api",{"title":140,"path":141,"stem":142,"icon":143},"Auth - Login & Refresh","\u002Fbooki-documentation\u002Fapi\u002Fauth","3.booki-documentation\u002F3.api\u002F2.auth","i-lucide-key",{"title":145,"path":146,"stem":147,"icon":148},"Auth - Customer Registration","\u002Fbooki-documentation\u002Fapi\u002Fauth-customer-register","3.booki-documentation\u002F3.api\u002F2.auth-customer-register","i-lucide-user-check",{"title":150,"path":151,"stem":152,"icon":153},"Auth - Owner Registration","\u002Fbooki-documentation\u002Fapi\u002Fauth-owner-register","3.booki-documentation\u002F3.api\u002F2.auth-owner-register","i-lucide-user-plus",{"title":155,"path":156,"stem":157,"icon":158},"Bookings","\u002Fbooki-documentation\u002Fapi\u002Fbookings","3.booki-documentation\u002F3.api\u002F3.bookings","i-lucide-calendar-check",{"title":160,"path":161,"stem":162,"icon":158},"Bookings - Authenticated","\u002Fbooki-documentation\u002Fapi\u002Fbookings-auth","3.booki-documentation\u002F3.api\u002F3.bookings-auth",{"title":164,"path":165,"stem":166,"icon":167},"Bookings - Public & Guest","\u002Fbooki-documentation\u002Fapi\u002Fbookings-public","3.booki-documentation\u002F3.api\u002F3.bookings-public","i-lucide-calendar-plus",{"title":169,"path":170,"stem":171,"icon":172},"Booking Services","\u002Fbooki-documentation\u002Fapi\u002Fbooking-services","3.booki-documentation\u002F3.api\u002F4.booking-services","i-lucide-box",{"title":174,"path":175,"stem":176,"icon":177},"Organizations - Branches","\u002Fbooki-documentation\u002Fapi\u002Fbranches","3.booki-documentation\u002F3.api\u002F5.branches","i-lucide-git-branch",{"title":179,"path":180,"stem":181,"icon":182},"Organizations - Business Hours","\u002Fbooki-documentation\u002Fapi\u002Fbusiness-hours","3.booki-documentation\u002F3.api\u002F5.business-hours","i-lucide-clock",{"title":184,"path":185,"stem":186,"icon":187},"Organizations - Base","\u002Fbooki-documentation\u002Fapi\u002Forganizations","3.booki-documentation\u002F3.api\u002F5.organizations","i-lucide-building-2",{"title":189,"path":190,"stem":191,"icon":172},"Organizations - Packages","\u002Fbooki-documentation\u002Fapi\u002Fpackages","3.booki-documentation\u002F3.api\u002F5.packages",{"title":193,"path":194,"stem":195,"icon":196},"Organizations - Payments & Integrations","\u002Fbooki-documentation\u002Fapi\u002Fpayments","3.booki-documentation\u002F3.api\u002F5.payments","i-lucide-credit-card",{"title":198,"path":199,"stem":200,"icon":201},"Users - Profile & Settings","\u002Fbooki-documentation\u002Fapi\u002Fusers","3.booki-documentation\u002F3.api\u002F6.users","i-lucide-user",{"title":203,"path":204,"stem":205,"icon":196},"Maya Payments","\u002Fbooki-documentation\u002Fapi\u002Fmaya","3.booki-documentation\u002F3.api\u002F7.maya",{"title":207,"path":208,"stem":209,"icon":210},"Owner - Booking Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-bookings","3.booki-documentation\u002F3.api\u002F7.owner-bookings","i-lucide-calendar",{"title":212,"path":213,"stem":214,"icon":215},"Owner - Customer Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-customers","3.booki-documentation\u002F3.api\u002F7.owner-customers","i-lucide-users",{"title":217,"path":218,"stem":219,"icon":196},"Admin - Billing & Subscriptions","\u002Fbooki-documentation\u002Fapi\u002Fadmin-billing","3.booki-documentation\u002F3.api\u002F8.admin-billing",{"title":221,"path":222,"stem":223,"icon":187},"Admin - Organizations Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-organizations","3.booki-documentation\u002F3.api\u002F8.admin-organizations",{"title":225,"path":226,"stem":227,"icon":228},"Admin - User Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-users","3.booki-documentation\u002F3.api\u002F8.admin-users","i-lucide-shield-admin",{"title":230,"icon":231,"path":232,"stem":233,"children":234,"page":54},"Shared","i-lucide-package","\u002Fbooki-documentation\u002Fshared","3.booki-documentation\u002F4.shared",[235,240],{"title":236,"path":237,"stem":238,"icon":239},"codi-node-utils","\u002Fbooki-documentation\u002Fshared\u002Fcodi-node-utils","3.booki-documentation\u002F4.shared\u002F1.codi-node-utils","i-lucide-wrench",{"title":241,"path":242,"stem":243,"icon":124},"codi-layer","\u002Fbooki-documentation\u002Fshared\u002Fcodi-layer","3.booki-documentation\u002F4.shared\u002F2.codi-layer",{"title":245,"path":246,"stem":247,"children":248,"page":54},"Flowcharts","\u002Fbooki-documentation\u002Fflowcharts","3.booki-documentation\u002F5.flowcharts",[249,253],{"title":250,"path":251,"stem":252,"icon":158},"Owner Booking Management Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fowner-booking-management","3.booki-documentation\u002F5.flowcharts\u002F1.owner-booking-management",{"title":254,"path":255,"stem":256,"icon":167},"Customer Booking Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fcustomer-booking-flow","3.booki-documentation\u002F5.flowcharts\u002F2.customer-booking-flow",{"title":258,"path":259,"stem":260,"children":261,"page":54},"Guides","\u002Fbooki-documentation\u002Fguides","3.booki-documentation\u002Fguides",[262,267,271,275,280,285,290,294,298],{"title":263,"path":264,"stem":265,"icon":266},"Guide - Authentication Flow & Sessions","\u002Fbooki-documentation\u002Fguides\u002Fguides-auth-flow","3.booki-documentation\u002Fguides\u002Fguides-auth-flow","i-lucide-lock",{"title":268,"path":269,"stem":270,"icon":177},"Guide - Branch Management","\u002Fbooki-documentation\u002Fguides\u002Fguides-branch-management","3.booki-documentation\u002Fguides\u002Fguides-branch-management",{"title":272,"path":273,"stem":274,"icon":196},"Guide - Customer Payment Methods","\u002Fbooki-documentation\u002Fguides\u002Fguides-customer-payments","3.booki-documentation\u002Fguides\u002Fguides-customer-payments",{"title":276,"path":277,"stem":278,"icon":279},"Guide - Environment Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-environment-setup","3.booki-documentation\u002Fguides\u002Fguides-environment-setup","i-lucide-settings",{"title":281,"path":282,"stem":283,"icon":284},"Guide - Common Error Responses","\u002Fbooki-documentation\u002Fguides\u002Fguides-errors","3.booki-documentation\u002Fguides\u002Fguides-errors","i-lucide-alert-circle",{"title":286,"path":287,"stem":288,"icon":289},"Guide - Gmail SMTP Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-gmail-setup","3.booki-documentation\u002Fguides\u002Fguides-gmail-setup","i-lucide-mail",{"title":291,"path":292,"stem":293,"icon":124},"Guide - Multi-Tenancy & Tenant Slug Resolution","\u002Fbooki-documentation\u002Fguides\u002Fguides-multi-tenancy","3.booki-documentation\u002Fguides\u002Fguides-multi-tenancy",{"title":295,"path":296,"stem":297,"icon":48},"Guide - Redis Caching","\u002Fbooki-documentation\u002Fguides\u002Fguides-redis","3.booki-documentation\u002Fguides\u002Fguides-redis",{"title":299,"path":300,"stem":301,"icon":302},"Guide - Subscription Billing","\u002Fbooki-documentation\u002Fguides\u002Fguides-subscription-billing","3.booki-documentation\u002Fguides\u002Fguides-subscription-billing","i-lucide-receipt",{"id":304,"title":203,"body":305,"description":1355,"extension":1356,"links":1357,"meta":1358,"navigation":1359,"path":204,"seo":1360,"stem":205,"__hash__":1361},"docs\u002F3.booki-documentation\u002F3.api\u002F7.maya.md",{"type":306,"value":307,"toc":1325},"minimark",[308,316,319,328,368,373,383,386,390,460,464,519,521,528,553,556,562,565,594,597,606,610,661,664,724,726,733,748,757,760,766,879,882,936,938,945,968,971,1071,1073,1115,1118,1182,1184,1191,1210,1213,1241,1243,1250,1253,1297,1299,1303,1321],[309,310,311,312],"p",{},"Base path: ",[313,314,315],"code",{},"\u002Fapi\u002Fv1\u002Fmaya",[317,318],"hr",{},[320,321,323,324,327],"h2",{"id":322},"post-apiv1mayabookingsidcheckout-session-create-booking-checkout-session","POST ",[313,325,326],{},"\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F:id\u002Fcheckout-session"," — Create Booking Checkout Session",[309,329,330,334,335,338,339,342,345,346,349,350,345,353,356,358,361,362,364,367],{},[331,332,333],"strong",{},"Auth:"," Protected (",[313,336,337],{},"Authorization: Bearer \u003CaccessToken>",")",[340,341],"br",{},[331,343,344],{},"Used by:"," ",[313,347,348],{},"customer-booki-web-app"," · ",[331,351,352],{},"Role:",[313,354,355],{},"customer",[340,357],{},[331,359,360],{},"organizationId:"," From JWT token",[340,363],{},[331,365,366],{},"Description:"," Create a Maya checkout session for a specific booking. Returns a redirect URL to Maya payment page.",[369,370,372],"h3",{"id":371},"request","Request",[374,375,380],"pre",{"className":376,"code":378,"language":379},[377],"language-text","POST \u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fcheckout-session\n","text",[313,381,378],{"__ignoreMap":382},"",[309,384,385],{},"No request body required.",[369,387,389],{"id":388},"response-201-created","Response (201 Created)",[374,391,395],{"className":392,"code":393,"language":394,"meta":382,"style":382},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"checkoutId\": \"chk_live_abc123...\",\n  \"url\": \"https:\u002F\u002Fpayments.maya.ph\u002Fcheckout\u002F...\"\n}\n","json",[313,396,397,406,434,454],{"__ignoreMap":382},[398,399,402],"span",{"class":400,"line":401},"line",1,[398,403,405],{"class":404},"sMK4o","{\n",[398,407,409,412,416,419,422,425,429,431],{"class":400,"line":408},2,[398,410,411],{"class":404},"  \"",[398,413,415],{"class":414},"spNyl","checkoutId",[398,417,418],{"class":404},"\"",[398,420,421],{"class":404},":",[398,423,424],{"class":404}," \"",[398,426,428],{"class":427},"sfazB","chk_live_abc123...",[398,430,418],{"class":404},[398,432,433],{"class":404},",\n",[398,435,437,439,442,444,446,448,451],{"class":400,"line":436},3,[398,438,411],{"class":404},[398,440,441],{"class":414},"url",[398,443,418],{"class":404},[398,445,421],{"class":404},[398,447,424],{"class":404},[398,449,450],{"class":427},"https:\u002F\u002Fpayments.maya.ph\u002Fcheckout\u002F...",[398,452,453],{"class":404},"\"\n",[398,455,457],{"class":400,"line":456},4,[398,458,459],{"class":404},"}\n",[369,461,463],{"id":462},"curl-example","cURL Example",[374,465,469],{"className":466,"code":467,"language":468,"meta":382,"style":382},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X POST \"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fcheckout-session\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer eyJhbGc...\"\n","bash",[313,470,471,494,508],{"__ignoreMap":382},[398,472,473,477,480,483,485,488,490],{"class":400,"line":401},[398,474,476],{"class":475},"sBMFI","curl",[398,478,479],{"class":427}," -X",[398,481,482],{"class":427}," POST",[398,484,424],{"class":404},[398,486,487],{"class":427},"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fcheckout-session",[398,489,418],{"class":404},[398,491,493],{"class":492},"sTEyZ"," \\\n",[398,495,496,499,501,504,506],{"class":400,"line":408},[398,497,498],{"class":427},"  -H",[398,500,424],{"class":404},[398,502,503],{"class":427},"Content-Type: application\u002Fjson",[398,505,418],{"class":404},[398,507,493],{"class":492},[398,509,510,512,514,517],{"class":400,"line":436},[398,511,498],{"class":427},[398,513,424],{"class":404},[398,515,516],{"class":427},"Authorization: Bearer eyJhbGc...",[398,518,453],{"class":404},[317,520],{},[320,522,323,524,527],{"id":523},"post-apiv1mayabookingsidverify-session-verify-booking-payment-session",[313,525,526],{},"\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F:id\u002Fverify-session"," — Verify Booking Payment Session",[309,529,530,334,532,338,534,536,345,538,349,540,345,542,544,546,361,548,550,552],{},[331,531,333],{},[313,533,337],{},[340,535],{},[331,537,344],{},[313,539,348],{},[331,541,352],{},[313,543,355],{},[340,545],{},[331,547,360],{},[340,549],{},[331,551,366],{}," Verify that a Maya checkout session was completed successfully for a booking.",[369,554,372],{"id":555},"request-1",[374,557,560],{"className":558,"code":559,"language":379},[377],"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fverify-session\n",[313,561,559],{"__ignoreMap":382},[309,563,564],{},"Body:",[374,566,568],{"className":392,"code":567,"language":394,"meta":382,"style":382},"{\n  \"checkoutId\": \"chk_live_abc123...\"\n}\n",[313,569,570,574,590],{"__ignoreMap":382},[398,571,572],{"class":400,"line":401},[398,573,405],{"class":404},[398,575,576,578,580,582,584,586,588],{"class":400,"line":408},[398,577,411],{"class":404},[398,579,415],{"class":414},[398,581,418],{"class":404},[398,583,421],{"class":404},[398,585,424],{"class":404},[398,587,428],{"class":427},[398,589,453],{"class":404},[398,591,592],{"class":400,"line":436},[398,593,459],{"class":404},[309,595,596],{},"Fields:",[598,599,600],"ul",{},[601,602,603,605],"li",{},[313,604,415],{}," (string, required): The checkout ID returned from the checkout session",[369,607,609],{"id":608},"response-200-ok","Response (200 OK)",[374,611,613],{"className":392,"code":612,"language":394,"meta":382,"style":382},"{\n  \"message\": \"Payment verified successfully.\",\n  \"booking_id\": \"507f1f77bcf86cd799439041\"\n}\n",[313,614,615,619,639,657],{"__ignoreMap":382},[398,616,617],{"class":400,"line":401},[398,618,405],{"class":404},[398,620,621,623,626,628,630,632,635,637],{"class":400,"line":408},[398,622,411],{"class":404},[398,624,625],{"class":414},"message",[398,627,418],{"class":404},[398,629,421],{"class":404},[398,631,424],{"class":404},[398,633,634],{"class":427},"Payment verified successfully.",[398,636,418],{"class":404},[398,638,433],{"class":404},[398,640,641,643,646,648,650,652,655],{"class":400,"line":436},[398,642,411],{"class":404},[398,644,645],{"class":414},"booking_id",[398,647,418],{"class":404},[398,649,421],{"class":404},[398,651,424],{"class":404},[398,653,654],{"class":427},"507f1f77bcf86cd799439041",[398,656,453],{"class":404},[398,658,659],{"class":400,"line":456},[398,660,459],{"class":404},[369,662,463],{"id":663},"curl-example-1",[374,665,667],{"className":466,"code":666,"language":468,"meta":382,"style":382},"curl -X POST \"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fverify-session\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer eyJhbGc...\" \\\n  -d '{\"checkoutId\": \"chk_live_abc123...\"}'\n",[313,668,669,686,698,710],{"__ignoreMap":382},[398,670,671,673,675,677,679,682,684],{"class":400,"line":401},[398,672,476],{"class":475},[398,674,479],{"class":427},[398,676,482],{"class":427},[398,678,424],{"class":404},[398,680,681],{"class":427},"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F507f1f77bcf86cd799439041\u002Fverify-session",[398,683,418],{"class":404},[398,685,493],{"class":492},[398,687,688,690,692,694,696],{"class":400,"line":408},[398,689,498],{"class":427},[398,691,424],{"class":404},[398,693,503],{"class":427},[398,695,418],{"class":404},[398,697,493],{"class":492},[398,699,700,702,704,706,708],{"class":400,"line":436},[398,701,498],{"class":427},[398,703,424],{"class":404},[398,705,516],{"class":427},[398,707,418],{"class":404},[398,709,493],{"class":492},[398,711,712,715,718,721],{"class":400,"line":456},[398,713,714],{"class":427},"  -d",[398,716,717],{"class":404}," '",[398,719,720],{"class":427},"{\"checkoutId\": \"chk_live_abc123...\"}",[398,722,723],{"class":404},"'\n",[317,725],{},[320,727,323,729,732],{"id":728},"post-apiv1mayawebhook-maya-webhook-receiver",[313,730,731],{},"\u002Fapi\u002Fv1\u002Fmaya\u002Fwebhook"," — Maya Webhook Receiver",[309,734,735,737,738,740,742,743,745,747],{},[331,736,333],{}," Public (webhook signature required)",[340,739],{},[331,741,344],{}," Maya payment gateway (server-to-server)",[340,744],{},[331,746,366],{}," Receives webhook events from Maya payment gateway (payment completed, failed, etc.).",[749,750,751],"blockquote",{},[309,752,753,756],{},[331,754,755],{},"Note:"," This endpoint is called by Maya's servers, not by the frontend. Verify the webhook signature in production.",[369,758,372],{"id":759},"request-2",[374,761,764],{"className":762,"code":763,"language":379},[377],"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fwebhook\nHeaders: X-Maya-Signature: \u003Chmac_signature>\n",[313,765,763],{"__ignoreMap":382},[374,767,769],{"className":392,"code":768,"language":394,"meta":382,"style":382},"{\n  \"event\": \"payment.completed\",\n  \"data\": {\n    \"checkoutId\": \"chk_live_abc123...\",\n    \"referenceNumber\": \"REF-2026-0001\",\n    \"status\": \"PAYMENT_SUCCESS\"\n  }\n}\n",[313,770,771,775,795,809,828,849,868,874],{"__ignoreMap":382},[398,772,773],{"class":400,"line":401},[398,774,405],{"class":404},[398,776,777,779,782,784,786,788,791,793],{"class":400,"line":408},[398,778,411],{"class":404},[398,780,781],{"class":414},"event",[398,783,418],{"class":404},[398,785,421],{"class":404},[398,787,424],{"class":404},[398,789,790],{"class":427},"payment.completed",[398,792,418],{"class":404},[398,794,433],{"class":404},[398,796,797,799,802,804,806],{"class":400,"line":436},[398,798,411],{"class":404},[398,800,801],{"class":414},"data",[398,803,418],{"class":404},[398,805,421],{"class":404},[398,807,808],{"class":404}," {\n",[398,810,811,814,816,818,820,822,824,826],{"class":400,"line":456},[398,812,813],{"class":404},"    \"",[398,815,415],{"class":475},[398,817,418],{"class":404},[398,819,421],{"class":404},[398,821,424],{"class":404},[398,823,428],{"class":427},[398,825,418],{"class":404},[398,827,433],{"class":404},[398,829,831,833,836,838,840,842,845,847],{"class":400,"line":830},5,[398,832,813],{"class":404},[398,834,835],{"class":475},"referenceNumber",[398,837,418],{"class":404},[398,839,421],{"class":404},[398,841,424],{"class":404},[398,843,844],{"class":427},"REF-2026-0001",[398,846,418],{"class":404},[398,848,433],{"class":404},[398,850,852,854,857,859,861,863,866],{"class":400,"line":851},6,[398,853,813],{"class":404},[398,855,856],{"class":475},"status",[398,858,418],{"class":404},[398,860,421],{"class":404},[398,862,424],{"class":404},[398,864,865],{"class":427},"PAYMENT_SUCCESS",[398,867,453],{"class":404},[398,869,871],{"class":400,"line":870},7,[398,872,873],{"class":404},"  }\n",[398,875,877],{"class":400,"line":876},8,[398,878,459],{"class":404},[369,880,463],{"id":881},"curl-example-2",[374,883,885],{"className":466,"code":884,"language":468,"meta":382,"style":382},"curl -X POST https:\u002F\u002Fapi.booki.app\u002Fapi\u002Fv1\u002Fmaya\u002Fwebhook \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-Maya-Signature: \u003Csignature>\" \\\n  -d '{\"event\":\"payment.completed\",\"data\":{...}}'\n",[313,886,887,900,912,925],{"__ignoreMap":382},[398,888,889,891,893,895,898],{"class":400,"line":401},[398,890,476],{"class":475},[398,892,479],{"class":427},[398,894,482],{"class":427},[398,896,897],{"class":427}," https:\u002F\u002Fapi.booki.app\u002Fapi\u002Fv1\u002Fmaya\u002Fwebhook",[398,899,493],{"class":492},[398,901,902,904,906,908,910],{"class":400,"line":408},[398,903,498],{"class":427},[398,905,424],{"class":404},[398,907,503],{"class":427},[398,909,418],{"class":404},[398,911,493],{"class":492},[398,913,914,916,918,921,923],{"class":400,"line":436},[398,915,498],{"class":427},[398,917,424],{"class":404},[398,919,920],{"class":427},"X-Maya-Signature: \u003Csignature>",[398,922,418],{"class":404},[398,924,493],{"class":492},[398,926,927,929,931,934],{"class":400,"line":456},[398,928,714],{"class":427},[398,930,717],{"class":404},[398,932,933],{"class":427},"{\"event\":\"payment.completed\",\"data\":{...}}",[398,935,723],{"class":404},[317,937],{},[320,939,323,941,944],{"id":940},"post-apiv1mayacreate-subscription-checkout-create-subscription-checkout",[313,942,943],{},"\u002Fapi\u002Fv1\u002Fmaya\u002Fcreate-subscription-checkout"," — Create Subscription Checkout",[309,946,947,949,950,952,345,954,349,957,345,959,962,963,965,967],{},[331,948,333],{}," Public (no authentication required)",[340,951],{},[331,953,344],{},[313,955,956],{},"cms-booki-web-app",[331,958,352],{},[313,960,961],{},"owner"," (during onboarding)",[340,964],{},[331,966,366],{}," Create a Maya checkout session for an organization subscription plan.",[369,969,372],{"id":970},"request-3",[374,972,974],{"className":392,"code":973,"language":394,"meta":382,"style":382},"{\n  \"email\": \"owner@example.com\",\n  \"pricePerBranch\": 999,\n  \"branchCount\": 1,\n  \"trialDays\": 90,\n  \"interval\": \"monthly\"\n}\n",[313,975,976,980,1000,1017,1033,1049,1067],{"__ignoreMap":382},[398,977,978],{"class":400,"line":401},[398,979,405],{"class":404},[398,981,982,984,987,989,991,993,996,998],{"class":400,"line":408},[398,983,411],{"class":404},[398,985,986],{"class":414},"email",[398,988,418],{"class":404},[398,990,421],{"class":404},[398,992,424],{"class":404},[398,994,995],{"class":427},"owner@example.com",[398,997,418],{"class":404},[398,999,433],{"class":404},[398,1001,1002,1004,1007,1009,1011,1015],{"class":400,"line":436},[398,1003,411],{"class":404},[398,1005,1006],{"class":414},"pricePerBranch",[398,1008,418],{"class":404},[398,1010,421],{"class":404},[398,1012,1014],{"class":1013},"sbssI"," 999",[398,1016,433],{"class":404},[398,1018,1019,1021,1024,1026,1028,1031],{"class":400,"line":456},[398,1020,411],{"class":404},[398,1022,1023],{"class":414},"branchCount",[398,1025,418],{"class":404},[398,1027,421],{"class":404},[398,1029,1030],{"class":1013}," 1",[398,1032,433],{"class":404},[398,1034,1035,1037,1040,1042,1044,1047],{"class":400,"line":830},[398,1036,411],{"class":404},[398,1038,1039],{"class":414},"trialDays",[398,1041,418],{"class":404},[398,1043,421],{"class":404},[398,1045,1046],{"class":1013}," 90",[398,1048,433],{"class":404},[398,1050,1051,1053,1056,1058,1060,1062,1065],{"class":400,"line":851},[398,1052,411],{"class":404},[398,1054,1055],{"class":414},"interval",[398,1057,418],{"class":404},[398,1059,421],{"class":404},[398,1061,424],{"class":404},[398,1063,1064],{"class":427},"monthly",[398,1066,453],{"class":404},[398,1068,1069],{"class":400,"line":870},[398,1070,459],{"class":404},[309,1072,596],{},[598,1074,1075,1080,1085,1090,1095,1103,1109],{},[601,1076,1077,1079],{},[313,1078,986],{}," (string, required): Owner email address",[601,1081,1082,1084],{},[313,1083,1006],{}," (number, required): Price per branch (min 0)",[601,1086,1087,1089],{},[313,1088,1023],{}," (number, required): Number of branches (min 1)",[601,1091,1092,1094],{},[313,1093,1039],{}," (number, optional, default: 90): Trial period in days",[601,1096,1097,1099,1100,1102],{},[313,1098,1055],{}," (string, optional, default: ",[313,1101,1064],{},"): Billing interval",[601,1104,1105,1108],{},[313,1106,1107],{},"metadata"," (object, optional): Additional metadata",[601,1110,1111,1114],{},[313,1112,1113],{},"registrationData"," (any, optional): Data to carry through the registration flow",[369,1116,463],{"id":1117},"curl-example-3",[374,1119,1121],{"className":466,"code":1120,"language":468,"meta":382,"style":382},"curl -X POST \"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fcreate-subscription-checkout\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"email\": \"owner@example.com\",\n    \"pricePerBranch\": 999,\n    \"branchCount\": 1\n  }'\n",[313,1122,1123,1140,1152,1160,1165,1170,1175],{"__ignoreMap":382},[398,1124,1125,1127,1129,1131,1133,1136,1138],{"class":400,"line":401},[398,1126,476],{"class":475},[398,1128,479],{"class":427},[398,1130,482],{"class":427},[398,1132,424],{"class":404},[398,1134,1135],{"class":427},"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fcreate-subscription-checkout",[398,1137,418],{"class":404},[398,1139,493],{"class":492},[398,1141,1142,1144,1146,1148,1150],{"class":400,"line":408},[398,1143,498],{"class":427},[398,1145,424],{"class":404},[398,1147,503],{"class":427},[398,1149,418],{"class":404},[398,1151,493],{"class":492},[398,1153,1154,1156,1158],{"class":400,"line":436},[398,1155,714],{"class":427},[398,1157,717],{"class":404},[398,1159,405],{"class":427},[398,1161,1162],{"class":400,"line":456},[398,1163,1164],{"class":427},"    \"email\": \"owner@example.com\",\n",[398,1166,1167],{"class":400,"line":830},[398,1168,1169],{"class":427},"    \"pricePerBranch\": 999,\n",[398,1171,1172],{"class":400,"line":851},[398,1173,1174],{"class":427},"    \"branchCount\": 1\n",[398,1176,1177,1180],{"class":400,"line":870},[398,1178,1179],{"class":427},"  }",[398,1181,723],{"class":404},[317,1183],{},[320,1185,323,1187,1190],{"id":1186},"post-apiv1mayaverify-session-verify-subscription-session",[313,1188,1189],{},"\u002Fapi\u002Fv1\u002Fmaya\u002Fverify-session"," — Verify Subscription Session",[309,1192,1193,949,1195,1197,345,1199,349,1201,345,1203,962,1205,1207,1209],{},[331,1194,333],{},[340,1196],{},[331,1198,344],{},[313,1200,956],{},[331,1202,352],{},[313,1204,961],{},[340,1206],{},[331,1208,366],{}," Verify that a subscription checkout was completed successfully.",[369,1211,372],{"id":1212},"request-4",[374,1214,1215],{"className":392,"code":567,"language":394,"meta":382,"style":382},[313,1216,1217,1221,1237],{"__ignoreMap":382},[398,1218,1219],{"class":400,"line":401},[398,1220,405],{"class":404},[398,1222,1223,1225,1227,1229,1231,1233,1235],{"class":400,"line":408},[398,1224,411],{"class":404},[398,1226,415],{"class":414},[398,1228,418],{"class":404},[398,1230,421],{"class":404},[398,1232,424],{"class":404},[398,1234,428],{"class":427},[398,1236,453],{"class":404},[398,1238,1239],{"class":400,"line":436},[398,1240,459],{"class":404},[309,1242,596],{},[598,1244,1245],{},[601,1246,1247,1249],{},[313,1248,415],{}," (string, required): The checkout ID returned from the subscription checkout",[369,1251,463],{"id":1252},"curl-example-4",[374,1254,1256],{"className":466,"code":1255,"language":468,"meta":382,"style":382},"curl -X POST \"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fverify-session\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"checkoutId\": \"chk_live_abc123...\"}'\n",[313,1257,1258,1275,1287],{"__ignoreMap":382},[398,1259,1260,1262,1264,1266,1268,1271,1273],{"class":400,"line":401},[398,1261,476],{"class":475},[398,1263,479],{"class":427},[398,1265,482],{"class":427},[398,1267,424],{"class":404},[398,1269,1270],{"class":427},"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fmaya\u002Fverify-session",[398,1272,418],{"class":404},[398,1274,493],{"class":492},[398,1276,1277,1279,1281,1283,1285],{"class":400,"line":408},[398,1278,498],{"class":427},[398,1280,424],{"class":404},[398,1282,503],{"class":427},[398,1284,418],{"class":404},[398,1286,493],{"class":492},[398,1288,1289,1291,1293,1295],{"class":400,"line":436},[398,1290,714],{"class":427},[398,1292,717],{"class":404},[398,1294,720],{"class":427},[398,1296,723],{"class":404},[317,1298],{},[320,1300,1302],{"id":1301},"notes","Notes",[598,1304,1305,1312,1318],{},[601,1306,1307,1308,1311],{},"Webhook verification details are implementation-specific; check ",[313,1309,1310],{},"booki-api\u002Fsrc\u002Fcontrollers\u002Fmaya-payment.controller.ts"," for verification logic.",[601,1313,1314,1315,1317],{},"Subscription checkout\u002Fverification endpoints are used during the owner onboarding flow in ",[313,1316,956],{},".",[601,1319,1320],{},"All Maya API keys are encrypted at rest; never returned in API responses.",[1322,1323,1324],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":382,"searchDepth":401,"depth":408,"links":1326},[1327,1333,1339,1344,1349,1354],{"id":322,"depth":408,"text":1328,"children":1329},"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F:id\u002Fcheckout-session — Create Booking Checkout Session",[1330,1331,1332],{"id":371,"depth":436,"text":372},{"id":388,"depth":436,"text":389},{"id":462,"depth":436,"text":463},{"id":523,"depth":408,"text":1334,"children":1335},"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fbookings\u002F:id\u002Fverify-session — Verify Booking Payment Session",[1336,1337,1338],{"id":555,"depth":436,"text":372},{"id":608,"depth":436,"text":609},{"id":663,"depth":436,"text":463},{"id":728,"depth":408,"text":1340,"children":1341},"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fwebhook — Maya Webhook Receiver",[1342,1343],{"id":759,"depth":436,"text":372},{"id":881,"depth":436,"text":463},{"id":940,"depth":408,"text":1345,"children":1346},"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fcreate-subscription-checkout — Create Subscription Checkout",[1347,1348],{"id":970,"depth":436,"text":372},{"id":1117,"depth":436,"text":463},{"id":1186,"depth":408,"text":1350,"children":1351},"POST \u002Fapi\u002Fv1\u002Fmaya\u002Fverify-session — Verify Subscription Session",[1352,1353],{"id":1212,"depth":436,"text":372},{"id":1252,"depth":436,"text":463},{"id":1301,"depth":408,"text":1302},"Maya payment endpoints: checkout sessions, webhooks, and subscription flows.","md",null,{},{"icon":196},{"title":203,"description":1355},"SN7dPwXB1DkzknFmK3D9Ef9MOMiBdqwvK90ouLE8_g0",[1363,1365],{"title":198,"path":199,"stem":200,"description":1364,"icon":201,"children":-1},"User profile management, email updates, password changes, and payment preferences.",{"title":207,"path":208,"stem":209,"description":1366,"icon":210,"children":-1},"Owner dashboard endpoints for managing bookings, calendar views, and customer booking updates.",1777787844708]