[{"data":1,"prerenderedAt":1266},["ShallowReactive",2],{"navigation_docs":3,"-packages-python-customers":465,"-packages-python-customers-surround":1261},[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":68,"body":467,"description":1254,"extension":1255,"links":1256,"meta":1257,"navigation":1258,"path":330,"seo":1259,"stem":331,"__hash__":1260},"docs\u002F3.packages\u002F6.python\u002F02.customers.md",{"type":468,"value":469,"toc":1249},"minimark",[470,484,489,786,846,849,853,997,1019,1023,1130,1140,1232,1245],[471,472,473,474,478,479,483],"p",{},"Keep a Vatly customer ID alongside your own user or company. Customers hold billing\nidentity; a shared email or customer ID is not proof that someone owns an order.\nPass a configured ",[475,476,477],"code",{},"VatlyClient"," to the functions below; see ",[480,481,482],"a",{"href":324},"setup",".",[485,486,488],"h2",{"id":487},"create-retrieve-and-update","Create, retrieve and update",[490,491,496],"pre",{"className":492,"code":493,"language":494,"meta":495,"style":495},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from vatly import RequestOptions, VatlyClient\nfrom vatly.models import CreateCustomerRequest\n\n\ndef example(client: VatlyClient):\n    customer = client.customers.create(\n        CreateCustomerRequest(email=\"buyer@example.com\", name=\"Alex\"),\n        options=RequestOptions(idempotency_key=\"signup:user-42\"),\n    )\n    saved = client.customers.get(customer.id)\n    updated = client.customers.update(saved.id, {\"name\": \"Alex Morgan\"})\n    return updated.id, updated.email\n","python","",[475,497,498,524,542,549,554,581,607,646,673,679,711,764],{"__ignoreMap":495},[499,500,503,507,511,514,517,521],"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}," RequestOptions",[499,518,520],{"class":519},"sMK4o",",",[499,522,523],{"class":509}," VatlyClient\n",[499,525,527,529,532,534,537,539],{"class":501,"line":526},2,[499,528,506],{"class":505},[499,530,531],{"class":509}," vatly",[499,533,483],{"class":519},[499,535,536],{"class":509},"models ",[499,538,513],{"class":505},[499,540,541],{"class":509}," CreateCustomerRequest\n",[499,543,545],{"class":501,"line":544},3,[499,546,548],{"emptyLinePlaceholder":547},true,"\n",[499,550,552],{"class":501,"line":551},4,[499,553,548],{"emptyLinePlaceholder":547},[499,555,557,561,565,568,572,575,578],{"class":501,"line":556},5,[499,558,560],{"class":559},"spNyl","def",[499,562,564],{"class":563},"s2Zo4"," example",[499,566,567],{"class":519},"(",[499,569,571],{"class":570},"sHdIc","client",[499,573,574],{"class":519},":",[499,576,577],{"class":509}," VatlyClient",[499,579,580],{"class":519},"):\n",[499,582,584,587,590,593,595,599,601,604],{"class":501,"line":583},6,[499,585,586],{"class":509},"    customer ",[499,588,589],{"class":519},"=",[499,591,592],{"class":509}," client",[499,594,483],{"class":519},[499,596,598],{"class":597},"swJcz","customers",[499,600,483],{"class":519},[499,602,603],{"class":563},"create",[499,605,606],{"class":519},"(\n",[499,608,610,613,615,618,620,623,627,629,631,634,636,638,641,643],{"class":501,"line":609},7,[499,611,612],{"class":563},"        CreateCustomerRequest",[499,614,567],{"class":519},[499,616,617],{"class":570},"email",[499,619,589],{"class":519},[499,621,622],{"class":519},"\"",[499,624,626],{"class":625},"sfazB","buyer@example.com",[499,628,622],{"class":519},[499,630,520],{"class":519},[499,632,633],{"class":570}," name",[499,635,589],{"class":519},[499,637,622],{"class":519},[499,639,640],{"class":625},"Alex",[499,642,622],{"class":519},[499,644,645],{"class":519},"),\n",[499,647,649,652,654,657,659,662,664,666,669,671],{"class":501,"line":648},8,[499,650,651],{"class":570},"        options",[499,653,589],{"class":519},[499,655,656],{"class":563},"RequestOptions",[499,658,567],{"class":519},[499,660,661],{"class":570},"idempotency_key",[499,663,589],{"class":519},[499,665,622],{"class":519},[499,667,668],{"class":625},"signup:user-42",[499,670,622],{"class":519},[499,672,645],{"class":519},[499,674,676],{"class":501,"line":675},9,[499,677,678],{"class":519},"    )\n",[499,680,682,685,687,689,691,693,695,698,700,703,705,708],{"class":501,"line":681},10,[499,683,684],{"class":509},"    saved ",[499,686,589],{"class":519},[499,688,592],{"class":509},[499,690,483],{"class":519},[499,692,598],{"class":597},[499,694,483],{"class":519},[499,696,697],{"class":563},"get",[499,699,567],{"class":519},[499,701,702],{"class":563},"customer",[499,704,483],{"class":519},[499,706,707],{"class":597},"id",[499,709,710],{"class":519},")\n",[499,712,714,717,719,721,723,725,727,730,732,735,737,739,741,744,746,749,751,753,756,759,761],{"class":501,"line":713},11,[499,715,716],{"class":509},"    updated ",[499,718,589],{"class":519},[499,720,592],{"class":509},[499,722,483],{"class":519},[499,724,598],{"class":597},[499,726,483],{"class":519},[499,728,729],{"class":563},"update",[499,731,567],{"class":519},[499,733,734],{"class":563},"saved",[499,736,483],{"class":519},[499,738,707],{"class":597},[499,740,520],{"class":519},[499,742,743],{"class":519}," {",[499,745,622],{"class":519},[499,747,748],{"class":625},"name",[499,750,622],{"class":519},[499,752,574],{"class":519},[499,754,755],{"class":519}," \"",[499,757,758],{"class":625},"Alex Morgan",[499,760,622],{"class":519},[499,762,763],{"class":519},"})\n",[499,765,767,770,773,775,777,779,781,783],{"class":501,"line":766},12,[499,768,769],{"class":505},"    return",[499,771,772],{"class":509}," updated",[499,774,483],{"class":519},[499,776,707],{"class":597},[499,778,520],{"class":519},[499,780,772],{"class":509},[499,782,483],{"class":519},[499,784,785],{"class":597},"email\n",[787,788,789,805],"table",{},[790,791,792],"thead",{},[793,794,795,799,802],"tr",{},[796,797,798],"th",{},"Create\u002Fupdate parameter",[796,800,801],{},"Type",[796,803,804],{},"Purpose",[806,807,808,821,833],"tbody",{},[793,809,810,815,818],{},[811,812,813],"td",{},[475,814,617],{},[811,816,817],{},"string",[811,819,820],{},"Required on create; optional on update",[793,822,823,827,830],{},[811,824,825],{},[475,826,748],{},[811,828,829],{},"string or null",[811,831,832],{},"Optional name; null clears it on update",[793,834,835,840,843],{},[811,836,837],{},[475,838,839],{},"metadata",[811,841,842],{},"object",[811,844,845],{},"Optional custom data on create; not an update field",[471,847,848],{},"Update changes name\u002Femail, not invoice addresses. Use the hosted billing flows for\naddress changes. Keep the same idempotency key when retrying the same signup.",[485,850,852],{"id":851},"find-by-email-and-read-subscriptions","Find by email and read subscriptions",[490,854,856],{"className":492,"code":855,"language":494,"meta":495,"style":495},"from vatly import VatlyClient\n\n\ndef example(client: VatlyClient):\n    customers = list(client.customers.list_all({\"email\": \"buyer@example.com\", \"limit\": 25}))\n    subscriptions = list(client.customers.list_all_subscriptions(\"customer_example\"))\n    return customers, subscriptions\n",[475,857,858,868,872,876,892,951,985],{"__ignoreMap":495},[499,859,860,862,864,866],{"class":501,"line":502},[499,861,506],{"class":505},[499,863,510],{"class":509},[499,865,513],{"class":505},[499,867,523],{"class":509},[499,869,870],{"class":501,"line":526},[499,871,548],{"emptyLinePlaceholder":547},[499,873,874],{"class":501,"line":544},[499,875,548],{"emptyLinePlaceholder":547},[499,877,878,880,882,884,886,888,890],{"class":501,"line":551},[499,879,560],{"class":559},[499,881,564],{"class":563},[499,883,567],{"class":519},[499,885,571],{"class":570},[499,887,574],{"class":519},[499,889,577],{"class":509},[499,891,580],{"class":519},[499,893,894,897,899,903,905,907,909,911,913,916,919,921,923,925,927,929,931,933,935,937,940,942,944,948],{"class":501,"line":556},[499,895,896],{"class":509},"    customers ",[499,898,589],{"class":519},[499,900,902],{"class":901},"sBMFI"," list",[499,904,567],{"class":519},[499,906,571],{"class":563},[499,908,483],{"class":519},[499,910,598],{"class":597},[499,912,483],{"class":519},[499,914,915],{"class":563},"list_all",[499,917,918],{"class":519},"({",[499,920,622],{"class":519},[499,922,617],{"class":625},[499,924,622],{"class":519},[499,926,574],{"class":519},[499,928,755],{"class":519},[499,930,626],{"class":625},[499,932,622],{"class":519},[499,934,520],{"class":519},[499,936,755],{"class":519},[499,938,939],{"class":625},"limit",[499,941,622],{"class":519},[499,943,574],{"class":519},[499,945,947],{"class":946},"sbssI"," 25",[499,949,950],{"class":519},"}))\n",[499,952,953,956,958,960,962,964,966,968,970,973,975,977,980,982],{"class":501,"line":583},[499,954,955],{"class":509},"    subscriptions ",[499,957,589],{"class":519},[499,959,902],{"class":901},[499,961,567],{"class":519},[499,963,571],{"class":563},[499,965,483],{"class":519},[499,967,598],{"class":597},[499,969,483],{"class":519},[499,971,972],{"class":563},"list_all_subscriptions",[499,974,567],{"class":519},[499,976,622],{"class":519},[499,978,979],{"class":625},"customer_example",[499,981,622],{"class":519},[499,983,984],{"class":519},"))\n",[499,986,987,989,992,994],{"class":501,"line":609},[499,988,769],{"class":505},[499,990,991],{"class":509}," customers",[499,993,520],{"class":519},[499,995,996],{"class":509}," subscriptions\n",[471,998,999,1000,1002,1003,1006,1007,1010,1011,1014,1015,1018],{},"Email lookup returns zero or more customers within the API key's storefront and\nmode. General list filters are ",[475,1001,939],{}," (1–100), ",[475,1004,1005],{},"startingAfter",", or ",[475,1008,1009],{},"endingBefore",";\ndo not send both cursors. ",[475,1012,1013],{},"list()"," returns one page; ",[475,1016,1017],{},"list_all()"," yields resources.",[485,1020,1022],{"id":1021},"open-the-hosted-portal","Open the hosted portal",[490,1024,1026],{"className":492,"code":1025,"language":494,"meta":495,"style":495},"from vatly import VatlyClient\n\n\ndef example(client: VatlyClient):\n    session = client.customers.create_portal_session(\n        \"customer_example\", {\"returnUrl\": \"https:\u002F\u002Fapp.example.com\u002Fbilling\"}\n    )\n    return session.url\n",[475,1027,1028,1038,1042,1046,1062,1082,1114,1118],{"__ignoreMap":495},[499,1029,1030,1032,1034,1036],{"class":501,"line":502},[499,1031,506],{"class":505},[499,1033,510],{"class":509},[499,1035,513],{"class":505},[499,1037,523],{"class":509},[499,1039,1040],{"class":501,"line":526},[499,1041,548],{"emptyLinePlaceholder":547},[499,1043,1044],{"class":501,"line":544},[499,1045,548],{"emptyLinePlaceholder":547},[499,1047,1048,1050,1052,1054,1056,1058,1060],{"class":501,"line":551},[499,1049,560],{"class":559},[499,1051,564],{"class":563},[499,1053,567],{"class":519},[499,1055,571],{"class":570},[499,1057,574],{"class":519},[499,1059,577],{"class":509},[499,1061,580],{"class":519},[499,1063,1064,1067,1069,1071,1073,1075,1077,1080],{"class":501,"line":556},[499,1065,1066],{"class":509},"    session ",[499,1068,589],{"class":519},[499,1070,592],{"class":509},[499,1072,483],{"class":519},[499,1074,598],{"class":597},[499,1076,483],{"class":519},[499,1078,1079],{"class":563},"create_portal_session",[499,1081,606],{"class":519},[499,1083,1084,1087,1089,1091,1093,1095,1097,1100,1102,1104,1106,1109,1111],{"class":501,"line":583},[499,1085,1086],{"class":519},"        \"",[499,1088,979],{"class":625},[499,1090,622],{"class":519},[499,1092,520],{"class":519},[499,1094,743],{"class":519},[499,1096,622],{"class":519},[499,1098,1099],{"class":625},"returnUrl",[499,1101,622],{"class":519},[499,1103,574],{"class":519},[499,1105,755],{"class":519},[499,1107,1108],{"class":625},"https:\u002F\u002Fapp.example.com\u002Fbilling",[499,1110,622],{"class":519},[499,1112,1113],{"class":519},"}\n",[499,1115,1116],{"class":501,"line":609},[499,1117,678],{"class":519},[499,1119,1120,1122,1125,1127],{"class":501,"line":648},[499,1121,769],{"class":505},[499,1123,1124],{"class":509}," session",[499,1126,483],{"class":519},[499,1128,1129],{"class":597},"url\n",[471,1131,1132,1133,1135,1136,1139],{},"Authorize the customer before calling this. Redirect the browser to the returned\nsingle-use URL; never cache or log it. ",[475,1134,1099],{}," is optional; use ",[475,1137,1138],{},"{}"," for no\nreturn link. It does not automatically redirect the customer back.",[787,1141,1142,1155],{},[790,1143,1144],{},[793,1145,1146,1149,1152],{},[796,1147,1148],{},"Response field",[796,1150,1151],{},"Python type",[796,1153,1154],{},"Meaning",[806,1156,1157,1172,1184,1200,1215],{},[793,1158,1159,1166,1169],{},[811,1160,1161,1163,1164],{},[475,1162,707],{},", ",[475,1165,617],{},[811,1167,1168],{},"str",[811,1170,1171],{},"Customer identity",[793,1173,1174,1178,1181],{},[811,1175,1176],{},[475,1177,748],{},[811,1179,1180],{},"str or None",[811,1182,1183],{},"Display name",[793,1185,1186,1194,1197],{},[811,1187,1188,1163,1191],{},[475,1189,1190],{},"created_at",[475,1192,1193],{},"testmode",[811,1195,1196],{},"datetime, bool",[811,1198,1199],{},"Creation time and mode",[793,1201,1202,1209,1212],{},[811,1203,1204,1163,1206],{},[475,1205,839],{},[475,1207,1208],{},"links",[811,1210,1211],{},"model objects",[811,1213,1214],{},"Custom data and resource links",[793,1216,1217,1226,1229],{},[811,1218,1219,1220,1163,1223],{},"Portal ",[475,1221,1222],{},"url",[475,1224,1225],{},"expires_at",[811,1227,1228],{},"str, datetime",[811,1230,1231],{},"Temporary entry URL and expiry",[471,1233,1234,1240,1241],{},[480,1235,1239],{"href":1236,"rel":1237},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference\u002Fcustomers",[1238],"nofollow","Customer API reference"," · ",[480,1242,1244],{"href":1243},"\u002Fpackages\u002Fpython\u002Fapi#customers","All methods",[1246,1247,1248],"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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":495,"searchDepth":526,"depth":526,"links":1250},[1251,1252,1253],{"id":487,"depth":526,"text":488},{"id":851,"depth":526,"text":852},{"id":1021,"depth":526,"text":1022},"Keep a Vatly customer ID alongside your own user or company.","md",null,{},{"title":68},{"title":68,"description":1254},"U7qjvhOpZikKYIEk5qoXpW3P-8dj-FtvmASI7DrQmwE",[1262,1264],{"title":173,"path":327,"stem":328,"description":1263,"children":-1},"Use one client per application task or worker lifetime and close it with with or async with.",{"title":80,"path":333,"stem":334,"description":1265,"children":-1},"Create a hosted payment page and redirect your buyer to it.",1794594931349]