[{"data":1,"prerenderedAt":895},["ShallowReactive",2],{"navigation_docs":3,"-guides-one-time-products-and-partial-payments":132,"-guides-one-time-products-and-partial-payments-surround":890},[4,30,47,128],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart",{"title":18,"path":19,"stem":20},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F3.authentication",{"title":22,"path":23,"stem":24},"Self-Hosting","\u002Fgetting-started\u002Fself-hosting","1.getting-started\u002F4.self-hosting",{"title":26,"path":27,"stem":28},"Build an Integration","\u002Fgetting-started\u002Fbuild-an-integration","1.getting-started\u002F5.build-an-integration",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Sdks","\u002Fsdks","2.sdks",[35,39,43],{"title":36,"path":37,"stem":38},"TypeScript SDK","\u002Fsdks\u002Ftypescript","2.sdks\u002F1.typescript",{"title":40,"path":41,"stem":42},"Python SDK","\u002Fsdks\u002Fpython","2.sdks\u002F2.python",{"title":44,"path":45,"stem":46},"PHP SDK","\u002Fsdks\u002Fphp","2.sdks\u002F3.php",{"title":48,"path":49,"stem":50,"children":51,"page":29},"Guides","\u002Fguides","3.guides",[52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124],{"title":53,"path":54,"stem":55},"Customers","\u002Fguides\u002Fcustomers","3.guides\u002F1.customers",{"title":57,"path":58,"stem":59},"Usage-Based Billing","\u002Fguides\u002Fusage-billing","3.guides\u002F10.usage-billing",{"title":61,"path":62,"stem":63},"Wallets","\u002Fguides\u002Fwallets","3.guides\u002F11.wallets",{"title":65,"path":66,"stem":67},"Coupons, Add-ons and Credit Notes","\u002Fguides\u002Fcoupons-add-ons-credit-notes","3.guides\u002F12.coupons-add-ons-credit-notes",{"title":69,"path":70,"stem":71},"Taxes","\u002Fguides\u002Ftaxes","3.guides\u002F13.taxes",{"title":73,"path":74,"stem":75},"Customer Portal","\u002Fguides\u002Fcustomer-portal","3.guides\u002F14.customer-portal",{"title":77,"path":78,"stem":79},"Ledger","\u002Fguides\u002Fledger","3.guides\u002F15.ledger",{"title":81,"path":82,"stem":83},"Plan Limits and Access","\u002Fguides\u002Fplan-limits-and-access","3.guides\u002F16.plan-limits-and-access",{"title":85,"path":86,"stem":87},"Currencies and Exchange Rates","\u002Fguides\u002Fcurrencies","3.guides\u002F17.currencies",{"title":89,"path":90,"stem":91},"Charge a Customer","\u002Fguides\u002Fcharge-a-customer","3.guides\u002F18.charge-a-customer",{"title":93,"path":94,"stem":95},"One-time Products & Partial Payments","\u002Fguides\u002Fone-time-products-and-partial-payments","3.guides\u002F19.one-time-products-and-partial-payments",{"title":97,"path":98,"stem":99},"Plans & Pricing","\u002Fguides\u002Fplans-and-pricing","3.guides\u002F2.plans-and-pricing",{"title":101,"path":102,"stem":103},"Subscriptions","\u002Fguides\u002Fsubscriptions","3.guides\u002F3.subscriptions",{"title":105,"path":106,"stem":107},"Invoices & Payments","\u002Fguides\u002Finvoices-and-payments","3.guides\u002F4.invoices-and-payments",{"title":109,"path":110,"stem":111},"Payment Providers","\u002Fguides\u002Fpayment-providers","3.guides\u002F5.payment-providers",{"title":113,"path":114,"stem":115},"Analytics","\u002Fguides\u002Fanalytics","3.guides\u002F6.analytics",{"title":117,"path":118,"stem":119},"Webhooks","\u002Fguides\u002Fwebhooks","3.guides\u002F7.webhooks",{"title":121,"path":122,"stem":123},"Sandbox","\u002Fguides\u002Fsandbox","3.guides\u002F8.sandbox",{"title":125,"path":126,"stem":127},"Money Movement","\u002Fguides\u002Fmoney-movement","3.guides\u002F9.money-movement",{"title":129,"path":130,"stem":131},"API Reference","\u002Fapi-reference","4.api-reference",{"id":133,"title":93,"body":134,"description":883,"extension":884,"links":885,"meta":886,"navigation":887,"path":94,"seo":888,"stem":95,"__hash__":889},"docs\u002F3.guides\u002F19.one-time-products-and-partial-payments.md",{"type":135,"value":136,"toc":871},"minimark",[137,146,149,171,179,184,191,324,334,338,349,430,441,467,471,493,498,505,562,566,572,625,628,632,645,698,712,716,781,791,795,798,833,847,851,867],[138,139,140,141,145],"p",{},"Not everything is a subscription. A course, a certification bundle, an installation or an event ticket is bought ",[142,143,144],"strong",{},"once",". Some buyers also can't pay it all at once, so they pay a deposit first, or pay in instalments.",[138,147,148],{},"PimaBill handles both:",[150,151,152,165],"ul",{},[153,154,155,158,159,164],"li",{},[142,156,157],{},"One-time products"," are ",[160,161,163],"a",{"href":162},"\u002Fguides\u002Fcoupons-add-ons-credit-notes#add-ons","add-ons",": a catalogue item with a price in each currency. You sell one on an invoice, and nothing renews.",[153,166,167,170],{},[142,168,169],{},"Partial payments",": any invoice can be paid in parts. It stays open until the payments cover it, and then it is marked paid.",[172,173,174,175,178],"note",{},"Use a ",[142,176,177],{},"plan"," only when the customer should be billed again every period. A \"3-month bundle\" that is paid once is a one-time product, even if the access it gives lasts three months. Your app decides how long access lasts. PimaBill records the sale.",[180,181,183],"h2",{"id":182},"_1-put-the-product-in-the-catalogue","1. Put the product in the catalogue",[138,185,186,187,190],{},"Create an add-on once, with a price in each currency you sell in. The ",[188,189,188],"code",{}," is how you refer to it everywhere else, so pick something stable. It is the same in sandbox and live, unlike IDs.",[192,193,198],"pre",{"className":194,"code":195,"language":196,"meta":197,"style":197},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X POST https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Fadd-ons \\\n  -H \"Authorization: Bearer sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Cloud Certification Bundle (3 months)\",\n    \"code\": \"cert-bundle-3m\",\n    \"invoiceDisplayName\": \"Cloud Certification Bundle — 3 months\",\n    \"prices\": [\n      { \"currency\": \"UGX\", \"amount\": 450000 },\n      { \"currency\": \"KES\", \"amount\": 16000 },\n      { \"currency\": \"USD\", \"amount\": 120 }\n    ]\n  }'\n","bash","",[188,199,200,223,241,255,267,273,279,285,291,297,303,309,315],{"__ignoreMap":197},[201,202,205,209,213,216,219],"span",{"class":203,"line":204},"line",1,[201,206,208],{"class":207},"sBMFI","curl",[201,210,212],{"class":211},"sfazB"," -X",[201,214,215],{"class":211}," POST",[201,217,218],{"class":211}," https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Fadd-ons",[201,220,222],{"class":221},"sTEyZ"," \\\n",[201,224,226,229,233,236,239],{"class":203,"line":225},2,[201,227,228],{"class":211},"  -H",[201,230,232],{"class":231},"sMK4o"," \"",[201,234,235],{"class":211},"Authorization: Bearer sk_live_...",[201,237,238],{"class":231},"\"",[201,240,222],{"class":221},[201,242,244,246,248,251,253],{"class":203,"line":243},3,[201,245,228],{"class":211},[201,247,232],{"class":231},[201,249,250],{"class":211},"Content-Type: application\u002Fjson",[201,252,238],{"class":231},[201,254,222],{"class":221},[201,256,258,261,264],{"class":203,"line":257},4,[201,259,260],{"class":211},"  -d",[201,262,263],{"class":231}," '",[201,265,266],{"class":211},"{\n",[201,268,270],{"class":203,"line":269},5,[201,271,272],{"class":211},"    \"name\": \"Cloud Certification Bundle (3 months)\",\n",[201,274,276],{"class":203,"line":275},6,[201,277,278],{"class":211},"    \"code\": \"cert-bundle-3m\",\n",[201,280,282],{"class":203,"line":281},7,[201,283,284],{"class":211},"    \"invoiceDisplayName\": \"Cloud Certification Bundle — 3 months\",\n",[201,286,288],{"class":203,"line":287},8,[201,289,290],{"class":211},"    \"prices\": [\n",[201,292,294],{"class":203,"line":293},9,[201,295,296],{"class":211},"      { \"currency\": \"UGX\", \"amount\": 450000 },\n",[201,298,300],{"class":203,"line":299},10,[201,301,302],{"class":211},"      { \"currency\": \"KES\", \"amount\": 16000 },\n",[201,304,306],{"class":203,"line":305},11,[201,307,308],{"class":211},"      { \"currency\": \"USD\", \"amount\": 120 }\n",[201,310,312],{"class":203,"line":311},12,[201,313,314],{"class":211},"    ]\n",[201,316,318,321],{"class":203,"line":317},13,[201,319,320],{"class":211},"  }",[201,322,323],{"class":231},"'\n",[138,325,326,329,330,333],{},[188,327,328],{},"GET \u002Fapi\u002Fadd-ons"," lists the catalogue. ",[188,331,332],{},"PATCH \u002Fapi\u002Fadd-ons\u002F{id}"," changes the name or prices; invoices that already exist keep the price they were sold at.",[180,335,337],{"id":336},"_2-sell-it","2. Sell it",[138,339,340,341,344,345,348],{},"Create an invoice with an item that names the add-on by ",[188,342,343],{},"addOnCode",". Its price in the invoice currency and its display name are filled in for you. Add ",[188,346,347],{},"checkout"," to get a payment link in the same call:",[192,350,352],{"className":194,"code":351,"language":196,"meta":197,"style":197},"curl -X POST https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices \\\n  -H \"Authorization: Bearer sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"customerId\": \"cus_123\",\n    \"currency\": \"UGX\",\n    \"items\": [{ \"addOnCode\": \"cert-bundle-3m\", \"quantity\": 1 }],\n    \"dueDate\": \"2026-11-09\",\n    \"checkout\": { \"callbackUrl\": \"https:\u002F\u002Flearn.example.com\u002Fpaid\" }\n  }'\n",[188,353,354,367,379,391,399,404,409,414,419,424],{"__ignoreMap":197},[201,355,356,358,360,362,365],{"class":203,"line":204},[201,357,208],{"class":207},[201,359,212],{"class":211},[201,361,215],{"class":211},[201,363,364],{"class":211}," https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices",[201,366,222],{"class":221},[201,368,369,371,373,375,377],{"class":203,"line":225},[201,370,228],{"class":211},[201,372,232],{"class":231},[201,374,235],{"class":211},[201,376,238],{"class":231},[201,378,222],{"class":221},[201,380,381,383,385,387,389],{"class":203,"line":243},[201,382,228],{"class":211},[201,384,232],{"class":231},[201,386,250],{"class":211},[201,388,238],{"class":231},[201,390,222],{"class":221},[201,392,393,395,397],{"class":203,"line":257},[201,394,260],{"class":211},[201,396,263],{"class":231},[201,398,266],{"class":211},[201,400,401],{"class":203,"line":269},[201,402,403],{"class":211},"    \"customerId\": \"cus_123\",\n",[201,405,406],{"class":203,"line":275},[201,407,408],{"class":211},"    \"currency\": \"UGX\",\n",[201,410,411],{"class":203,"line":281},[201,412,413],{"class":211},"    \"items\": [{ \"addOnCode\": \"cert-bundle-3m\", \"quantity\": 1 }],\n",[201,415,416],{"class":203,"line":287},[201,417,418],{"class":211},"    \"dueDate\": \"2026-11-09\",\n",[201,420,421],{"class":203,"line":293},[201,422,423],{"class":211},"    \"checkout\": { \"callbackUrl\": \"https:\u002F\u002Flearn.example.com\u002Fpaid\" }\n",[201,425,426,428],{"class":203,"line":299},[201,427,320],{"class":211},[201,429,323],{"class":231},[138,431,432,433,436,437,440],{},"Send the customer ",[188,434,435],{},"checkout.checkoutUrl",". When the payment is confirmed you receive ",[188,438,439],{},"invoice.paid",", and that is when you grant access.",[150,442,443,454,464],{},[153,444,445,446,449,450,453],{},"An item can still set ",[188,447,448],{},"unitAmount"," itself, for example a discounted price; ",[188,451,452],{},"description"," then overrides the display name.",[153,455,456,457,460,461,463],{},"If the add-on has no price in the invoice currency, the request fails with ",[188,458,459],{},"400",". Add the price, or pass ",[188,462,448],{},".",[153,465,466],{},"To sell several products together, add several items to the same invoice.",[180,468,470],{"id":469},"_3-let-them-pay-in-parts","3. Let them pay in parts",[138,472,473,474,477,478,481,482,485,486,489,490,463],{},"Every invoice has an ",[188,475,476],{},"amountPaid",", next to its ",[188,479,480],{},"amount",". A payment of less than what is due is counted, and the invoice ",[142,483,484],{},"stays open"," (",[188,487,488],{},"PENDING",") until the payments add up to the full amount. Then it becomes ",[188,491,492],{},"PAID",[494,495,497],"h3",{"id":496},"a-deposit-at-checkout","A deposit at checkout",[138,499,500,501,504],{},"Pass ",[188,502,503],{},"checkout.amount"," to charge part of the invoice now:",[192,506,510],{"className":507,"code":508,"language":509,"meta":197,"style":197},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"checkout\": { \"callbackUrl\": \"https:\u002F\u002Flearn.example.com\u002Fpaid\", \"amount\": 150000 }\n","json",[188,511,512],{"__ignoreMap":197},[201,513,514,516,518,520,523,526,528,532,534,537,539,542,544,547,549,551,553,555,559],{"class":203,"line":204},[201,515,238],{"class":231},[201,517,347],{"class":211},[201,519,238],{"class":231},[201,521,522],{"class":221},": ",[201,524,525],{"class":231},"{",[201,527,232],{"class":231},[201,529,531],{"class":530},"spNyl","callbackUrl",[201,533,238],{"class":231},[201,535,536],{"class":231},":",[201,538,232],{"class":231},[201,540,541],{"class":211},"https:\u002F\u002Flearn.example.com\u002Fpaid",[201,543,238],{"class":231},[201,545,546],{"class":231},",",[201,548,232],{"class":231},[201,550,480],{"class":530},[201,552,238],{"class":231},[201,554,536],{"class":231},[201,556,558],{"class":557},"sbssI"," 150000",[201,560,561],{"class":231}," }\n",[494,563,565],{"id":564},"the-next-instalment","The next instalment",[138,567,568,569,571],{},"Ask for a new payment link for the same invoice. Without ",[188,570,480],{},", the link charges everything still due:",[192,573,575],{"className":194,"code":574,"language":196,"meta":197,"style":197},"curl -X POST https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices\u002Finv_123\u002Fcheckout \\\n  -H \"Authorization: Bearer sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"amount\": 150000, \"callbackUrl\": \"https:\u002F\u002Flearn.example.com\u002Fpaid\" }'\n",[188,576,577,590,602,614],{"__ignoreMap":197},[201,578,579,581,583,585,588],{"class":203,"line":204},[201,580,208],{"class":207},[201,582,212],{"class":211},[201,584,215],{"class":211},[201,586,587],{"class":211}," https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices\u002Finv_123\u002Fcheckout",[201,589,222],{"class":221},[201,591,592,594,596,598,600],{"class":203,"line":225},[201,593,228],{"class":211},[201,595,232],{"class":231},[201,597,235],{"class":211},[201,599,238],{"class":231},[201,601,222],{"class":221},[201,603,604,606,608,610,612],{"class":203,"line":243},[201,605,228],{"class":211},[201,607,232],{"class":231},[201,609,250],{"class":211},[201,611,238],{"class":231},[201,613,222],{"class":221},[201,615,616,618,620,623],{"class":203,"line":257},[201,617,260],{"class":211},[201,619,263],{"class":231},[201,621,622],{"class":211},"{ \"amount\": 150000, \"callbackUrl\": \"https:\u002F\u002Flearn.example.com\u002Fpaid\" }",[201,624,323],{"class":231},[138,626,627],{},"The amount must be more than zero and at most what is still due.",[494,629,631],{"id":630},"cash-bank-transfer-or-mobile-money-paid-outside-pimabill","Cash, bank transfer or mobile money paid outside PimaBill",[138,633,634,635,638,639,641,642,644],{},"Record it with ",[188,636,637],{},"mark-paid"," and an ",[188,640,480],{},". Without ",[188,643,480],{},", it records everything still due:",[192,646,648],{"className":194,"code":647,"language":196,"meta":197,"style":197},"curl -X POST https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices\u002Finv_123\u002Fmark-paid \\\n  -H \"Authorization: Bearer sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"paymentMethod\": \"bank_transfer\", \"amount\": 150000 }'\n",[188,649,650,663,675,687],{"__ignoreMap":197},[201,651,652,654,656,658,661],{"class":203,"line":204},[201,653,208],{"class":207},[201,655,212],{"class":211},[201,657,215],{"class":211},[201,659,660],{"class":211}," https:\u002F\u002Fapi.pimabill.com\u002Fapi\u002Finvoices\u002Finv_123\u002Fmark-paid",[201,662,222],{"class":221},[201,664,665,667,669,671,673],{"class":203,"line":225},[201,666,228],{"class":211},[201,668,232],{"class":231},[201,670,235],{"class":211},[201,672,238],{"class":231},[201,674,222],{"class":221},[201,676,677,679,681,683,685],{"class":203,"line":243},[201,678,228],{"class":211},[201,680,232],{"class":231},[201,682,250],{"class":211},[201,684,238],{"class":231},[201,686,222],{"class":221},[201,688,689,691,693,696],{"class":203,"line":257},[201,690,260],{"class":211},[201,692,263],{"class":231},[201,694,695],{"class":211},"{ \"paymentMethod\": \"bank_transfer\", \"amount\": 150000 }",[201,697,323],{"class":231},[138,699,700,701,704,705,708,709,463],{},"In the dashboard, ",[142,702,703],{},"Mark paid"," has an ",[142,706,707],{},"Amount received"," field. Anything less than what is due records a part payment, and the invoice shows as ",[142,710,711],{},"partially paid",[494,713,715],{"id":714},"what-you-are-told","What you are told",[717,718,719,732],"table",{},[720,721,722],"thead",{},[723,724,725,729],"tr",{},[726,727,728],"th",{},"Webhook",[726,730,731],{},"When",[733,734,735,762,771],"tbody",{},[723,736,737,743],{},[738,739,740],"td",{},[188,741,742],{},"invoice.partially_paid",[738,744,745,746,748,749,751,752,751,755,758,759,463],{},"A payment was counted but something is still due. The payload has ",[188,747,480],{}," (this payment), ",[188,750,476],{},", ",[188,753,754],{},"amountDue",[188,756,757],{},"total"," and ",[188,760,761],{},"currency",[723,763,764,768],{},[738,765,766],{},[188,767,439],{},[738,769,770],{},"The payments now cover the invoice.",[723,772,773,778],{},[738,774,775],{},[188,776,777],{},"payment.succeeded",[738,779,780],{},"Each payment, partial or not.",[138,782,783,784,786,787,463],{},"Refunding a part payment takes it back off ",[188,785,476],{},", so the invoice is due that much more again. See ",[160,788,790],{"href":789},"\u002Fguides\u002Finvoices-and-payments#refund-a-payment","Refund a payment",[180,792,794],{"id":793},"deciding-when-to-give-access","Deciding when to give access",[138,796,797],{},"Partial payments are your policy, so choose what each payment unlocks:",[150,799,800,809,821],{},[153,801,802,805,806,808],{},[142,803,804],{},"Access on full payment"," (the simplest): grant on ",[188,807,439],{}," only.",[153,810,811,814,815,817,818,820],{},[142,812,813],{},"Access on the deposit",": grant on the first ",[188,816,742],{},", and remind or suspend if ",[188,819,439],{}," doesn't arrive by the date you set.",[153,822,823,826,827,829,830,832],{},[142,824,825],{},"Pro-rata access",": compare ",[188,828,476],{}," to ",[188,831,757],{}," and unlock that share, such as one module per instalment.",[138,834,835,836,839,840,751,843,758,845,463],{},"To check the state at any time, ",[188,837,838],{},"GET \u002Fapi\u002Finvoices\u002F{id}"," returns ",[188,841,842],{},"status",[188,844,480],{},[188,846,476],{},[180,848,850],{"id":849},"sandbox-first","Sandbox first",[138,852,853,854,857,858,861,862,864,865,463],{},"Do the whole flow with a ",[188,855,856],{},"sk_test_"," key against ",[188,859,860],{},"https:\u002F\u002Fsandbox.pimabill.com\u002Fapi"," first. The add-on ",[188,863,188],{}," is the same in both environments, but IDs (customers, invoices) are not, so store codes in your app rather than IDs. See ",[160,866,121],{"href":122},[868,869,870],"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 pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":197,"searchDepth":225,"depth":225,"links":872},[873,874,875,881,882],{"id":182,"depth":225,"text":183},{"id":336,"depth":225,"text":337},{"id":469,"depth":225,"text":470,"children":876},[877,878,879,880],{"id":496,"depth":243,"text":497},{"id":564,"depth":243,"text":565},{"id":630,"depth":243,"text":631},{"id":714,"depth":243,"text":715},{"id":793,"depth":225,"text":794},{"id":849,"depth":225,"text":850},"Sell bundles and courses that are paid once and never renew, and let customers pay with a deposit or in instalments.","md",null,{},true,{"title":93,"description":883},"yYw-ej_QW7uLoFKMQbNookHSRLrNXuOGl-wr46TRfRM",[891,893],{"title":89,"path":90,"stem":91,"description":892,"children":-1},"Take a one-time payment or start a plan, and send the customer a link to pay by card or mobile money.",{"title":97,"path":98,"stem":99,"description":894,"children":-1},"Create and manage subscription plans with multi-currency pricing and billing intervals.",1793401245667]