[{"data":1,"prerenderedAt":1060},["ShallowReactive",2],{"navigation_docs":3,"-packages-fluent-python-customers":465,"-packages-fluent-python-customers-surround":1055},[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":467,"body":468,"description":1048,"extension":1049,"links":1050,"meta":1051,"navigation":1052,"path":381,"seo":1053,"stem":382,"__hash__":1054},"docs\u002F3.packages\u002F7.fluent-python\u002F03.customers.md","Create and find customers",{"type":469,"value":470,"toc":1044},"minimark",[471,484,489,691,700,749,752,756,944,973,1026,1032,1040],[472,473,474,475,479,480,483],"p",{},"Bind a host user to a Vatly billing identity once, then reuse it. Bindings require\nthe configured storage driver; examples accept ",[476,477,478],"code",{},"vatly"," from ",[481,482,173],"a",{"href":375},".",[485,486,488],"h2",{"id":487},"create-a-customer-for-a-host-user","Create a customer for a host user",[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\nfrom vatly_fluent import CustomerProfile, Vatly\n\n\nasync def example(vatly: Vatly):\n    return await vatly.customers.create_for(\n        \"user-42\",\n        CustomerProfile(email=\"buyer@example.com\", name=\"Alex\"),\n        options=RequestOptions(idempotency_key=\"signup:user-42\"),\n    )\n","python","",[476,497,498,517,537,544,549,578,604,620,658,685],{"__ignoreMap":495},[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}," RequestOptions\n",[499,518,520,522,525,527,530,534],{"class":501,"line":519},2,[499,521,506],{"class":505},[499,523,524],{"class":509}," vatly_fluent ",[499,526,513],{"class":505},[499,528,529],{"class":509}," CustomerProfile",[499,531,533],{"class":532},"sMK4o",",",[499,535,536],{"class":509}," Vatly\n",[499,538,540],{"class":501,"line":539},3,[499,541,543],{"emptyLinePlaceholder":542},true,"\n",[499,545,547],{"class":501,"line":546},4,[499,548,543],{"emptyLinePlaceholder":542},[499,550,552,556,559,563,566,569,572,575],{"class":501,"line":551},5,[499,553,555],{"class":554},"spNyl","async",[499,557,558],{"class":554}," def",[499,560,562],{"class":561},"s2Zo4"," example",[499,564,565],{"class":532},"(",[499,567,478],{"class":568},"sHdIc",[499,570,571],{"class":532},":",[499,573,574],{"class":509}," Vatly",[499,576,577],{"class":532},"):\n",[499,579,581,584,587,590,592,596,598,601],{"class":501,"line":580},6,[499,582,583],{"class":505},"    return",[499,585,586],{"class":505}," await",[499,588,589],{"class":509}," vatly",[499,591,483],{"class":532},[499,593,595],{"class":594},"swJcz","customers",[499,597,483],{"class":532},[499,599,600],{"class":561},"create_for",[499,602,603],{"class":532},"(\n",[499,605,607,610,614,617],{"class":501,"line":606},7,[499,608,609],{"class":532},"        \"",[499,611,613],{"class":612},"sfazB","user-42",[499,615,616],{"class":532},"\"",[499,618,619],{"class":532},",\n",[499,621,623,626,628,631,634,636,639,641,643,646,648,650,653,655],{"class":501,"line":622},8,[499,624,625],{"class":561},"        CustomerProfile",[499,627,565],{"class":532},[499,629,630],{"class":568},"email",[499,632,633],{"class":532},"=",[499,635,616],{"class":532},[499,637,638],{"class":612},"buyer@example.com",[499,640,616],{"class":532},[499,642,533],{"class":532},[499,644,645],{"class":568}," name",[499,647,633],{"class":532},[499,649,616],{"class":532},[499,651,652],{"class":612},"Alex",[499,654,616],{"class":532},[499,656,657],{"class":532},"),\n",[499,659,661,664,666,669,671,674,676,678,681,683],{"class":501,"line":660},9,[499,662,663],{"class":568},"        options",[499,665,633],{"class":532},[499,667,668],{"class":561},"RequestOptions",[499,670,565],{"class":532},[499,672,673],{"class":568},"idempotency_key",[499,675,633],{"class":532},[499,677,616],{"class":532},[499,679,680],{"class":612},"signup:user-42",[499,682,616],{"class":532},[499,684,657],{"class":532},[499,686,688],{"class":501,"line":687},10,[499,689,690],{"class":532},"    )\n",[472,692,693,695,696,699],{},[476,694,600],{}," rejects an already-bound host. To reuse an existing customer, authorize\nits ID then call ",[476,697,698],{},"await vatly.customers.attribute(customer_id, host_id)"," instead.\nConflicting bindings fail rather than silently moving customers between users.",[701,702,703,716],"table",{},[704,705,706],"thead",{},[707,708,709,713],"tr",{},[710,711,712],"th",{},"Profile field",[710,714,715],{},"Meaning",[717,718,719,730,739],"tbody",{},[707,720,721,727],{},[722,723,724],"td",{},[476,725,726],{},"vatly_id",[722,728,729],{},"Existing authorized customer, used by checkout builders",[707,731,732,736],{},[722,733,734],{},[476,735,630],{},[722,737,738],{},"Required when creating a new customer",[707,740,741,746],{},[722,742,743],{},[476,744,745],{},"name",[722,747,748],{},"Optional communication name",[472,750,751],{},"An email-only checkout profile does not create a customer. Explicitly create it\nfirst if you need a durable binding. Bindings do not assign order ownership.",[485,753,755],{"id":754},"look-up-and-refresh-identity","Look up and refresh identity",[490,757,759],{"className":492,"code":758,"language":494,"meta":495,"style":495},"from vatly_fluent import Vatly\n\n\nasync def example(vatly: Vatly):\n    found = await vatly.customers.find_one_by_email(\"buyer@example.com\")\n    handle = vatly.customer(\"customer_example\")\n    identity = await handle.identity()\n    await handle.update({\"name\": \"Alex Morgan\"})\n    await handle.sync()\n    return found, identity, await handle.email()\n",[476,760,761,771,775,779,797,828,853,873,907,920],{"__ignoreMap":495},[499,762,763,765,767,769],{"class":501,"line":502},[499,764,506],{"class":505},[499,766,524],{"class":509},[499,768,513],{"class":505},[499,770,536],{"class":509},[499,772,773],{"class":501,"line":519},[499,774,543],{"emptyLinePlaceholder":542},[499,776,777],{"class":501,"line":539},[499,778,543],{"emptyLinePlaceholder":542},[499,780,781,783,785,787,789,791,793,795],{"class":501,"line":546},[499,782,555],{"class":554},[499,784,558],{"class":554},[499,786,562],{"class":561},[499,788,565],{"class":532},[499,790,478],{"class":568},[499,792,571],{"class":532},[499,794,574],{"class":509},[499,796,577],{"class":532},[499,798,799,802,804,806,808,810,812,814,817,819,821,823,825],{"class":501,"line":551},[499,800,801],{"class":509},"    found ",[499,803,633],{"class":532},[499,805,586],{"class":505},[499,807,589],{"class":509},[499,809,483],{"class":532},[499,811,595],{"class":594},[499,813,483],{"class":532},[499,815,816],{"class":561},"find_one_by_email",[499,818,565],{"class":532},[499,820,616],{"class":532},[499,822,638],{"class":612},[499,824,616],{"class":532},[499,826,827],{"class":532},")\n",[499,829,830,833,835,837,839,842,844,846,849,851],{"class":501,"line":580},[499,831,832],{"class":509},"    handle ",[499,834,633],{"class":532},[499,836,589],{"class":509},[499,838,483],{"class":532},[499,840,841],{"class":561},"customer",[499,843,565],{"class":532},[499,845,616],{"class":532},[499,847,848],{"class":612},"customer_example",[499,850,616],{"class":532},[499,852,827],{"class":532},[499,854,855,858,860,862,865,867,870],{"class":501,"line":606},[499,856,857],{"class":509},"    identity ",[499,859,633],{"class":532},[499,861,586],{"class":505},[499,863,864],{"class":509}," handle",[499,866,483],{"class":532},[499,868,869],{"class":561},"identity",[499,871,872],{"class":532},"()\n",[499,874,875,878,880,882,885,888,890,892,894,896,899,902,904],{"class":501,"line":622},[499,876,877],{"class":505},"    await",[499,879,864],{"class":509},[499,881,483],{"class":532},[499,883,884],{"class":561},"update",[499,886,887],{"class":532},"({",[499,889,616],{"class":532},[499,891,745],{"class":612},[499,893,616],{"class":532},[499,895,571],{"class":532},[499,897,898],{"class":532}," \"",[499,900,901],{"class":612},"Alex Morgan",[499,903,616],{"class":532},[499,905,906],{"class":532},"})\n",[499,908,909,911,913,915,918],{"class":501,"line":660},[499,910,877],{"class":505},[499,912,864],{"class":509},[499,914,483],{"class":532},[499,916,917],{"class":561},"sync",[499,919,872],{"class":532},[499,921,922,924,927,929,932,934,936,938,940,942],{"class":501,"line":687},[499,923,583],{"class":505},[499,925,926],{"class":509}," found",[499,928,533],{"class":532},[499,930,931],{"class":509}," identity",[499,933,533],{"class":532},[499,935,586],{"class":505},[499,937,864],{"class":509},[499,939,483],{"class":532},[499,941,630],{"class":561},[499,943,872],{"class":532},[472,945,946,949,950,949,953,956,957,960,961,964,965,968,969,972],{},[476,947,948],{},"model()",", ",[476,951,952],{},"name()",[476,954,955],{},"email()"," and ",[476,958,959],{},"identity()"," share a cached snapshot. ",[476,962,963],{},"sync()","\nand ",[476,966,967],{},"update()"," refresh it. Name\u002Femail are not invoice address fields; use the\n",[481,970,971],{"href":393},"portal"," for hosted billing management.",[701,974,975,985],{},[704,976,977],{},[707,978,979,982],{},[710,980,981],{},"Lookup",[710,983,984],{},"Return",[717,986,987,997,1007,1017],{},[707,988,989,994],{},[722,990,991],{},[476,992,993],{},"find_by_host_customer_id",[722,995,996],{},"Customer or None",[707,998,999,1004],{},[722,1000,1001],{},[476,1002,1003],{},"find_by_vatly_customer_id",[722,1005,1006],{},"Customer, or the SDK's not-found error",[707,1008,1009,1014],{},[722,1010,1011],{},[476,1012,1013],{},"find_by_email",[722,1015,1016],{},"Async iterator of matching customers",[707,1018,1019,1023],{},[722,1020,1021],{},[476,1022,816],{},[722,1024,1025],{},"First match or None, not a global identity assertion",[472,1027,1028,1031],{},[476,1029,1030],{},"claim_customer_from_checkout"," is only for an already host-authorized checkout;\nit binds billing identity, not entitlements. Never accept arbitrary buyer-supplied IDs.",[472,1033,1034],{},[481,1035,1039],{"href":1036,"rel":1037},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference\u002Fcustomers",[1038],"nofollow","Customer API reference",[1041,1042,1043],"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);}",{"title":495,"searchDepth":519,"depth":519,"links":1045},[1046,1047],{"id":487,"depth":519,"text":488},{"id":754,"depth":519,"text":755},"Bind a host user to a Vatly billing identity once, then reuse it.","md",null,{},{"title":68},{"title":467,"description":1048},"XFt34VXv0QqSmc3GijA9WajLbDHxkYPkJGDeUOs50AI",[1056,1058],{"title":177,"path":378,"stem":379,"description":1057,"children":-1},"Your application decides which user, team or organization owns a purchase.",{"title":80,"path":384,"stem":385,"description":1059,"children":-1},"Build a cart, then call create() to make the API request.",1794594932895]