[{"data":1,"prerenderedAt":534},["ShallowReactive",2],{"navigation_docs":3,"-guides-payments-introduction":119,"-guides-payments-introduction-surround":529},[4,25],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"/getting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project Structure","/getting-started/project-structure","1.getting-started/4.project-structure","i-lucide-folder-tree",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Guides","/guides","2. guides",[30,34,49,74],{"title":31,"path":32,"stem":33,"icon":24},"Repositories","/guides/respositories","2. guides/3. respositories",{"title":35,"icon":6,"path":36,"stem":37,"children":38,"page":6},"Authentication","/guides/authentication","2. guides/4. authentication",[39,44],{"title":40,"path":41,"stem":42,"icon":43},"Authentication Setup","/guides/authentication/setup","2. guides/4. authentication/5. setup","i-lucide-lock-keyhole",{"title":45,"path":46,"stem":47,"icon":48},"JWT Configuration","/guides/authentication/jwt-configuration","2. guides/4. authentication/6. jwt-configuration","i-lucide-key",{"title":50,"icon":6,"path":51,"stem":52,"children":53,"page":6},"Charcoles Swagger","/guides/swagger","2. guides/5. swagger",[54,59,64,69],{"title":55,"path":56,"stem":57,"icon":58},"Introduction to Charcole Swagger Documentation","/guides/swagger/introduction","2. guides/5. swagger/6. introduction","i-lucide-book-open",{"title":60,"path":61,"stem":62,"icon":63},"Adding Swagger to Existing Charcole Projects","/guides/swagger/swagger-migration","2. guides/5. swagger/7. swagger-migration","i-lucide-arrow-up-circle",{"title":65,"path":66,"stem":67,"icon":68},"Swagger for Non-Charcole Projects","/guides/swagger/non-charcole-users","2. guides/5. swagger/8. non-charcole-users","i-lucide-package-plus",{"title":70,"path":71,"stem":72,"icon":73},"Swagger Examples","/guides/swagger/swagger-examples","2. guides/5. swagger/9. swagger-examples","i-lucide-code-2",{"title":75,"icon":76,"path":77,"stem":78,"children":79,"page":6},"Charcoles Payments","i-heroicons-credit-card","/guides/payments","2. guides/6. payments",[80,84,89,94,99,104,109,114],{"title":81,"path":82,"stem":83,"icon":76},"Payments","/guides/payments/introduction","2. guides/6. payments/1. introduction",{"title":85,"path":86,"stem":87,"icon":88},"Setup","/guides/payments/setup","2. guides/6. payments/2. setup","i-heroicons-wrench-screwdriver",{"title":90,"path":91,"stem":92,"icon":93},"Providers","/guides/payments/providers","2. guides/6. payments/3. providers","i-heroicons-building-library",{"title":95,"path":96,"stem":97,"icon":98},"API Endpoints","/guides/payments/endpoints","2. guides/6. payments/4. endpoints","i-heroicons-arrows-right-left",{"title":100,"path":101,"stem":102,"icon":103},"Webhooks","/guides/payments/webhooks","2. guides/6. payments/5. webhooks","i-heroicons-bolt",{"title":105,"path":106,"stem":107,"icon":108},"Environment Variables","/guides/payments/environment-variables","2. guides/6. payments/6. environment-variables","i-heroicons-key",{"title":110,"path":111,"stem":112,"icon":113},"Using Without Charcole","/guides/payments/non-charcole-users","2. guides/6. payments/7. non-charcole-users","i-heroicons-puzzle-piece",{"title":115,"path":116,"stem":117,"icon":118},"Examples","/guides/payments/payments-examples","2. guides/6. payments/8. payments-examples","i-heroicons-code-bracket",{"id":120,"title":81,"body":121,"description":515,"extension":516,"links":517,"meta":518,"navigation":519,"path":82,"seo":520,"stem":83,"__hash__":528},"docs/2. guides/6. payments/1. introduction.md",{"type":122,"value":123,"toc":499},"minimark",[124,129,133,162,165,168,172,175,180,183,197,203,207,210,224,230,232,236,333,335,338,342,345,368,375,383,393,397,400,416,423,427,434,446,452,454,458,495],[125,126,128],"h2",{"id":127},"what-is-the-payments-module","What is the Payments Module?",[130,131,132],"p",{},"The Charcole payments module adds production-ready payment processing to your application in seconds. When you include it during setup, you get:",[134,135,136,144,150,156],"ul",{},[137,138,139,143],"li",{},[140,141,142],"strong",{},"4 REST endpoints"," for creating intents, refunding, and checking payment status",[137,145,146,149],{},[140,147,148],{},"Automatic webhook handling"," with signature verification and event deduplication",[137,151,152,155],{},[140,153,154],{},"Zero configuration overhead"," — everything is environment-driven",[137,157,158,161],{},[140,159,160],{},"Two first-class providers"," — Stripe and LemonSqueezy, each fully supported",[130,163,164],{},"The module handles the complex parts: adapter switching, signature verification, retry-safe webhook processing, and provider abstraction. You focus on fulfilling orders.",[166,167],"hr",{},[125,169,171],{"id":170},"supported-providers","Supported Providers",[130,173,174],{},"The module supports two payment providers. Both are equal options — the choice depends on your region and business model.",[176,177,179],"h3",{"id":178},"stripe","Stripe",[130,181,182],{},"Stripe is the global standard for payment processing.",[134,184,185,188,191,194],{},[137,186,187],{},"Direct API integration with your customers' payment methods",[137,189,190],{},"Your application charges customers' payment methods directly",[137,192,193],{},"Supports most regions and currencies globally",[137,195,196],{},"Best for: SaaS, marketplaces, digital products, and companies with global customers",[130,198,199,202],{},[140,200,201],{},"Important note for Pakistan and similar regions:"," Stripe does not support PKR payouts to Pakistani bank accounts. If you need to receive payments in Pakistan, use LemonSqueezy instead.",[176,204,206],{"id":205},"lemonsqueezy","LemonSqueezy",[130,208,209],{},"LemonSqueezy operates as a merchant of record. You don't charge customers directly — LemonSqueezy handles the transaction and deposits funds to your account.",[134,211,212,215,218,221],{},[137,213,214],{},"Hosted checkout flow (customers pay on LemonSqueezy's secure page)",[137,216,217],{},"Supports PKR payouts to Pakistani bank accounts",[137,219,220],{},"Excellent for regional SaaS businesses",[137,222,223],{},"Best for: Global + Pakistan/regional payments, companies that need merchant-of-record simplicity",[130,225,226,229],{},[140,227,228],{},"Why we built payments with LemonSqueezy support:"," Pakistani developers shouldn't have to choose between Stripe's ecosystem and receiving money in their local currency. Both should be possible.",[166,231],{},[125,233,235],{"id":234},"provider-comparison","Provider Comparison",[237,238,239,253],"table",{},[240,241,242],"thead",{},[243,244,245,249,251],"tr",{},[246,247,248],"th",{},"Feature",[246,250,179],{},[246,252,206],{},[254,255,256,270,282,295,308,320],"tbody",{},[243,257,258,264,267],{},[259,260,261],"td",{},[140,262,263],{},"Payment flow",[259,265,266],{},"Frontend JS (client_secret)",[259,268,269],{},"Hosted checkout URL",[243,271,272,277,280],{},[259,273,274],{},[140,275,276],{},"Geographic reach",[259,278,279],{},"Global",[259,281,279],{},[243,283,284,289,292],{},[259,285,286],{},[140,287,288],{},"PKR payout support",[259,290,291],{},"❌ No",[259,293,294],{},"✅ Yes",[243,296,297,302,305],{},[259,298,299],{},[140,300,301],{},"Best for",[259,303,304],{},"Global SaaS, marketplaces",[259,306,307],{},"Pakistan, regional businesses",[243,309,310,315,318],{},[259,311,312],{},[140,313,314],{},"Setup complexity",[259,316,317],{},"Simple",[259,319,317],{},[243,321,322,327,330],{},[259,323,324],{},[140,325,326],{},"Webhook events",[259,328,329],{},"Rich (20+)",[259,331,332],{},"Essential (order, refund, subscription)",[166,334],{},[125,336,5],{"id":337},"getting-started",[176,339,341],{"id":340},"new-charcole-project","New Charcole Project",[130,343,344],{},"When you create a new Charcole project:",[346,347,352],"pre",{"className":348,"code":349,"language":350,"meta":351,"style":351},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx create-charcole@latest\n","bash","",[353,354,355],"code",{"__ignoreMap":351},[356,357,360,364],"span",{"class":358,"line":359},"line",1,[356,361,363],{"class":362},"sBMFI","npx",[356,365,367],{"class":366},"sfazB"," create-charcole@latest\n",[130,369,370,371,374],{},"The CLI will ask: \"Include payments module?\" Select ",[140,372,373],{},"Yes",".",[130,376,377,378,380,381,374],{},"Then choose your provider: ",[140,379,179],{}," or ",[140,382,206],{},[130,384,385,386,389,390,374],{},"Add your provider credentials to ",[353,387,388],{},".env",", and payment endpoints are live immediately at ",[353,391,392],{},"/payments/*",[176,394,396],{"id":395},"existing-project","Existing Project",[130,398,399],{},"If you already have a Charcole project and want to add payments:",[346,401,403],{"className":348,"code":402,"language":350,"meta":351,"style":351},"npm install @charcoles/payments\n",[353,404,405],{"__ignoreMap":351},[356,406,407,410,413],{"class":358,"line":359},[356,408,409],{"class":362},"npm",[356,411,412],{"class":366}," install",[356,414,415],{"class":366}," @charcoles/payments\n",[130,417,418,419,422],{},"Then follow the ",[420,421,85],"a",{"href":86}," guide. No CLI required — the package works standalone.",[176,424,426],{"id":425},"existing-express-app-no-charcole","Existing Express App (No Charcole)",[130,428,429,430,433],{},"You can install ",[353,431,432],{},"@charcoles/payments"," into any Express application:",[346,435,436],{"className":348,"code":402,"language":350,"meta":351,"style":351},[353,437,438],{"__ignoreMap":351},[356,439,440,442,444],{"class":358,"line":359},[356,441,409],{"class":362},[356,443,412],{"class":366},[356,445,415],{"class":366},[130,447,448,449,451],{},"See ",[420,450,110],{"href":111}," for setup instructions.",[166,453],{},[125,455,457],{"id":456},"what-comes-next","What Comes Next",[134,459,460,467,474,481,488],{},[137,461,462,466],{},[140,463,464],{},[420,465,85],{"href":86}," — Get payments running in 5 minutes",[137,468,469,473],{},[140,470,471],{},[420,472,90],{"href":91}," — Configure Stripe or LemonSqueezy credentials",[137,475,476,480],{},[140,477,478],{},[420,479,95],{"href":96}," — Reference for all 4 payment endpoints",[137,482,483,487],{},[140,484,485],{},[420,486,100],{"href":101}," — Handle payment confirmations reliably",[137,489,490,494],{},[140,491,492],{},[420,493,105],{"href":106}," — Complete reference of all config",[496,497,498],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}",{"title":351,"searchDepth":500,"depth":500,"links":501},2,[502,503,508,509,514],{"id":127,"depth":500,"text":128},{"id":170,"depth":500,"text":171,"children":504},[505,507],{"id":178,"depth":506,"text":179},3,{"id":205,"depth":506,"text":206},{"id":234,"depth":500,"text":235},{"id":337,"depth":500,"text":5,"children":510},[511,512,513],{"id":340,"depth":506,"text":341},{"id":395,"depth":506,"text":396},{"id":425,"depth":506,"text":426},{"id":456,"depth":500,"text":457},"Add payment processing to your application with Stripe or LemonSqueezy. Choose the provider that fits your region and business model.","md",null,{},{"icon":76},{"title":521,"description":522,"keywords":523},"Charcole Payments Module","Add payment processing to your Charcole application with Stripe or LemonSqueezy support.",[524,178,205,525,526,527],"payments","payment processing","payout support","pakistan payments","q1_jGsr6KGBqykVvg4Z-T4I4OQQROTHYkeBF6UPkG48",[530,532],{"title":70,"path":71,"stem":72,"description":531,"icon":73,"children":-1},"Practical examples of using @charcoles/swagger for common API patterns.",{"title":85,"path":86,"stem":87,"description":533,"icon":88,"children":-1},"Get the payments module running in your project with either the Charcole CLI or manual setup.",1777986765718]