[{"data":1,"prerenderedAt":1132},["ShallowReactive",2],{"navigation_docs":3,"-packages-python-oneoffproducts":465,"-packages-python-oneoffproducts-surround":1127},[4,8,62,115,450],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","0.introduction",{"title":9,"path":10,"stem":11,"children":12,"page":61},"Guides","\u002Fguides","1.guides",[13,17,21,25,29,33,37,41,45,49,53,57],{"title":14,"path":15,"stem":16},"Quickstart","\u002Fguides\u002Fquickstart","1.guides\u002F1.quickstart",{"title":18,"path":19,"stem":20},"Payouts & Settlement","\u002Fguides\u002Fpayouts","1.guides\u002F10.payouts",{"title":22,"path":23,"stem":24},"Customer Emails","\u002Fguides\u002Fcustomer-emails","1.guides\u002F11.customer-emails",{"title":26,"path":27,"stem":28},"Build your own integration","\u002Fguides\u002Fbuild-your-own-integration","1.guides\u002F2.build-your-own-integration",{"title":30,"path":31,"stem":32},"Selling Workflow","\u002Fguides\u002Fselling-workflow","1.guides\u002F2.selling-workflow",{"title":34,"path":35,"stem":36},"Vatly SDKs","\u002Fguides\u002Fsdks","1.guides\u002F3.sdks",{"title":38,"path":39,"stem":40},"Authentication","\u002Fguides\u002Fauthentication","1.guides\u002F4.authentication",{"title":42,"path":43,"stem":44},"Pagination","\u002Fguides\u002Fpagination","1.guides\u002F5.pagination",{"title":46,"path":47,"stem":48},"Errors","\u002Fguides\u002Ferrors","1.guides\u002F6.errors",{"title":50,"path":51,"stem":52},"Webhooks","\u002Fguides\u002Fwebhooks","1.guides\u002F7.webhooks",{"title":54,"path":55,"stem":56},"Idempotency","\u002Fguides\u002Fidempotency","1.guides\u002F8.idempotency",{"title":58,"path":59,"stem":60},"Testing","\u002Fguides\u002Ftesting","1.guides\u002F9.testing",false,{"title":63,"path":64,"stem":65,"children":66,"page":61},"Api Reference","\u002Fapi-reference","2.api-reference",[67,71,75,79,83,87,91,95,99,103,107,111],{"title":68,"path":69,"stem":70},"Customers","\u002Fapi-reference\u002Fcustomers","2.api-reference\u002F1.customers",{"title":72,"path":73,"stem":74},"Webhook Endpoints","\u002Fapi-reference\u002Fwebhook-endpoints","2.api-reference\u002F10.webhook-endpoints",{"title":76,"path":77,"stem":78},"Test helpers","\u002Fapi-reference\u002Ftest-helpers","2.api-reference\u002F11.test-helpers",{"title":80,"path":81,"stem":82},"Checkouts","\u002Fapi-reference\u002Fcheckouts","2.api-reference\u002F2.checkouts",{"title":84,"path":85,"stem":86},"One-off Products","\u002Fapi-reference\u002Fone-off-products","2.api-reference\u002F3.one-off-products",{"title":88,"path":89,"stem":90},"Subscriptions","\u002Fapi-reference\u002Fsubscriptions","2.api-reference\u002F4.subscriptions",{"title":92,"path":93,"stem":94},"Subscription Plans","\u002Fapi-reference\u002Fsubscription-plans","2.api-reference\u002F5.subscription-plans",{"title":96,"path":97,"stem":98},"Orders","\u002Fapi-reference\u002Forders","2.api-reference\u002F6.orders",{"title":100,"path":101,"stem":102},"Order Refunds","\u002Fapi-reference\u002Frefunds","2.api-reference\u002F7.refunds",{"title":104,"path":105,"stem":106},"Refunds","\u002Fapi-reference\u002Fglobal-refunds","2.api-reference\u002F8.global-refunds",{"title":108,"path":109,"stem":110},"Chargebacks","\u002Fapi-reference\u002Fchargebacks","2.api-reference\u002F9.chargebacks",{"title":112,"path":113,"stem":114},"Webhook Events","\u002Fapi-reference\u002Fwebhook-events","2.api-reference\u002F99.webhook-events",{"title":116,"path":117,"stem":118,"children":119},"Packages","\u002Fpackages","3.packages",[120,122,164,210,244,283,318,366,408],{"title":116,"path":117,"stem":121},"3.packages\u002Findex",{"title":123,"path":124,"stem":125,"children":126,"page":61},"PHP SDK","\u002Fpackages\u002Fphp","3.packages\u002F1.php",[127,131,134,137,140,144,147,151,154,157,160],{"title":128,"path":129,"stem":130},"Getting started","\u002Fpackages\u002Fphp\u002Freadme","3.packages\u002F1.php\u002F00.readme",{"title":68,"path":132,"stem":133},"\u002Fpackages\u002Fphp\u002Fcustomers","3.packages\u002F1.php\u002F02.customers",{"title":80,"path":135,"stem":136},"\u002Fpackages\u002Fphp\u002Fcheckouts","3.packages\u002F1.php\u002F03.checkouts",{"title":88,"path":138,"stem":139},"\u002Fpackages\u002Fphp\u002Fsubscriptions","3.packages\u002F1.php\u002F04.subscriptions",{"title":141,"path":142,"stem":143},"Subscription plans","\u002Fpackages\u002Fphp\u002Fsubscriptionplans","3.packages\u002F1.php\u002F05.subscriptionplans",{"title":96,"path":145,"stem":146},"\u002Fpackages\u002Fphp\u002Forders","3.packages\u002F1.php\u002F06.orders",{"title":148,"path":149,"stem":150},"One-off products","\u002Fpackages\u002Fphp\u002Foneoffproducts","3.packages\u002F1.php\u002F07.oneoffproducts",{"title":104,"path":152,"stem":153},"\u002Fpackages\u002Fphp\u002Frefunds","3.packages\u002F1.php\u002F08.refunds",{"title":108,"path":155,"stem":156},"\u002Fpackages\u002Fphp\u002Fchargebacks","3.packages\u002F1.php\u002F09.chargebacks",{"title":50,"path":158,"stem":159},"\u002Fpackages\u002Fphp\u002Fwebhooks","3.packages\u002F1.php\u002F10.webhooks",{"title":161,"path":162,"stem":163},"Webhook URLs","\u002Fpackages\u002Fphp\u002Fwebhookendpoints","3.packages\u002F1.php\u002F11.webhookendpoints",{"title":165,"path":166,"stem":167,"children":168,"page":61},"PHP Fluent","\u002Fpackages\u002Ffluent-php","3.packages\u002F2.fluent-php",[169,172,176,180,183,186,189,192,196,199,203,207],{"title":128,"path":170,"stem":171},"\u002Fpackages\u002Ffluent-php\u002Freadme","3.packages\u002F2.fluent-php\u002F00.readme",{"title":173,"path":174,"stem":175},"Configuration","\u002Fpackages\u002Ffluent-php\u002Fconfiguration","3.packages\u002F2.fluent-php\u002F01.configuration",{"title":177,"path":178,"stem":179},"Core concepts","\u002Fpackages\u002Ffluent-php\u002Fcoreconcepts","3.packages\u002F2.fluent-php\u002F02.coreconcepts",{"title":68,"path":181,"stem":182},"\u002Fpackages\u002Ffluent-php\u002Fcustomers","3.packages\u002F2.fluent-php\u002F03.customers",{"title":80,"path":184,"stem":185},"\u002Fpackages\u002Ffluent-php\u002Fcheckouts","3.packages\u002F2.fluent-php\u002F04.checkouts",{"title":88,"path":187,"stem":188},"\u002Fpackages\u002Ffluent-php\u002Fsubscriptions","3.packages\u002F2.fluent-php\u002F05.subscriptions",{"title":96,"path":190,"stem":191},"\u002Fpackages\u002Ffluent-php\u002Forders","3.packages\u002F2.fluent-php\u002F06.orders",{"title":193,"path":194,"stem":195},"Customer portal","\u002Fpackages\u002Ffluent-php\u002Fcustomerportal","3.packages\u002F2.fluent-php\u002F07.customerportal",{"title":50,"path":197,"stem":198},"\u002Fpackages\u002Ffluent-php\u002Fwebhooks","3.packages\u002F2.fluent-php\u002F08.webhooks",{"title":200,"path":201,"stem":202},"Webhook event flow","\u002Fpackages\u002Ffluent-php\u002Fwebhook-flow","3.packages\u002F2.fluent-php\u002F09.webhook-flow",{"title":204,"path":205,"stem":206},"Existing tables","\u002Fpackages\u002Ffluent-php\u002Fhost-owns-its-tables","3.packages\u002F2.fluent-php\u002F10.host-owns-its-tables",{"title":58,"path":208,"stem":209},"\u002Fpackages\u002Ffluent-php\u002Ftesting","3.packages\u002F2.fluent-php\u002F11.testing",{"title":211,"path":212,"stem":213,"children":214,"page":61},"Laravel","\u002Fpackages\u002Flaravel","3.packages\u002F3.laravel",[215,218,221,224,227,230,233,236,240],{"title":128,"path":216,"stem":217},"\u002Fpackages\u002Flaravel\u002Freadme","3.packages\u002F3.laravel\u002F00.readme",{"title":173,"path":219,"stem":220},"\u002Fpackages\u002Flaravel\u002Fconfiguration","3.packages\u002F3.laravel\u002F01.configuration",{"title":68,"path":222,"stem":223},"\u002Fpackages\u002Flaravel\u002Fcustomers","3.packages\u002F3.laravel\u002F02.customers",{"title":80,"path":225,"stem":226},"\u002Fpackages\u002Flaravel\u002Fcheckouts","3.packages\u002F3.laravel\u002F03.checkouts",{"title":88,"path":228,"stem":229},"\u002Fpackages\u002Flaravel\u002Fsubscriptions","3.packages\u002F3.laravel\u002F04.subscriptions",{"title":96,"path":231,"stem":232},"\u002Fpackages\u002Flaravel\u002Forders","3.packages\u002F3.laravel\u002F05.orders",{"title":50,"path":234,"stem":235},"\u002Fpackages\u002Flaravel\u002Fwebhooks","3.packages\u002F3.laravel\u002F06.webhooks",{"title":237,"path":238,"stem":239},"Comparison","\u002Fpackages\u002Flaravel\u002Fcomparison","3.packages\u002F3.laravel\u002F07.comparison",{"title":241,"path":242,"stem":243},"Migrating from Cashier","\u002Fpackages\u002Flaravel\u002Fmigrating-to-vatly","3.packages\u002F3.laravel\u002F08.migrating-to-vatly",{"title":245,"path":246,"stem":247,"children":248,"page":61},"JavaScript SDK","\u002Fpackages\u002Fjavascript","3.packages\u002F4.javascript",[249,252,255,258,261,264,267,270,273,276,279],{"title":128,"path":250,"stem":251},"\u002Fpackages\u002Fjavascript\u002Freadme","3.packages\u002F4.javascript\u002F00.readme",{"title":68,"path":253,"stem":254},"\u002Fpackages\u002Fjavascript\u002Fcustomers","3.packages\u002F4.javascript\u002F02.customers",{"title":80,"path":256,"stem":257},"\u002Fpackages\u002Fjavascript\u002Fcheckouts","3.packages\u002F4.javascript\u002F03.checkouts",{"title":88,"path":259,"stem":260},"\u002Fpackages\u002Fjavascript\u002Fsubscriptions","3.packages\u002F4.javascript\u002F04.subscriptions",{"title":141,"path":262,"stem":263},"\u002Fpackages\u002Fjavascript\u002Fsubscriptionplans","3.packages\u002F4.javascript\u002F05.subscriptionplans",{"title":96,"path":265,"stem":266},"\u002Fpackages\u002Fjavascript\u002Forders","3.packages\u002F4.javascript\u002F06.orders",{"title":148,"path":268,"stem":269},"\u002Fpackages\u002Fjavascript\u002Foneoffproducts","3.packages\u002F4.javascript\u002F07.oneoffproducts",{"title":104,"path":271,"stem":272},"\u002Fpackages\u002Fjavascript\u002Frefunds","3.packages\u002F4.javascript\u002F08.refunds",{"title":108,"path":274,"stem":275},"\u002Fpackages\u002Fjavascript\u002Fchargebacks","3.packages\u002F4.javascript\u002F09.chargebacks",{"title":50,"path":277,"stem":278},"\u002Fpackages\u002Fjavascript\u002Fwebhooks","3.packages\u002F4.javascript\u002F10.webhooks",{"title":280,"path":281,"stem":282},"API reference","\u002Fpackages\u002Fjavascript\u002Fapi","3.packages\u002F4.javascript\u002F12.api",{"title":284,"path":285,"stem":286,"children":287,"page":61},"JavaScript Fluent","\u002Fpackages\u002Ffluent-js","3.packages\u002F5.fluent-js",[288,291,294,297,300,303,306,309,312,315],{"title":128,"path":289,"stem":290},"\u002Fpackages\u002Ffluent-js\u002Freadme","3.packages\u002F5.fluent-js\u002F00.readme",{"title":173,"path":292,"stem":293},"\u002Fpackages\u002Ffluent-js\u002Fconfiguration","3.packages\u002F5.fluent-js\u002F01.configuration",{"title":177,"path":295,"stem":296},"\u002Fpackages\u002Ffluent-js\u002Fcoreconcepts","3.packages\u002F5.fluent-js\u002F02.coreconcepts",{"title":68,"path":298,"stem":299},"\u002Fpackages\u002Ffluent-js\u002Fcustomers","3.packages\u002F5.fluent-js\u002F03.customers",{"title":80,"path":301,"stem":302},"\u002Fpackages\u002Ffluent-js\u002Fcheckouts","3.packages\u002F5.fluent-js\u002F04.checkouts",{"title":88,"path":304,"stem":305},"\u002Fpackages\u002Ffluent-js\u002Fsubscriptions","3.packages\u002F5.fluent-js\u002F05.subscriptions",{"title":96,"path":307,"stem":308},"\u002Fpackages\u002Ffluent-js\u002Forders","3.packages\u002F5.fluent-js\u002F06.orders",{"title":193,"path":310,"stem":311},"\u002Fpackages\u002Ffluent-js\u002Fcustomerportal","3.packages\u002F5.fluent-js\u002F07.customerportal",{"title":50,"path":313,"stem":314},"\u002Fpackages\u002Ffluent-js\u002Fwebhooks","3.packages\u002F5.fluent-js\u002F08.webhooks",{"title":58,"path":316,"stem":317},"\u002Fpackages\u002Ffluent-js\u002Ftesting","3.packages\u002F5.fluent-js\u002F11.testing",{"title":319,"path":320,"stem":321,"children":322,"page":61},"Python SDK","\u002Fpackages\u002Fpython","3.packages\u002F6.python",[323,326,329,332,335,338,341,344,347,350,353,356,359,362],{"title":128,"path":324,"stem":325},"\u002Fpackages\u002Fpython\u002Freadme","3.packages\u002F6.python\u002F00.readme",{"title":173,"path":327,"stem":328},"\u002Fpackages\u002Fpython\u002Fconfiguration","3.packages\u002F6.python\u002F01.configuration",{"title":68,"path":330,"stem":331},"\u002Fpackages\u002Fpython\u002Fcustomers","3.packages\u002F6.python\u002F02.customers",{"title":80,"path":333,"stem":334},"\u002Fpackages\u002Fpython\u002Fcheckouts","3.packages\u002F6.python\u002F03.checkouts",{"title":88,"path":336,"stem":337},"\u002Fpackages\u002Fpython\u002Fsubscriptions","3.packages\u002F6.python\u002F04.subscriptions",{"title":141,"path":339,"stem":340},"\u002Fpackages\u002Fpython\u002Fsubscriptionplans","3.packages\u002F6.python\u002F05.subscriptionplans",{"title":96,"path":342,"stem":343},"\u002Fpackages\u002Fpython\u002Forders","3.packages\u002F6.python\u002F06.orders",{"title":148,"path":345,"stem":346},"\u002Fpackages\u002Fpython\u002Foneoffproducts","3.packages\u002F6.python\u002F07.oneoffproducts",{"title":104,"path":348,"stem":349},"\u002Fpackages\u002Fpython\u002Frefunds","3.packages\u002F6.python\u002F08.refunds",{"title":108,"path":351,"stem":352},"\u002Fpackages\u002Fpython\u002Fchargebacks","3.packages\u002F6.python\u002F09.chargebacks",{"title":50,"path":354,"stem":355},"\u002Fpackages\u002Fpython\u002Fwebhooks","3.packages\u002F6.python\u002F10.webhooks",{"title":161,"path":357,"stem":358},"\u002Fpackages\u002Fpython\u002Fwebhookendpoints","3.packages\u002F6.python\u002F11.webhookendpoints",{"title":280,"path":360,"stem":361},"\u002Fpackages\u002Fpython\u002Fapi","3.packages\u002F6.python\u002F12.api",{"title":363,"path":364,"stem":365},"Development","\u002Fpackages\u002Fpython\u002Fdevelopment","3.packages\u002F6.python\u002F13.development",{"title":367,"path":368,"stem":369,"children":370,"page":61},"Python Fluent","\u002Fpackages\u002Ffluent-python","3.packages\u002F7.fluent-python",[371,374,377,380,383,386,389,392,395,398,401,405],{"title":128,"path":372,"stem":373},"\u002Fpackages\u002Ffluent-python\u002Freadme","3.packages\u002F7.fluent-python\u002F00.readme",{"title":173,"path":375,"stem":376},"\u002Fpackages\u002Ffluent-python\u002Fconfiguration","3.packages\u002F7.fluent-python\u002F01.configuration",{"title":177,"path":378,"stem":379},"\u002Fpackages\u002Ffluent-python\u002Fcoreconcepts","3.packages\u002F7.fluent-python\u002F02.coreconcepts",{"title":68,"path":381,"stem":382},"\u002Fpackages\u002Ffluent-python\u002Fcustomers","3.packages\u002F7.fluent-python\u002F03.customers",{"title":80,"path":384,"stem":385},"\u002Fpackages\u002Ffluent-python\u002Fcheckouts","3.packages\u002F7.fluent-python\u002F04.checkouts",{"title":88,"path":387,"stem":388},"\u002Fpackages\u002Ffluent-python\u002Fsubscriptions","3.packages\u002F7.fluent-python\u002F05.subscriptions",{"title":96,"path":390,"stem":391},"\u002Fpackages\u002Ffluent-python\u002Forders","3.packages\u002F7.fluent-python\u002F06.orders",{"title":193,"path":393,"stem":394},"\u002Fpackages\u002Ffluent-python\u002Fcustomerportal","3.packages\u002F7.fluent-python\u002F07.customerportal",{"title":50,"path":396,"stem":397},"\u002Fpackages\u002Ffluent-python\u002Fwebhooks","3.packages\u002F7.fluent-python\u002F08.webhooks",{"title":58,"path":399,"stem":400},"\u002Fpackages\u002Ffluent-python\u002Ftesting","3.packages\u002F7.fluent-python\u002F11.testing",{"title":402,"path":403,"stem":404},"Porting","\u002Fpackages\u002Ffluent-python\u002Fporting","3.packages\u002F7.fluent-python\u002F12.porting",{"title":363,"path":406,"stem":407},"\u002Fpackages\u002Ffluent-python\u002Fdevelopment","3.packages\u002F7.fluent-python\u002F13.development",{"title":409,"path":410,"stem":411,"children":412,"page":61},"Django","\u002Fpackages\u002Fdjango","3.packages\u002F8.django",[413,416,420,423,427,431,434,437,440,444,447],{"title":128,"path":414,"stem":415},"\u002Fpackages\u002Fdjango\u002Freadme","3.packages\u002F8.django\u002F00.readme",{"title":417,"path":418,"stem":419},"Installation","\u002Fpackages\u002Fdjango\u002Finstallation","3.packages\u002F8.django\u002F01.installation",{"title":173,"path":421,"stem":422},"\u002Fpackages\u002Fdjango\u002Fconfiguration","3.packages\u002F8.django\u002F02.configuration",{"title":424,"path":425,"stem":426},"Billable models","\u002Fpackages\u002Fdjango\u002Fbillablemodels","3.packages\u002F8.django\u002F03.billablemodels",{"title":428,"path":429,"stem":430},"Checkout","\u002Fpackages\u002Fdjango\u002Fcheckout","3.packages\u002F8.django\u002F04.checkout",{"title":88,"path":432,"stem":433},"\u002Fpackages\u002Fdjango\u002Fbilling","3.packages\u002F8.django\u002F05.billing",{"title":193,"path":435,"stem":436},"\u002Fpackages\u002Fdjango\u002Fcustomerportal","3.packages\u002F8.django\u002F06.customerportal",{"title":50,"path":438,"stem":439},"\u002Fpackages\u002Fdjango\u002Fwebhooks","3.packages\u002F8.django\u002F07.webhooks",{"title":441,"path":442,"stem":443},"Admin","\u002Fpackages\u002Fdjango\u002Fadmin","3.packages\u002F8.django\u002F08.admin",{"title":58,"path":445,"stem":446},"\u002Fpackages\u002Fdjango\u002Ftesting","3.packages\u002F8.django\u002F09.testing",{"title":363,"path":448,"stem":449},"\u002Fpackages\u002Fdjango\u002Fdevelopment","3.packages\u002F8.django\u002F10.development",{"title":451,"path":452,"stem":453,"children":454},"Integrations","\u002Fintegrations","4.integrations",[455,457,461],{"title":451,"path":452,"stem":456},"4.integrations\u002Findex",{"title":458,"path":459,"stem":460},"Lovable payments with Vatly","\u002Fintegrations\u002Flovable","4.integrations\u002F1.lovable",{"title":462,"path":463,"stem":464},"Bolt payments with Vatly","\u002Fintegrations\u002Fbolt","4.integrations\u002F2.bolt",{"id":466,"title":148,"body":467,"description":1120,"extension":1121,"links":1122,"meta":1123,"navigation":1124,"path":345,"seo":1125,"stem":346,"__hash__":1126},"docs\u002F3.packages\u002F6.python\u002F07.oneoffproducts.md",{"type":468,"value":469,"toc":1116},"minimark",[470,483,488,721,809,823,827,1035,1038,1099,1112],[471,472,473,474,478,479,482],"p",{},"Sell a digital product once rather than on a recurring schedule. Create it in the\ncatalog, then pass its ID to a ",[475,476,477],"a",{"href":333},"checkout",".\nExamples accept the client from ",[475,480,481],{"href":324},"setup",".",[484,485,487],"h2",{"id":486},"create-a-product","Create a product",[489,490,495],"pre",{"className":491,"code":492,"language":493,"meta":494,"style":494},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from vatly import VatlyClient\nfrom vatly.models import CreateOneOffProductRequest\n\n\ndef example(client: VatlyClient):\n    return client.one_off_products.create(\n        CreateOneOffProductRequest(\n            name=\"Python handbook\",\n            description=\"A downloadable programming book\",\n            product_type=\"ebook\",\n            base_price={\"value\": \"29.00\", \"currency\": \"EUR\"},\n        )\n    )\n","python","",[496,497,498,517,536,543,548,575,598,606,627,644,661,709,715],"code",{"__ignoreMap":494},[499,500,503,507,511,514],"span",{"class":501,"line":502},"line",1,[499,504,506],{"class":505},"s7zQu","from",[499,508,510],{"class":509},"sTEyZ"," vatly ",[499,512,513],{"class":505},"import",[499,515,516],{"class":509}," VatlyClient\n",[499,518,520,522,525,528,531,533],{"class":501,"line":519},2,[499,521,506],{"class":505},[499,523,524],{"class":509}," vatly",[499,526,482],{"class":527},"sMK4o",[499,529,530],{"class":509},"models ",[499,532,513],{"class":505},[499,534,535],{"class":509}," CreateOneOffProductRequest\n",[499,537,539],{"class":501,"line":538},3,[499,540,542],{"emptyLinePlaceholder":541},true,"\n",[499,544,546],{"class":501,"line":545},4,[499,547,542],{"emptyLinePlaceholder":541},[499,549,551,555,559,562,566,569,572],{"class":501,"line":550},5,[499,552,554],{"class":553},"spNyl","def",[499,556,558],{"class":557},"s2Zo4"," example",[499,560,561],{"class":527},"(",[499,563,565],{"class":564},"sHdIc","client",[499,567,568],{"class":527},":",[499,570,571],{"class":509}," VatlyClient",[499,573,574],{"class":527},"):\n",[499,576,578,581,584,586,590,592,595],{"class":501,"line":577},6,[499,579,580],{"class":505},"    return",[499,582,583],{"class":509}," client",[499,585,482],{"class":527},[499,587,589],{"class":588},"swJcz","one_off_products",[499,591,482],{"class":527},[499,593,594],{"class":557},"create",[499,596,597],{"class":527},"(\n",[499,599,601,604],{"class":501,"line":600},7,[499,602,603],{"class":557},"        CreateOneOffProductRequest",[499,605,597],{"class":527},[499,607,609,612,615,618,622,624],{"class":501,"line":608},8,[499,610,611],{"class":564},"            name",[499,613,614],{"class":527},"=",[499,616,617],{"class":527},"\"",[499,619,621],{"class":620},"sfazB","Python handbook",[499,623,617],{"class":527},[499,625,626],{"class":527},",\n",[499,628,630,633,635,637,640,642],{"class":501,"line":629},9,[499,631,632],{"class":564},"            description",[499,634,614],{"class":527},[499,636,617],{"class":527},[499,638,639],{"class":620},"A downloadable programming book",[499,641,617],{"class":527},[499,643,626],{"class":527},[499,645,647,650,652,654,657,659],{"class":501,"line":646},10,[499,648,649],{"class":564},"            product_type",[499,651,614],{"class":527},[499,653,617],{"class":527},[499,655,656],{"class":620},"ebook",[499,658,617],{"class":527},[499,660,626],{"class":527},[499,662,664,667,670,672,675,677,679,682,685,687,690,692,695,697,699,701,704,706],{"class":501,"line":663},11,[499,665,666],{"class":564},"            base_price",[499,668,669],{"class":527},"={",[499,671,617],{"class":527},[499,673,674],{"class":620},"value",[499,676,617],{"class":527},[499,678,568],{"class":527},[499,680,681],{"class":527}," \"",[499,683,684],{"class":620},"29.00",[499,686,617],{"class":527},[499,688,689],{"class":527},",",[499,691,681],{"class":527},[499,693,694],{"class":620},"currency",[499,696,617],{"class":527},[499,698,568],{"class":527},[499,700,681],{"class":527},[499,702,703],{"class":620},"EUR",[499,705,617],{"class":527},[499,707,708],{"class":527},"},\n",[499,710,712],{"class":501,"line":711},12,[499,713,714],{"class":527},"        )\n",[499,716,718],{"class":501,"line":717},13,[499,719,720],{"class":527},"    )\n",[722,723,724,740],"table",{},[725,726,727],"thead",{},[728,729,730,734,737],"tr",{},[731,732,733],"th",{},"Input field",[731,735,736],{},"Type",[731,738,739],{},"Required?",[741,742,743,761,773,791],"tbody",{},[728,744,745,755,758],{},[746,747,748,751,752],"td",{},[496,749,750],{},"name",", ",[496,753,754],{},"description",[746,756,757],{},"string",[746,759,760],{},"Yes",[728,762,763,768,771],{},[746,764,765],{},[496,766,767],{},"base_price",[746,769,770],{},"EUR money with a two-decimal string",[746,772,760],{},[728,774,775,780,789],{},[746,776,777],{},[496,778,779],{},"product_type",[746,781,782,785,786],{},[496,783,784],{},"\"saas\""," or ",[496,787,788],{},"\"ebook\"",[746,790,760],{},[728,792,793,798,806],{},[746,794,795],{},[496,796,797],{},"tax_behavior",[746,799,800,785,803],{},[496,801,802],{},"\"exclusive\"",[496,804,805],{},"\"inclusive\"",[746,807,808],{},"No",[471,810,811,812,751,815,818,819,822],{},"Dictionary inputs use ",[496,813,814],{},"basePrice",[496,816,817],{},"productType"," and ",[496,820,821],{},"taxBehavior",". Responses may\ncontain additional product-type strings; the SDK preserves them. That does not\nmake those strings valid creation inputs.",[484,824,826],{"id":825},"read-update-and-archive","Read, update and archive",[489,828,830],{"className":491,"code":829,"language":493,"meta":494,"style":494},"from vatly import VatlyClient\n\n\ndef example(client: VatlyClient):\n    products = list(client.one_off_products.list_all({\"includeArchived\": True}))\n    product = client.one_off_products.get(\"one_off_product_example\")\n    client.one_off_products.update(product.id, {\"name\": \"Revised handbook\"})\n    client.one_off_products.archive(product.id)\n    return products, client.one_off_products.unarchive(product.id)\n",[496,831,832,842,846,850,866,905,935,982,1005],{"__ignoreMap":494},[499,833,834,836,838,840],{"class":501,"line":502},[499,835,506],{"class":505},[499,837,510],{"class":509},[499,839,513],{"class":505},[499,841,516],{"class":509},[499,843,844],{"class":501,"line":519},[499,845,542],{"emptyLinePlaceholder":541},[499,847,848],{"class":501,"line":538},[499,849,542],{"emptyLinePlaceholder":541},[499,851,852,854,856,858,860,862,864],{"class":501,"line":545},[499,853,554],{"class":553},[499,855,558],{"class":557},[499,857,561],{"class":527},[499,859,565],{"class":564},[499,861,568],{"class":527},[499,863,571],{"class":509},[499,865,574],{"class":527},[499,867,868,871,873,877,879,881,883,885,887,890,893,895,898,900,902],{"class":501,"line":550},[499,869,870],{"class":509},"    products ",[499,872,614],{"class":527},[499,874,876],{"class":875},"sBMFI"," list",[499,878,561],{"class":527},[499,880,565],{"class":557},[499,882,482],{"class":527},[499,884,589],{"class":588},[499,886,482],{"class":527},[499,888,889],{"class":557},"list_all",[499,891,892],{"class":527},"({",[499,894,617],{"class":527},[499,896,897],{"class":620},"includeArchived",[499,899,617],{"class":527},[499,901,568],{"class":527},[499,903,904],{"class":527}," True}))\n",[499,906,907,910,912,914,916,918,920,923,925,927,930,932],{"class":501,"line":577},[499,908,909],{"class":509},"    product ",[499,911,614],{"class":527},[499,913,583],{"class":509},[499,915,482],{"class":527},[499,917,589],{"class":588},[499,919,482],{"class":527},[499,921,922],{"class":557},"get",[499,924,561],{"class":527},[499,926,617],{"class":527},[499,928,929],{"class":620},"one_off_product_example",[499,931,617],{"class":527},[499,933,934],{"class":527},")\n",[499,936,937,940,942,944,946,949,951,954,956,959,961,964,966,968,970,972,974,977,979],{"class":501,"line":600},[499,938,939],{"class":509},"    client",[499,941,482],{"class":527},[499,943,589],{"class":588},[499,945,482],{"class":527},[499,947,948],{"class":557},"update",[499,950,561],{"class":527},[499,952,953],{"class":557},"product",[499,955,482],{"class":527},[499,957,958],{"class":588},"id",[499,960,689],{"class":527},[499,962,963],{"class":527}," {",[499,965,617],{"class":527},[499,967,750],{"class":620},[499,969,617],{"class":527},[499,971,568],{"class":527},[499,973,681],{"class":527},[499,975,976],{"class":620},"Revised handbook",[499,978,617],{"class":527},[499,980,981],{"class":527},"})\n",[499,983,984,986,988,990,992,995,997,999,1001,1003],{"class":501,"line":608},[499,985,939],{"class":509},[499,987,482],{"class":527},[499,989,589],{"class":588},[499,991,482],{"class":527},[499,993,994],{"class":557},"archive",[499,996,561],{"class":527},[499,998,953],{"class":557},[499,1000,482],{"class":527},[499,1002,958],{"class":588},[499,1004,934],{"class":527},[499,1006,1007,1009,1012,1014,1016,1018,1020,1022,1025,1027,1029,1031,1033],{"class":501,"line":629},[499,1008,580],{"class":505},[499,1010,1011],{"class":509}," products",[499,1013,689],{"class":527},[499,1015,583],{"class":509},[499,1017,482],{"class":527},[499,1019,589],{"class":588},[499,1021,482],{"class":527},[499,1023,1024],{"class":557},"unarchive",[499,1026,561],{"class":527},[499,1028,953],{"class":557},[499,1030,482],{"class":527},[499,1032,958],{"class":588},[499,1034,934],{"class":527},[471,1036,1037],{},"Archiving stops new sales and returns None. Unarchiving returns the product.\nLive catalog changes may await approval; test-mode changes are auto-approved.",[722,1039,1040,1050],{},[725,1041,1042],{},[728,1043,1044,1047],{},[731,1045,1046],{},"Response field",[731,1048,1049],{},"Meaning",[741,1051,1052,1064,1075,1086],{},[728,1053,1054,1058],{},[746,1055,1056],{},[496,1057,958],{},[746,1059,1060,1063],{},[496,1061,1062],{},"one_off_product_..."," catalog ID",[728,1065,1066,1072],{},[746,1067,1068,751,1070],{},[496,1069,750],{},[496,1071,754],{},[746,1073,1074],{},"Buyer-facing content",[728,1076,1077,1083],{},[746,1078,1079,751,1081],{},[496,1080,767],{},[496,1082,779],{},[746,1084,1085],{},"Exact price and category",[728,1087,1088,1096],{},[746,1089,1090,751,1093],{},[496,1091,1092],{},"testmode",[496,1094,1095],{},"links",[746,1097,1098],{},"Mode and resource links",[471,1100,1101,1107,1108],{},[475,1102,1106],{"href":1103,"rel":1104},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference\u002Fone-off-products",[1105],"nofollow","Product API reference"," · ",[475,1109,1111],{"href":1110},"\u002Fpackages\u002Fpython\u002Fapi#one_off_products","All methods",[1113,1114,1115],"style",{},"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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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}",{"title":494,"searchDepth":519,"depth":519,"links":1117},[1118,1119],{"id":486,"depth":519,"text":487},{"id":825,"depth":519,"text":826},"Sell a digital product once rather than on a recurring schedule.","md",null,{},{"title":148},{"title":148,"description":1120},"hDomtIGtkZ-xJ9iuXxLCjbgkYcE6E8EBBGZYl5zVP80",[1128,1130],{"title":96,"path":342,"stem":343,"description":1129,"children":-1},"Orders contain purchased lines, tax and financial totals.",{"title":104,"path":348,"stem":349,"description":1131,"children":-1},"Refunds reverse some or all of an order.",1794594931693]