[{"data":1,"prerenderedAt":2327},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-quickstart":132,"-getting-started-quickstart-surround":2322},[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":14,"body":134,"description":2316,"extension":2317,"links":2318,"meta":2319,"navigation":684,"path":15,"seo":2320,"stem":16,"__hash__":2321},"docs\u002F1.getting-started\u002F2.quickstart.md",{"type":135,"value":136,"toc":2305},"minimark",[137,141,146,164,169,227,231,234,319,322,557,561,565,568,981,985,988,1378,1382,1385,1661,1664,1807,1811,1814,2073,2076,2246,2250,2301],[138,139,140],"p",{},"This guide walks you through the essential steps to start billing. By the end, you will have registered, added a customer, set up a plan, and started a subscription.",[142,143,145],"h2",{"id":144},"prerequisites","Prerequisites",[147,148,149,158],"ul",{},[150,151,152,153,157],"li",{},"A running PimaBill API (",[154,155,156],"code",{},"docker compose up","; it listens on port 4000)",[150,159,160,163],{},[154,161,162],{},"curl"," installed (for REST examples), or one of the PimaBill SDKs",[165,166,168],"h3",{"id":167},"install-an-sdk-optional","Install an SDK (Optional)",[170,171,173,198,213],"code-group",{"sync":172},"pkg",[174,175,181],"pre",{"className":176,"code":177,"filename":178,"language":179,"meta":180,"style":180},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install pimabill\n","npm","bash","",[154,182,183],{"__ignoreMap":180},[184,185,188,191,195],"span",{"class":186,"line":187},"line",1,[184,189,178],{"class":190},"sBMFI",[184,192,194],{"class":193},"sfazB"," install",[184,196,197],{"class":193}," pimabill\n",[174,199,202],{"className":176,"code":200,"filename":201,"language":179,"meta":180,"style":180},"yarn add pimabill\n","yarn",[154,203,204],{"__ignoreMap":180},[184,205,206,208,211],{"class":186,"line":187},[184,207,201],{"class":190},[184,209,210],{"class":193}," add",[184,212,197],{"class":193},[174,214,217],{"className":176,"code":215,"filename":216,"language":179,"meta":180,"style":180},"pip install pimabill\n","pip",[154,218,219],{"__ignoreMap":180},[184,220,221,223,225],{"class":186,"line":187},[184,222,216],{"class":190},[184,224,194],{"class":193},[184,226,197],{"class":193},[142,228,230],{"id":229},"step-1-register","Step 1: Register",[138,232,233],{},"Create your organisation, from the dashboard's sign-up page or the API. Each organisation gets its own isolated database.",[174,235,237],{"className":176,"code":236,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fauth\u002Fregister \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"John Doe\",\n    \"email\": \"admin@acme.com\",\n    \"password\": \"securepassword123\",\n    \"companyName\": \"Acme Corp\"\n  }'\n",[154,238,239,256,274,286,292,298,304,310],{"__ignoreMap":180},[184,240,241,243,246,249,252],{"class":186,"line":187},[184,242,162],{"class":190},[184,244,245],{"class":193}," -X",[184,247,248],{"class":193}," POST",[184,250,251],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fauth\u002Fregister",[184,253,255],{"class":254},"sTEyZ"," \\\n",[184,257,259,262,266,269,272],{"class":186,"line":258},2,[184,260,261],{"class":193},"  -H",[184,263,265],{"class":264},"sMK4o"," \"",[184,267,268],{"class":193},"Content-Type: application\u002Fjson",[184,270,271],{"class":264},"\"",[184,273,255],{"class":254},[184,275,277,280,283],{"class":186,"line":276},3,[184,278,279],{"class":193},"  -d",[184,281,282],{"class":264}," '",[184,284,285],{"class":193},"{\n",[184,287,289],{"class":186,"line":288},4,[184,290,291],{"class":193},"    \"name\": \"John Doe\",\n",[184,293,295],{"class":186,"line":294},5,[184,296,297],{"class":193},"    \"email\": \"admin@acme.com\",\n",[184,299,301],{"class":186,"line":300},6,[184,302,303],{"class":193},"    \"password\": \"securepassword123\",\n",[184,305,307],{"class":186,"line":306},7,[184,308,309],{"class":193},"    \"companyName\": \"Acme Corp\"\n",[184,311,313,316],{"class":186,"line":312},8,[184,314,315],{"class":193},"  }",[184,317,318],{"class":264},"'\n",[138,320,321],{},"The response signs you in and includes the organisation's first API key:",[174,323,327],{"className":324,"code":325,"language":326,"meta":180,"style":180},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"apiKey\": \"sk_live_a1b2c3d4...\",\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n  \"refreshToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n  \"role\": \"OWNER\",\n  \"user\": { \"id\": \"usr_...\", \"name\": \"John Doe\", \"email\": \"admin@acme.com\" },\n  \"tenant\": { \"id\": \"ten_...\", \"name\": \"Acme Corp\", \"slug\": \"acme-corp\" }\n}\n","json",[154,328,329,333,357,377,396,416,486,552],{"__ignoreMap":180},[184,330,331],{"class":186,"line":187},[184,332,285],{"class":264},[184,334,335,338,342,344,347,349,352,354],{"class":186,"line":258},[184,336,337],{"class":264},"  \"",[184,339,341],{"class":340},"spNyl","apiKey",[184,343,271],{"class":264},[184,345,346],{"class":264},":",[184,348,265],{"class":264},[184,350,351],{"class":193},"sk_live_a1b2c3d4...",[184,353,271],{"class":264},[184,355,356],{"class":264},",\n",[184,358,359,361,364,366,368,370,373,375],{"class":186,"line":276},[184,360,337],{"class":264},[184,362,363],{"class":340},"accessToken",[184,365,271],{"class":264},[184,367,346],{"class":264},[184,369,265],{"class":264},[184,371,372],{"class":193},"eyJhbGciOiJIUzI1NiIs...",[184,374,271],{"class":264},[184,376,356],{"class":264},[184,378,379,381,384,386,388,390,392,394],{"class":186,"line":288},[184,380,337],{"class":264},[184,382,383],{"class":340},"refreshToken",[184,385,271],{"class":264},[184,387,346],{"class":264},[184,389,265],{"class":264},[184,391,372],{"class":193},[184,393,271],{"class":264},[184,395,356],{"class":264},[184,397,398,400,403,405,407,409,412,414],{"class":186,"line":294},[184,399,337],{"class":264},[184,401,402],{"class":340},"role",[184,404,271],{"class":264},[184,406,346],{"class":264},[184,408,265],{"class":264},[184,410,411],{"class":193},"OWNER",[184,413,271],{"class":264},[184,415,356],{"class":264},[184,417,418,420,423,425,427,430,432,435,437,439,441,444,446,449,451,454,456,458,460,463,465,467,469,472,474,476,478,481,483],{"class":186,"line":300},[184,419,337],{"class":264},[184,421,422],{"class":340},"user",[184,424,271],{"class":264},[184,426,346],{"class":264},[184,428,429],{"class":264}," {",[184,431,265],{"class":264},[184,433,434],{"class":190},"id",[184,436,271],{"class":264},[184,438,346],{"class":264},[184,440,265],{"class":264},[184,442,443],{"class":193},"usr_...",[184,445,271],{"class":264},[184,447,448],{"class":264},",",[184,450,265],{"class":264},[184,452,453],{"class":190},"name",[184,455,271],{"class":264},[184,457,346],{"class":264},[184,459,265],{"class":264},[184,461,462],{"class":193},"John Doe",[184,464,271],{"class":264},[184,466,448],{"class":264},[184,468,265],{"class":264},[184,470,471],{"class":190},"email",[184,473,271],{"class":264},[184,475,346],{"class":264},[184,477,265],{"class":264},[184,479,480],{"class":193},"admin@acme.com",[184,482,271],{"class":264},[184,484,485],{"class":264}," },\n",[184,487,488,490,493,495,497,499,501,503,505,507,509,512,514,516,518,520,522,524,526,529,531,533,535,538,540,542,544,547,549],{"class":186,"line":306},[184,489,337],{"class":264},[184,491,492],{"class":340},"tenant",[184,494,271],{"class":264},[184,496,346],{"class":264},[184,498,429],{"class":264},[184,500,265],{"class":264},[184,502,434],{"class":190},[184,504,271],{"class":264},[184,506,346],{"class":264},[184,508,265],{"class":264},[184,510,511],{"class":193},"ten_...",[184,513,271],{"class":264},[184,515,448],{"class":264},[184,517,265],{"class":264},[184,519,453],{"class":190},[184,521,271],{"class":264},[184,523,346],{"class":264},[184,525,265],{"class":264},[184,527,528],{"class":193},"Acme Corp",[184,530,271],{"class":264},[184,532,448],{"class":264},[184,534,265],{"class":264},[184,536,537],{"class":190},"slug",[184,539,271],{"class":264},[184,541,346],{"class":264},[184,543,265],{"class":264},[184,545,546],{"class":193},"acme-corp",[184,548,271],{"class":264},[184,550,551],{"class":264}," }\n",[184,553,554],{"class":186,"line":312},[184,555,556],{"class":264},"}\n",[558,559,560],"warning",{},"Store the API key securely. It is only shown in full when it is created.",[142,562,564],{"id":563},"step-2-create-more-api-keys-optional","Step 2: Create More API Keys (Optional)",[138,566,567],{},"Give each service its own named key with only the scopes it needs. Account settings like API keys are managed while signed in, with the access token from Step 1.",[170,569,571,644,921],{"sync":570},"lang",[174,572,575],{"className":176,"code":573,"filename":574,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Ftenants\u002Fme\u002Fapi-keys \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer eyJhbGciOiJIUzI1NiIs...\" \\\n  -d '{\n    \"name\": \"Production Key\",\n    \"scopes\": [\"customers:read\", \"customers:write\", \"plans:read\", \"plans:write\",\n               \"subscriptions:read\", \"subscriptions:write\", \"invoices:read\", \"payments:read\"]\n  }'\n","cURL",[154,576,577,590,602,615,623,628,633,638],{"__ignoreMap":180},[184,578,579,581,583,585,588],{"class":186,"line":187},[184,580,162],{"class":190},[184,582,245],{"class":193},[184,584,248],{"class":193},[184,586,587],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Ftenants\u002Fme\u002Fapi-keys",[184,589,255],{"class":254},[184,591,592,594,596,598,600],{"class":186,"line":258},[184,593,261],{"class":193},[184,595,265],{"class":264},[184,597,268],{"class":193},[184,599,271],{"class":264},[184,601,255],{"class":254},[184,603,604,606,608,611,613],{"class":186,"line":276},[184,605,261],{"class":193},[184,607,265],{"class":264},[184,609,610],{"class":193},"Authorization: Bearer eyJhbGciOiJIUzI1NiIs...",[184,612,271],{"class":264},[184,614,255],{"class":254},[184,616,617,619,621],{"class":186,"line":288},[184,618,279],{"class":193},[184,620,282],{"class":264},[184,622,285],{"class":193},[184,624,625],{"class":186,"line":294},[184,626,627],{"class":193},"    \"name\": \"Production Key\",\n",[184,629,630],{"class":186,"line":300},[184,631,632],{"class":193},"    \"scopes\": [\"customers:read\", \"customers:write\", \"plans:read\", \"plans:write\",\n",[184,634,635],{"class":186,"line":306},[184,636,637],{"class":193},"               \"subscriptions:read\", \"subscriptions:write\", \"invoices:read\", \"payments:read\"]\n",[184,639,640,642],{"class":186,"line":312},[184,641,315],{"class":193},[184,643,318],{"class":264},[174,645,650],{"className":646,"code":647,"filename":648,"language":649,"meta":180,"style":180},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { PimaBillClient } from 'pimabill';\n\nconst account = new PimaBillClient({ token: 'eyJhbGciOiJIUzI1NiIs...' }); \u002F\u002F the access token\n\nconst apiKey = await account.apiKeys.create({\n  name: 'Production Key',\n  scopes: ['customers:read', 'customers:write', 'plans:read', 'plans:write',\n           'subscriptions:read', 'subscriptions:write', 'invoices:read', 'payments:read'],\n});\n\nconsole.log('API Key:', apiKey.key); \u002F\u002F Store this securely!\n","TypeScript","typescript",[154,651,652,680,686,733,737,767,783,829,871,881,886],{"__ignoreMap":180},[184,653,654,658,660,663,666,669,671,674,677],{"class":186,"line":187},[184,655,657],{"class":656},"s7zQu","import",[184,659,429],{"class":264},[184,661,662],{"class":254}," PimaBillClient",[184,664,665],{"class":264}," }",[184,667,668],{"class":656}," from",[184,670,282],{"class":264},[184,672,673],{"class":193},"pimabill",[184,675,676],{"class":264},"'",[184,678,679],{"class":264},";\n",[184,681,682],{"class":186,"line":258},[184,683,685],{"emptyLinePlaceholder":684},true,"\n",[184,687,688,691,694,697,700,703,706,709,713,715,717,719,721,723,726,729],{"class":186,"line":276},[184,689,690],{"class":340},"const",[184,692,693],{"class":254}," account ",[184,695,696],{"class":264},"=",[184,698,699],{"class":264}," new",[184,701,662],{"class":702},"s2Zo4",[184,704,705],{"class":254},"(",[184,707,708],{"class":264},"{",[184,710,712],{"class":711},"swJcz"," token",[184,714,346],{"class":264},[184,716,282],{"class":264},[184,718,372],{"class":193},[184,720,676],{"class":264},[184,722,665],{"class":264},[184,724,725],{"class":254},")",[184,727,728],{"class":264},";",[184,730,732],{"class":731},"sHwdD"," \u002F\u002F the access token\n",[184,734,735],{"class":186,"line":288},[184,736,685],{"emptyLinePlaceholder":684},[184,738,739,741,744,746,749,752,755,758,760,763,765],{"class":186,"line":294},[184,740,690],{"class":340},[184,742,743],{"class":254}," apiKey ",[184,745,696],{"class":264},[184,747,748],{"class":656}," await",[184,750,751],{"class":254}," account",[184,753,754],{"class":264},".",[184,756,757],{"class":254},"apiKeys",[184,759,754],{"class":264},[184,761,762],{"class":702},"create",[184,764,705],{"class":254},[184,766,285],{"class":264},[184,768,769,772,774,776,779,781],{"class":186,"line":300},[184,770,771],{"class":711},"  name",[184,773,346],{"class":264},[184,775,282],{"class":264},[184,777,778],{"class":193},"Production Key",[184,780,676],{"class":264},[184,782,356],{"class":264},[184,784,785,788,790,793,795,798,800,802,804,807,809,811,813,816,818,820,822,825,827],{"class":186,"line":306},[184,786,787],{"class":711},"  scopes",[184,789,346],{"class":264},[184,791,792],{"class":254}," [",[184,794,676],{"class":264},[184,796,797],{"class":193},"customers:read",[184,799,676],{"class":264},[184,801,448],{"class":264},[184,803,282],{"class":264},[184,805,806],{"class":193},"customers:write",[184,808,676],{"class":264},[184,810,448],{"class":264},[184,812,282],{"class":264},[184,814,815],{"class":193},"plans:read",[184,817,676],{"class":264},[184,819,448],{"class":264},[184,821,282],{"class":264},[184,823,824],{"class":193},"plans:write",[184,826,676],{"class":264},[184,828,356],{"class":264},[184,830,831,834,837,839,841,843,846,848,850,852,855,857,859,861,864,866,869],{"class":186,"line":312},[184,832,833],{"class":264},"           '",[184,835,836],{"class":193},"subscriptions:read",[184,838,676],{"class":264},[184,840,448],{"class":264},[184,842,282],{"class":264},[184,844,845],{"class":193},"subscriptions:write",[184,847,676],{"class":264},[184,849,448],{"class":264},[184,851,282],{"class":264},[184,853,854],{"class":193},"invoices:read",[184,856,676],{"class":264},[184,858,448],{"class":264},[184,860,282],{"class":264},[184,862,863],{"class":193},"payments:read",[184,865,676],{"class":264},[184,867,868],{"class":254},"]",[184,870,356],{"class":264},[184,872,874,877,879],{"class":186,"line":873},9,[184,875,876],{"class":264},"}",[184,878,725],{"class":254},[184,880,679],{"class":264},[184,882,884],{"class":186,"line":883},10,[184,885,685],{"emptyLinePlaceholder":684},[184,887,889,892,894,897,899,901,904,906,908,911,913,916,918],{"class":186,"line":888},11,[184,890,891],{"class":254},"console",[184,893,754],{"class":264},[184,895,896],{"class":702},"log",[184,898,705],{"class":254},[184,900,676],{"class":264},[184,902,903],{"class":193},"API Key:",[184,905,676],{"class":264},[184,907,448],{"class":264},[184,909,910],{"class":254}," apiKey",[184,912,754],{"class":264},[184,914,915],{"class":254},"key)",[184,917,728],{"class":264},[184,919,920],{"class":731}," \u002F\u002F Store this securely!\n",[174,922,927],{"className":923,"code":924,"filename":925,"language":926,"meta":180,"style":180},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from pimabill import PimaBillClient\n\naccount = PimaBillClient(token=\"eyJhbGciOiJIUzI1NiIs...\")  # the access token\n\napi_key = account.api_keys.create(\n    name=\"Production Key\",\n    scopes=[\"customers:read\", \"customers:write\", \"plans:read\", \"plans:write\",\n            \"subscriptions:read\", \"subscriptions:write\", \"invoices:read\", \"payments:read\"],\n)\n\nprint(f\"API Key: {api_key.key}\")  # Store this securely!\n","Python","python",[154,928,929,934,938,943,947,952,957,962,967,972,976],{"__ignoreMap":180},[184,930,931],{"class":186,"line":187},[184,932,933],{},"from pimabill import PimaBillClient\n",[184,935,936],{"class":186,"line":258},[184,937,685],{"emptyLinePlaceholder":684},[184,939,940],{"class":186,"line":276},[184,941,942],{},"account = PimaBillClient(token=\"eyJhbGciOiJIUzI1NiIs...\")  # the access token\n",[184,944,945],{"class":186,"line":288},[184,946,685],{"emptyLinePlaceholder":684},[184,948,949],{"class":186,"line":294},[184,950,951],{},"api_key = account.api_keys.create(\n",[184,953,954],{"class":186,"line":300},[184,955,956],{},"    name=\"Production Key\",\n",[184,958,959],{"class":186,"line":306},[184,960,961],{},"    scopes=[\"customers:read\", \"customers:write\", \"plans:read\", \"plans:write\",\n",[184,963,964],{"class":186,"line":312},[184,965,966],{},"            \"subscriptions:read\", \"subscriptions:write\", \"invoices:read\", \"payments:read\"],\n",[184,968,969],{"class":186,"line":873},[184,970,971],{},")\n",[184,973,974],{"class":186,"line":883},[184,975,685],{"emptyLinePlaceholder":684},[184,977,978],{"class":186,"line":888},[184,979,980],{},"print(f\"API Key: {api_key.key}\")  # Store this securely!\n",[142,982,984],{"id":983},"step-3-create-your-first-customer","Step 3: Create Your First Customer",[138,986,987],{},"From here on, everything uses an API key as the Bearer token.",[170,989,990,1072,1313],{"sync":570},[174,991,993],{"className":176,"code":992,"filename":574,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fcustomers \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer sk_live_a1b2c3d4...\" \\\n  -d '{\n    \"externalId\": \"usr_sarah_01\",\n    \"email\": \"sarah@kampaltech.ug\",\n    \"name\": \"Nakato Sarah\",\n    \"country\": \"UG\",\n    \"currency\": \"UGX\"\n  }'\n",[154,994,995,1008,1020,1033,1041,1046,1051,1056,1061,1066],{"__ignoreMap":180},[184,996,997,999,1001,1003,1006],{"class":186,"line":187},[184,998,162],{"class":190},[184,1000,245],{"class":193},[184,1002,248],{"class":193},[184,1004,1005],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fcustomers",[184,1007,255],{"class":254},[184,1009,1010,1012,1014,1016,1018],{"class":186,"line":258},[184,1011,261],{"class":193},[184,1013,265],{"class":264},[184,1015,268],{"class":193},[184,1017,271],{"class":264},[184,1019,255],{"class":254},[184,1021,1022,1024,1026,1029,1031],{"class":186,"line":276},[184,1023,261],{"class":193},[184,1025,265],{"class":264},[184,1027,1028],{"class":193},"Authorization: Bearer sk_live_a1b2c3d4...",[184,1030,271],{"class":264},[184,1032,255],{"class":254},[184,1034,1035,1037,1039],{"class":186,"line":288},[184,1036,279],{"class":193},[184,1038,282],{"class":264},[184,1040,285],{"class":193},[184,1042,1043],{"class":186,"line":294},[184,1044,1045],{"class":193},"    \"externalId\": \"usr_sarah_01\",\n",[184,1047,1048],{"class":186,"line":300},[184,1049,1050],{"class":193},"    \"email\": \"sarah@kampaltech.ug\",\n",[184,1052,1053],{"class":186,"line":306},[184,1054,1055],{"class":193},"    \"name\": \"Nakato Sarah\",\n",[184,1057,1058],{"class":186,"line":312},[184,1059,1060],{"class":193},"    \"country\": \"UG\",\n",[184,1062,1063],{"class":186,"line":873},[184,1064,1065],{"class":193},"    \"currency\": \"UGX\"\n",[184,1067,1068,1070],{"class":186,"line":883},[184,1069,315],{"class":193},[184,1071,318],{"class":264},[174,1073,1075],{"className":646,"code":1074,"filename":648,"language":649,"meta":180,"style":180},"import { PimaBillClient } from 'pimabill';\n\nconst client = new PimaBillClient({\n  token: 'sk_live_a1b2c3d4...',\n  baseUrl: 'http:\u002F\u002Flocalhost:4000',\n});\n\nconst customer = await client.customers.create({\n  externalId: 'usr_sarah_01',\n  email: 'sarah@kampaltech.ug',\n  name: 'Nakato Sarah',\n  country: 'UG',\n  currency: 'UGX',\n});\n\nconsole.log('Customer ID:', customer.id);\n",[154,1076,1077,1097,1101,1118,1133,1149,1157,1161,1188,1204,1220,1235,1252,1269,1278,1283],{"__ignoreMap":180},[184,1078,1079,1081,1083,1085,1087,1089,1091,1093,1095],{"class":186,"line":187},[184,1080,657],{"class":656},[184,1082,429],{"class":264},[184,1084,662],{"class":254},[184,1086,665],{"class":264},[184,1088,668],{"class":656},[184,1090,282],{"class":264},[184,1092,673],{"class":193},[184,1094,676],{"class":264},[184,1096,679],{"class":264},[184,1098,1099],{"class":186,"line":258},[184,1100,685],{"emptyLinePlaceholder":684},[184,1102,1103,1105,1108,1110,1112,1114,1116],{"class":186,"line":276},[184,1104,690],{"class":340},[184,1106,1107],{"class":254}," client ",[184,1109,696],{"class":264},[184,1111,699],{"class":264},[184,1113,662],{"class":702},[184,1115,705],{"class":254},[184,1117,285],{"class":264},[184,1119,1120,1123,1125,1127,1129,1131],{"class":186,"line":288},[184,1121,1122],{"class":711},"  token",[184,1124,346],{"class":264},[184,1126,282],{"class":264},[184,1128,351],{"class":193},[184,1130,676],{"class":264},[184,1132,356],{"class":264},[184,1134,1135,1138,1140,1142,1145,1147],{"class":186,"line":294},[184,1136,1137],{"class":711},"  baseUrl",[184,1139,346],{"class":264},[184,1141,282],{"class":264},[184,1143,1144],{"class":193},"http:\u002F\u002Flocalhost:4000",[184,1146,676],{"class":264},[184,1148,356],{"class":264},[184,1150,1151,1153,1155],{"class":186,"line":300},[184,1152,876],{"class":264},[184,1154,725],{"class":254},[184,1156,679],{"class":264},[184,1158,1159],{"class":186,"line":306},[184,1160,685],{"emptyLinePlaceholder":684},[184,1162,1163,1165,1168,1170,1172,1175,1177,1180,1182,1184,1186],{"class":186,"line":312},[184,1164,690],{"class":340},[184,1166,1167],{"class":254}," customer ",[184,1169,696],{"class":264},[184,1171,748],{"class":656},[184,1173,1174],{"class":254}," client",[184,1176,754],{"class":264},[184,1178,1179],{"class":254},"customers",[184,1181,754],{"class":264},[184,1183,762],{"class":702},[184,1185,705],{"class":254},[184,1187,285],{"class":264},[184,1189,1190,1193,1195,1197,1200,1202],{"class":186,"line":873},[184,1191,1192],{"class":711},"  externalId",[184,1194,346],{"class":264},[184,1196,282],{"class":264},[184,1198,1199],{"class":193},"usr_sarah_01",[184,1201,676],{"class":264},[184,1203,356],{"class":264},[184,1205,1206,1209,1211,1213,1216,1218],{"class":186,"line":883},[184,1207,1208],{"class":711},"  email",[184,1210,346],{"class":264},[184,1212,282],{"class":264},[184,1214,1215],{"class":193},"sarah@kampaltech.ug",[184,1217,676],{"class":264},[184,1219,356],{"class":264},[184,1221,1222,1224,1226,1228,1231,1233],{"class":186,"line":888},[184,1223,771],{"class":711},[184,1225,346],{"class":264},[184,1227,282],{"class":264},[184,1229,1230],{"class":193},"Nakato Sarah",[184,1232,676],{"class":264},[184,1234,356],{"class":264},[184,1236,1238,1241,1243,1245,1248,1250],{"class":186,"line":1237},12,[184,1239,1240],{"class":711},"  country",[184,1242,346],{"class":264},[184,1244,282],{"class":264},[184,1246,1247],{"class":193},"UG",[184,1249,676],{"class":264},[184,1251,356],{"class":264},[184,1253,1255,1258,1260,1262,1265,1267],{"class":186,"line":1254},13,[184,1256,1257],{"class":711},"  currency",[184,1259,346],{"class":264},[184,1261,282],{"class":264},[184,1263,1264],{"class":193},"UGX",[184,1266,676],{"class":264},[184,1268,356],{"class":264},[184,1270,1272,1274,1276],{"class":186,"line":1271},14,[184,1273,876],{"class":264},[184,1275,725],{"class":254},[184,1277,679],{"class":264},[184,1279,1281],{"class":186,"line":1280},15,[184,1282,685],{"emptyLinePlaceholder":684},[184,1284,1286,1288,1290,1292,1294,1296,1299,1301,1303,1306,1308,1311],{"class":186,"line":1285},16,[184,1287,891],{"class":254},[184,1289,754],{"class":264},[184,1291,896],{"class":702},[184,1293,705],{"class":254},[184,1295,676],{"class":264},[184,1297,1298],{"class":193},"Customer ID:",[184,1300,676],{"class":264},[184,1302,448],{"class":264},[184,1304,1305],{"class":254}," customer",[184,1307,754],{"class":264},[184,1309,1310],{"class":254},"id)",[184,1312,679],{"class":264},[174,1314,1316],{"className":923,"code":1315,"filename":925,"language":926,"meta":180,"style":180},"from pimabill import PimaBillClient\n\nclient = PimaBillClient(token=\"sk_live_a1b2c3d4...\", base_url=\"http:\u002F\u002Flocalhost:4000\")\n\ncustomer = client.customers.create(\n    external_id=\"usr_sarah_01\",\n    email=\"sarah@kampaltech.ug\",\n    name=\"Nakato Sarah\",\n    country=\"UG\",\n    currency=\"UGX\",\n)\n\nprint(f\"Customer ID: {customer.id}\")\n",[154,1317,1318,1322,1326,1331,1335,1340,1345,1350,1355,1360,1365,1369,1373],{"__ignoreMap":180},[184,1319,1320],{"class":186,"line":187},[184,1321,933],{},[184,1323,1324],{"class":186,"line":258},[184,1325,685],{"emptyLinePlaceholder":684},[184,1327,1328],{"class":186,"line":276},[184,1329,1330],{},"client = PimaBillClient(token=\"sk_live_a1b2c3d4...\", base_url=\"http:\u002F\u002Flocalhost:4000\")\n",[184,1332,1333],{"class":186,"line":288},[184,1334,685],{"emptyLinePlaceholder":684},[184,1336,1337],{"class":186,"line":294},[184,1338,1339],{},"customer = client.customers.create(\n",[184,1341,1342],{"class":186,"line":300},[184,1343,1344],{},"    external_id=\"usr_sarah_01\",\n",[184,1346,1347],{"class":186,"line":306},[184,1348,1349],{},"    email=\"sarah@kampaltech.ug\",\n",[184,1351,1352],{"class":186,"line":312},[184,1353,1354],{},"    name=\"Nakato Sarah\",\n",[184,1356,1357],{"class":186,"line":873},[184,1358,1359],{},"    country=\"UG\",\n",[184,1361,1362],{"class":186,"line":883},[184,1363,1364],{},"    currency=\"UGX\",\n",[184,1366,1367],{"class":186,"line":888},[184,1368,971],{},[184,1370,1371],{"class":186,"line":1237},[184,1372,685],{"emptyLinePlaceholder":684},[184,1374,1375],{"class":186,"line":1254},[184,1376,1377],{},"print(f\"Customer ID: {customer.id}\")\n",[142,1379,1381],{"id":1380},"step-4-create-a-plan","Step 4: Create a Plan",[138,1383,1384],{},"Define a billing plan with pricing.",[170,1386,1387,1463,1618],{"sync":570},[174,1388,1390],{"className":176,"code":1389,"filename":574,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fplans \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer sk_live_a1b2c3d4...\" \\\n  -d '{\n    \"name\": \"Pro Plan\",\n    \"code\": \"pro\",\n    \"billingInterval\": \"MONTHLY\",\n    \"features\": [\"Unlimited projects\", \"Priority support\", \"API access\"]\n  }'\n",[154,1391,1392,1405,1417,1429,1437,1442,1447,1452,1457],{"__ignoreMap":180},[184,1393,1394,1396,1398,1400,1403],{"class":186,"line":187},[184,1395,162],{"class":190},[184,1397,245],{"class":193},[184,1399,248],{"class":193},[184,1401,1402],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fplans",[184,1404,255],{"class":254},[184,1406,1407,1409,1411,1413,1415],{"class":186,"line":258},[184,1408,261],{"class":193},[184,1410,265],{"class":264},[184,1412,268],{"class":193},[184,1414,271],{"class":264},[184,1416,255],{"class":254},[184,1418,1419,1421,1423,1425,1427],{"class":186,"line":276},[184,1420,261],{"class":193},[184,1422,265],{"class":264},[184,1424,1028],{"class":193},[184,1426,271],{"class":264},[184,1428,255],{"class":254},[184,1430,1431,1433,1435],{"class":186,"line":288},[184,1432,279],{"class":193},[184,1434,282],{"class":264},[184,1436,285],{"class":193},[184,1438,1439],{"class":186,"line":294},[184,1440,1441],{"class":193},"    \"name\": \"Pro Plan\",\n",[184,1443,1444],{"class":186,"line":300},[184,1445,1446],{"class":193},"    \"code\": \"pro\",\n",[184,1448,1449],{"class":186,"line":306},[184,1450,1451],{"class":193},"    \"billingInterval\": \"MONTHLY\",\n",[184,1453,1454],{"class":186,"line":312},[184,1455,1456],{"class":193},"    \"features\": [\"Unlimited projects\", \"Priority support\", \"API access\"]\n",[184,1458,1459,1461],{"class":186,"line":873},[184,1460,315],{"class":193},[184,1462,318],{"class":264},[174,1464,1466],{"className":646,"code":1465,"filename":648,"language":649,"meta":180,"style":180},"const plan = await client.plans.create({\n  name: 'Pro Plan',\n  code: 'pro',\n  billingInterval: 'MONTHLY',\n  features: ['Unlimited projects', 'Priority support', 'API access']\n});\n\nconsole.log('Plan ID:', plan.id);\n",[154,1467,1468,1494,1509,1525,1541,1578,1586,1590],{"__ignoreMap":180},[184,1469,1470,1472,1475,1477,1479,1481,1483,1486,1488,1490,1492],{"class":186,"line":187},[184,1471,690],{"class":340},[184,1473,1474],{"class":254}," plan ",[184,1476,696],{"class":264},[184,1478,748],{"class":656},[184,1480,1174],{"class":254},[184,1482,754],{"class":264},[184,1484,1485],{"class":254},"plans",[184,1487,754],{"class":264},[184,1489,762],{"class":702},[184,1491,705],{"class":254},[184,1493,285],{"class":264},[184,1495,1496,1498,1500,1502,1505,1507],{"class":186,"line":258},[184,1497,771],{"class":711},[184,1499,346],{"class":264},[184,1501,282],{"class":264},[184,1503,1504],{"class":193},"Pro Plan",[184,1506,676],{"class":264},[184,1508,356],{"class":264},[184,1510,1511,1514,1516,1518,1521,1523],{"class":186,"line":276},[184,1512,1513],{"class":711},"  code",[184,1515,346],{"class":264},[184,1517,282],{"class":264},[184,1519,1520],{"class":193},"pro",[184,1522,676],{"class":264},[184,1524,356],{"class":264},[184,1526,1527,1530,1532,1534,1537,1539],{"class":186,"line":288},[184,1528,1529],{"class":711},"  billingInterval",[184,1531,346],{"class":264},[184,1533,282],{"class":264},[184,1535,1536],{"class":193},"MONTHLY",[184,1538,676],{"class":264},[184,1540,356],{"class":264},[184,1542,1543,1546,1548,1550,1552,1555,1557,1559,1561,1564,1566,1568,1570,1573,1575],{"class":186,"line":294},[184,1544,1545],{"class":711},"  features",[184,1547,346],{"class":264},[184,1549,792],{"class":254},[184,1551,676],{"class":264},[184,1553,1554],{"class":193},"Unlimited projects",[184,1556,676],{"class":264},[184,1558,448],{"class":264},[184,1560,282],{"class":264},[184,1562,1563],{"class":193},"Priority support",[184,1565,676],{"class":264},[184,1567,448],{"class":264},[184,1569,282],{"class":264},[184,1571,1572],{"class":193},"API access",[184,1574,676],{"class":264},[184,1576,1577],{"class":254},"]\n",[184,1579,1580,1582,1584],{"class":186,"line":300},[184,1581,876],{"class":264},[184,1583,725],{"class":254},[184,1585,679],{"class":264},[184,1587,1588],{"class":186,"line":306},[184,1589,685],{"emptyLinePlaceholder":684},[184,1591,1592,1594,1596,1598,1600,1602,1605,1607,1609,1612,1614,1616],{"class":186,"line":312},[184,1593,891],{"class":254},[184,1595,754],{"class":264},[184,1597,896],{"class":702},[184,1599,705],{"class":254},[184,1601,676],{"class":264},[184,1603,1604],{"class":193},"Plan ID:",[184,1606,676],{"class":264},[184,1608,448],{"class":264},[184,1610,1611],{"class":254}," plan",[184,1613,754],{"class":264},[184,1615,1310],{"class":254},[184,1617,679],{"class":264},[174,1619,1621],{"className":923,"code":1620,"filename":925,"language":926,"meta":180,"style":180},"plan = client.plans.create(\n    name=\"Pro Plan\",\n    code=\"pro\",\n    billing_interval=\"MONTHLY\",\n    features=[\"Unlimited projects\", \"Priority support\", \"API access\"]\n)\n\nprint(f\"Plan ID: {plan.id}\")\n",[154,1622,1623,1628,1633,1638,1643,1648,1652,1656],{"__ignoreMap":180},[184,1624,1625],{"class":186,"line":187},[184,1626,1627],{},"plan = client.plans.create(\n",[184,1629,1630],{"class":186,"line":258},[184,1631,1632],{},"    name=\"Pro Plan\",\n",[184,1634,1635],{"class":186,"line":276},[184,1636,1637],{},"    code=\"pro\",\n",[184,1639,1640],{"class":186,"line":288},[184,1641,1642],{},"    billing_interval=\"MONTHLY\",\n",[184,1644,1645],{"class":186,"line":294},[184,1646,1647],{},"    features=[\"Unlimited projects\", \"Priority support\", \"API access\"]\n",[184,1649,1650],{"class":186,"line":300},[184,1651,971],{},[184,1653,1654],{"class":186,"line":306},[184,1655,685],{"emptyLinePlaceholder":684},[184,1657,1658],{"class":186,"line":312},[184,1659,1660],{},"print(f\"Plan ID: {plan.id}\")\n",[138,1662,1663],{},"Then add a price for the plan:",[170,1665,1666,1719,1779],{"sync":570},[174,1667,1669],{"className":176,"code":1668,"filename":574,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fplans\u002F{plan_id}\u002Fprices \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer sk_live_a1b2c3d4...\" \\\n  -d '{\"currency\": \"UGX\", \"amount\": 180000}'\n",[154,1670,1671,1684,1696,1708],{"__ignoreMap":180},[184,1672,1673,1675,1677,1679,1682],{"class":186,"line":187},[184,1674,162],{"class":190},[184,1676,245],{"class":193},[184,1678,248],{"class":193},[184,1680,1681],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fplans\u002F{plan_id}\u002Fprices",[184,1683,255],{"class":254},[184,1685,1686,1688,1690,1692,1694],{"class":186,"line":258},[184,1687,261],{"class":193},[184,1689,265],{"class":264},[184,1691,268],{"class":193},[184,1693,271],{"class":264},[184,1695,255],{"class":254},[184,1697,1698,1700,1702,1704,1706],{"class":186,"line":276},[184,1699,261],{"class":193},[184,1701,265],{"class":264},[184,1703,1028],{"class":193},[184,1705,271],{"class":264},[184,1707,255],{"class":254},[184,1709,1710,1712,1714,1717],{"class":186,"line":288},[184,1711,279],{"class":193},[184,1713,282],{"class":264},[184,1715,1716],{"class":193},"{\"currency\": \"UGX\", \"amount\": 180000}",[184,1718,318],{"class":264},[174,1720,1722],{"className":646,"code":1721,"filename":648,"language":649,"meta":180,"style":180},"await client.plans.addPrice(plan.id, { currency: 'UGX', amount: 180000 });\n",[154,1723,1724],{"__ignoreMap":180},[184,1725,1726,1729,1731,1733,1735,1737,1740,1743,1745,1747,1749,1751,1754,1756,1758,1760,1762,1764,1767,1769,1773,1775,1777],{"class":186,"line":187},[184,1727,1728],{"class":656},"await",[184,1730,1174],{"class":254},[184,1732,754],{"class":264},[184,1734,1485],{"class":254},[184,1736,754],{"class":264},[184,1738,1739],{"class":702},"addPrice",[184,1741,1742],{"class":254},"(plan",[184,1744,754],{"class":264},[184,1746,434],{"class":254},[184,1748,448],{"class":264},[184,1750,429],{"class":264},[184,1752,1753],{"class":711}," currency",[184,1755,346],{"class":264},[184,1757,282],{"class":264},[184,1759,1264],{"class":193},[184,1761,676],{"class":264},[184,1763,448],{"class":264},[184,1765,1766],{"class":711}," amount",[184,1768,346],{"class":264},[184,1770,1772],{"class":1771},"sbssI"," 180000",[184,1774,665],{"class":264},[184,1776,725],{"class":254},[184,1778,679],{"class":264},[174,1780,1782],{"className":923,"code":1781,"filename":925,"language":926,"meta":180,"style":180},"client.plans.add_price(\n    plan.id,\n    currency=\"UGX\",\n    amount=180000\n)\n",[154,1783,1784,1789,1794,1798,1803],{"__ignoreMap":180},[184,1785,1786],{"class":186,"line":187},[184,1787,1788],{},"client.plans.add_price(\n",[184,1790,1791],{"class":186,"line":258},[184,1792,1793],{},"    plan.id,\n",[184,1795,1796],{"class":186,"line":276},[184,1797,1364],{},[184,1799,1800],{"class":186,"line":288},[184,1801,1802],{},"    amount=180000\n",[184,1804,1805],{"class":186,"line":294},[184,1806,971],{},[142,1808,1810],{"id":1809},"step-5-create-a-subscription","Step 5: Create a Subscription",[138,1812,1813],{},"Subscribe the customer to the plan.",[170,1815,1816,1886,2030],{"sync":570},[174,1817,1819],{"className":176,"code":1818,"filename":574,"language":179,"meta":180,"style":180},"curl -X POST http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fsubscriptions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer sk_live_a1b2c3d4...\" \\\n  -d '{\n    \"customerId\": \"cust_x1y2z3\",\n    \"planId\": \"plan_abc123\",\n    \"currency\": \"UGX\"\n  }'\n",[154,1820,1821,1834,1846,1858,1866,1871,1876,1880],{"__ignoreMap":180},[184,1822,1823,1825,1827,1829,1832],{"class":186,"line":187},[184,1824,162],{"class":190},[184,1826,245],{"class":193},[184,1828,248],{"class":193},[184,1830,1831],{"class":193}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Fsubscriptions",[184,1833,255],{"class":254},[184,1835,1836,1838,1840,1842,1844],{"class":186,"line":258},[184,1837,261],{"class":193},[184,1839,265],{"class":264},[184,1841,268],{"class":193},[184,1843,271],{"class":264},[184,1845,255],{"class":254},[184,1847,1848,1850,1852,1854,1856],{"class":186,"line":276},[184,1849,261],{"class":193},[184,1851,265],{"class":264},[184,1853,1028],{"class":193},[184,1855,271],{"class":264},[184,1857,255],{"class":254},[184,1859,1860,1862,1864],{"class":186,"line":288},[184,1861,279],{"class":193},[184,1863,282],{"class":264},[184,1865,285],{"class":193},[184,1867,1868],{"class":186,"line":294},[184,1869,1870],{"class":193},"    \"customerId\": \"cust_x1y2z3\",\n",[184,1872,1873],{"class":186,"line":300},[184,1874,1875],{"class":193},"    \"planId\": \"plan_abc123\",\n",[184,1877,1878],{"class":186,"line":306},[184,1879,1065],{"class":193},[184,1881,1882,1884],{"class":186,"line":312},[184,1883,315],{"class":193},[184,1885,318],{"class":264},[174,1887,1889],{"className":646,"code":1888,"filename":648,"language":649,"meta":180,"style":180},"const subscription = await client.subscriptions.create({\n  customerId: customer.id,\n  planId: plan.id,\n  currency: 'UGX'\n});\n\nconsole.log('Subscription:', subscription.id);\nconsole.log('Status:', subscription.status); \u002F\u002F \"ACTIVE\"\n",[154,1890,1891,1917,1932,1947,1959,1967,1971,1999],{"__ignoreMap":180},[184,1892,1893,1895,1898,1900,1902,1904,1906,1909,1911,1913,1915],{"class":186,"line":187},[184,1894,690],{"class":340},[184,1896,1897],{"class":254}," subscription ",[184,1899,696],{"class":264},[184,1901,748],{"class":656},[184,1903,1174],{"class":254},[184,1905,754],{"class":264},[184,1907,1908],{"class":254},"subscriptions",[184,1910,754],{"class":264},[184,1912,762],{"class":702},[184,1914,705],{"class":254},[184,1916,285],{"class":264},[184,1918,1919,1922,1924,1926,1928,1930],{"class":186,"line":258},[184,1920,1921],{"class":711},"  customerId",[184,1923,346],{"class":264},[184,1925,1305],{"class":254},[184,1927,754],{"class":264},[184,1929,434],{"class":254},[184,1931,356],{"class":264},[184,1933,1934,1937,1939,1941,1943,1945],{"class":186,"line":276},[184,1935,1936],{"class":711},"  planId",[184,1938,346],{"class":264},[184,1940,1611],{"class":254},[184,1942,754],{"class":264},[184,1944,434],{"class":254},[184,1946,356],{"class":264},[184,1948,1949,1951,1953,1955,1957],{"class":186,"line":288},[184,1950,1257],{"class":711},[184,1952,346],{"class":264},[184,1954,282],{"class":264},[184,1956,1264],{"class":193},[184,1958,318],{"class":264},[184,1960,1961,1963,1965],{"class":186,"line":294},[184,1962,876],{"class":264},[184,1964,725],{"class":254},[184,1966,679],{"class":264},[184,1968,1969],{"class":186,"line":300},[184,1970,685],{"emptyLinePlaceholder":684},[184,1972,1973,1975,1977,1979,1981,1983,1986,1988,1990,1993,1995,1997],{"class":186,"line":306},[184,1974,891],{"class":254},[184,1976,754],{"class":264},[184,1978,896],{"class":702},[184,1980,705],{"class":254},[184,1982,676],{"class":264},[184,1984,1985],{"class":193},"Subscription:",[184,1987,676],{"class":264},[184,1989,448],{"class":264},[184,1991,1992],{"class":254}," subscription",[184,1994,754],{"class":264},[184,1996,1310],{"class":254},[184,1998,679],{"class":264},[184,2000,2001,2003,2005,2007,2009,2011,2014,2016,2018,2020,2022,2025,2027],{"class":186,"line":312},[184,2002,891],{"class":254},[184,2004,754],{"class":264},[184,2006,896],{"class":702},[184,2008,705],{"class":254},[184,2010,676],{"class":264},[184,2012,2013],{"class":193},"Status:",[184,2015,676],{"class":264},[184,2017,448],{"class":264},[184,2019,1992],{"class":254},[184,2021,754],{"class":264},[184,2023,2024],{"class":254},"status)",[184,2026,728],{"class":264},[184,2028,2029],{"class":731}," \u002F\u002F \"ACTIVE\"\n",[174,2031,2033],{"className":923,"code":2032,"filename":925,"language":926,"meta":180,"style":180},"subscription = client.subscriptions.create(\n    customer_id=customer.id,\n    plan_id=plan.id,\n    currency=\"UGX\"\n)\n\nprint(f\"Subscription: {subscription.id}\")\nprint(f\"Status: {subscription.status}\")  # \"ACTIVE\"\n",[154,2034,2035,2040,2045,2050,2055,2059,2063,2068],{"__ignoreMap":180},[184,2036,2037],{"class":186,"line":187},[184,2038,2039],{},"subscription = client.subscriptions.create(\n",[184,2041,2042],{"class":186,"line":258},[184,2043,2044],{},"    customer_id=customer.id,\n",[184,2046,2047],{"class":186,"line":276},[184,2048,2049],{},"    plan_id=plan.id,\n",[184,2051,2052],{"class":186,"line":288},[184,2053,2054],{},"    currency=\"UGX\"\n",[184,2056,2057],{"class":186,"line":294},[184,2058,971],{},[184,2060,2061],{"class":186,"line":300},[184,2062,685],{"emptyLinePlaceholder":684},[184,2064,2065],{"class":186,"line":306},[184,2066,2067],{},"print(f\"Subscription: {subscription.id}\")\n",[184,2069,2070],{"class":186,"line":312},[184,2071,2072],{},"print(f\"Status: {subscription.status}\")  # \"ACTIVE\"\n",[138,2074,2075],{},"Response:",[174,2077,2079],{"className":324,"code":2078,"language":326,"meta":180,"style":180},"{\n  \"id\": \"sub_j3k4l5\",\n  \"customerId\": \"cust_x1y2z3\",\n  \"planId\": \"plan_abc123\",\n  \"status\": \"ACTIVE\",\n  \"currency\": \"UGX\",\n  \"currentPeriodStart\": \"2025-01-15T00:00:00.000Z\",\n  \"currentPeriodEnd\": \"2025-02-15T00:00:00.000Z\",\n  \"createdAt\": \"2025-01-15T10:50:00.000Z\"\n}\n",[154,2080,2081,2085,2104,2124,2144,2164,2183,2203,2223,2242],{"__ignoreMap":180},[184,2082,2083],{"class":186,"line":187},[184,2084,285],{"class":264},[184,2086,2087,2089,2091,2093,2095,2097,2100,2102],{"class":186,"line":258},[184,2088,337],{"class":264},[184,2090,434],{"class":340},[184,2092,271],{"class":264},[184,2094,346],{"class":264},[184,2096,265],{"class":264},[184,2098,2099],{"class":193},"sub_j3k4l5",[184,2101,271],{"class":264},[184,2103,356],{"class":264},[184,2105,2106,2108,2111,2113,2115,2117,2120,2122],{"class":186,"line":276},[184,2107,337],{"class":264},[184,2109,2110],{"class":340},"customerId",[184,2112,271],{"class":264},[184,2114,346],{"class":264},[184,2116,265],{"class":264},[184,2118,2119],{"class":193},"cust_x1y2z3",[184,2121,271],{"class":264},[184,2123,356],{"class":264},[184,2125,2126,2128,2131,2133,2135,2137,2140,2142],{"class":186,"line":288},[184,2127,337],{"class":264},[184,2129,2130],{"class":340},"planId",[184,2132,271],{"class":264},[184,2134,346],{"class":264},[184,2136,265],{"class":264},[184,2138,2139],{"class":193},"plan_abc123",[184,2141,271],{"class":264},[184,2143,356],{"class":264},[184,2145,2146,2148,2151,2153,2155,2157,2160,2162],{"class":186,"line":294},[184,2147,337],{"class":264},[184,2149,2150],{"class":340},"status",[184,2152,271],{"class":264},[184,2154,346],{"class":264},[184,2156,265],{"class":264},[184,2158,2159],{"class":193},"ACTIVE",[184,2161,271],{"class":264},[184,2163,356],{"class":264},[184,2165,2166,2168,2171,2173,2175,2177,2179,2181],{"class":186,"line":300},[184,2167,337],{"class":264},[184,2169,2170],{"class":340},"currency",[184,2172,271],{"class":264},[184,2174,346],{"class":264},[184,2176,265],{"class":264},[184,2178,1264],{"class":193},[184,2180,271],{"class":264},[184,2182,356],{"class":264},[184,2184,2185,2187,2190,2192,2194,2196,2199,2201],{"class":186,"line":306},[184,2186,337],{"class":264},[184,2188,2189],{"class":340},"currentPeriodStart",[184,2191,271],{"class":264},[184,2193,346],{"class":264},[184,2195,265],{"class":264},[184,2197,2198],{"class":193},"2025-01-15T00:00:00.000Z",[184,2200,271],{"class":264},[184,2202,356],{"class":264},[184,2204,2205,2207,2210,2212,2214,2216,2219,2221],{"class":186,"line":312},[184,2206,337],{"class":264},[184,2208,2209],{"class":340},"currentPeriodEnd",[184,2211,271],{"class":264},[184,2213,346],{"class":264},[184,2215,265],{"class":264},[184,2217,2218],{"class":193},"2025-02-15T00:00:00.000Z",[184,2220,271],{"class":264},[184,2222,356],{"class":264},[184,2224,2225,2227,2230,2232,2234,2236,2239],{"class":186,"line":873},[184,2226,337],{"class":264},[184,2228,2229],{"class":340},"createdAt",[184,2231,271],{"class":264},[184,2233,346],{"class":264},[184,2235,265],{"class":264},[184,2237,2238],{"class":193},"2025-01-15T10:50:00.000Z",[184,2240,2241],{"class":264},"\"\n",[184,2243,2244],{"class":186,"line":883},[184,2245,556],{"class":264},[142,2247,2249],{"id":2248},"whats-next","What's Next?",[147,2251,2252,2261,2268,2275,2282,2289],{},[150,2253,2254,2260],{},[2255,2256,2257],"strong",{},[2258,2259,26],"a",{"href":27},": connect your app from sandbox to live, step by step",[150,2262,2263,2267],{},[2255,2264,2265],{},[2258,2266,18],{"href":19}," -- Learn about JWT tokens, API keys, and scopes",[150,2269,2270,2274],{},[2255,2271,2272],{},[2258,2273,109],{"href":110}," -- Configure Stripe, Flutterwave, Paystack, Pesapal and more",[150,2276,2277,2281],{},[2255,2278,2279],{},[2258,2280,105],{"href":106}," -- Generate checkout URLs and process payments",[150,2283,2284,2288],{},[2255,2285,2286],{},[2258,2287,117],{"href":118}," -- Set up real-time notifications for billing events",[150,2290,2291,2295,2296,2300],{},[2255,2292,2293],{},[2258,2294,36],{"href":37}," \u002F ",[2255,2297,2298],{},[2258,2299,40],{"href":41}," -- Explore full SDK capabilities",[2302,2303,2304],"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);}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 pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":180,"searchDepth":258,"depth":258,"links":2306},[2307,2310,2311,2312,2313,2314,2315],{"id":144,"depth":258,"text":145,"children":2308},[2309],{"id":167,"depth":276,"text":168},{"id":229,"depth":258,"text":230},{"id":563,"depth":258,"text":564},{"id":983,"depth":258,"text":984},{"id":1380,"depth":258,"text":1381},{"id":1809,"depth":258,"text":1810},{"id":2248,"depth":258,"text":2249},"Get up and running with PimaBill in under 5 minutes.","md",null,{},{"title":14,"description":2316},"wcpvBKPpiFf0Diy4HD0JfyHgVFDfItLlOPVhFUpZ-Hs",[2323,2325],{"title":10,"path":11,"stem":12,"description":2324,"children":-1},"Learn what PimaBill is, its core architecture, and how it can power your billing infrastructure.",{"title":18,"path":19,"stem":20,"description":2326,"children":-1},"How PimaBill authenticates people signed in to the dashboard and servers calling the API with an API key.",1793401242782]