{"openapi":"3.1.0","info":{"title":"Letisim Connect API","version":"2.0.0","description":"Server-side B2B contract for catalog, account pricing, orders, delivery, post-sale workflows, reseller networks and storefront sessions. Operations in paths are callable when granted to the authenticated Account; exact profile actions are discovered at runtime."},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"PartnerMoney":{"title":"PartnerMoney","type":"object","additionalProperties":false,"required":["amountMinor","currency"],"properties":{"amountMinor":{"type":"integer","description":"Amount in ISO currency minor units"},"currency":{"type":"string","enum":["RUB","USD"]}}},"PartnerNonNegativeMoney":{"title":"PartnerNonNegativeMoney","type":"object","additionalProperties":false,"required":["amountMinor","currency"],"properties":{"amountMinor":{"type":"integer","description":"Amount in ISO currency minor units","minimum":0},"currency":{"type":"string","enum":["RUB","USD"]}}},"PartnerEnvironment":{"title":"PartnerEnvironment","type":"string","enum":["test","live"]},"PartnerBillingStatus":{"title":"PartnerBillingStatus","type":"string","enum":["reserved","captured","released","refunded","legacy","simulated"]},"PartnerBilling":{"title":"PartnerBilling","type":"object","additionalProperties":false,"required":["status","reservedAmount","capturedAmount","releasedAmount","refundedAmount"],"properties":{"status":{"$ref":"#/components/schemas/PartnerBillingStatus"},"reservedAmount":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]},"capturedAmount":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]},"releasedAmount":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]},"refundedAmount":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]}}},"PartnerDeliveryMode":{"title":"PartnerDeliveryMode","type":"string","enum":["partner","letisim"],"description":"Delivery ownership; brand fields are configured on the Account. partner means Letisim sends no recipient email and the reseller delivers through its own UI or a branded delivery link. letisim requires recipient.email and sends the fixed transactional template from the verified Letisim domain. Orders created from 2026-09-03T00:00:00Z use the effective Account brand, partner Reply-To and non-removable Letisim attribution; earlier orders retain the standard Letisim presentation."},"PartnerOrderStatus":{"title":"PartnerOrderStatus","type":"string","enum":["draft","awaiting_payment","paid","provisioning","delivered","completed","expired_unpaid","provisioning_failed","refund_requested","refunded"]},"PartnerCreateOrderRecipient":{"title":"PartnerCreateOrderRecipient","type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"reference":{"type":"string","maxLength":180},"locale":{"type":"string","enum":["ru","en","es","de","fr"]}}},"PartnerV2Meta":{"title":"PartnerV2Meta","type":"object","additionalProperties":false,"required":["requestId","apiVersion"],"properties":{"requestId":{"type":"string","description":"Safe support reference for the request"},"apiVersion":{"type":"string","enum":["2.0.0"],"description":"Server contract version that produced this response"}}},"PartnerV2PageMeta":{"title":"PartnerV2PageMeta","type":"object","additionalProperties":false,"required":["requestId","apiVersion","nextCursor","hasMore"],"properties":{"requestId":{"type":"string","description":"Safe support reference for the request"},"apiVersion":{"type":"string","enum":["2.0.0"],"description":"Server contract version that produced this response"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque continuation token. Send it unchanged with the same normalized query."},"hasMore":{"type":"boolean","description":"True when nextCursor points to another page in this snapshot."}}},"PartnerV2ErrorDetail":{"title":"PartnerV2ErrorDetail","type":"object","additionalProperties":false,"required":["code","params"],"properties":{"code":{"type":"string","enum":["unauthorized","validation_failed","rate_limited","product_not_found","product_unavailable","order_not_found","recipient_not_found","recipient_conflict","esim_not_found","insufficient_balance","price_changed","idempotency_conflict","internal","scope_missing","enterprise_auth_required","delivery_link_invalid","forbidden","offer_not_found","quote_not_found","quote_expired","quote_consumed","cursor_invalid","cursor_expired","export_too_large","action_not_available","action_request_exists","action_request_not_found","invalid_transition","account_not_found","account_not_active","account_hierarchy_invalid","account_depth_exceeded","account_membership_conflict","account_membership_not_found","price_book_invalid","order_limit_exceeded","monthly_limit_exceeded","storefront_app_not_found","storefront_app_disabled","widget_origin_forbidden","widget_session_invalid","connector_installation_not_found","connector_installation_revoked","connector_site_already_connected","connector_site_mismatch","connector_connect_code_invalid","connector_credential_invalid","connector_order_not_found"],"description":"Stable machine-readable code. Branch on this value, never on a human message."},"params":{"type":"object","additionalProperties":true,"description":"Safe structured context for recovery or field-level handling."}}},"PartnerV2ErrorResponse":{"title":"PartnerV2ErrorResponse","type":"object","additionalProperties":false,"required":["error","meta"],"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","properties":{"error":{"$ref":"#/components/schemas/PartnerV2ErrorDetail"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}},"example":{"error":{"code":"idempotency_conflict","params":{"field":"Idempotency-Key"}},"meta":{"requestId":"req_01JXYZ","apiVersion":"2.0.0"}}},"PartnerV2CursorPage":{"title":"PartnerV2CursorPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}},"description":"Base cursor-page envelope. Resource pages replace data.items with their named resource schema."},"PartnerV2Capability":{"title":"PartnerV2Capability","type":"object","additionalProperties":false,"required":["id","state"],"properties":{"id":{"type":"string","enum":["capabilities","catalog","offers","orders","recipients","esims","delivery_links","webhooks","quotes","transactions","post_sale_actions","subaccounts","account_memberships","price_books","branding","white_label","widget"]},"state":{"type":"string","enum":["available"]}}},"PartnerV2Settlement":{"title":"PartnerV2Settlement","type":"object","additionalProperties":false,"required":["currency","amountFormat","wholeRubOnly","fundingMode"],"properties":{"currency":{"type":"string","enum":["RUB","USD"]},"amountFormat":{"type":"string","enum":["minor_units"]},"wholeRubOnly":{"type":"boolean","enum":[true,false]},"fundingMode":{"type":"string","enum":["prepaid"]}}},"PartnerV2SupplyOperation":{"title":"PartnerV2SupplyOperation","type":"object","additionalProperties":false,"required":["id","availability","access"],"properties":{"id":{"type":"string","enum":["issue","usage","top_up","cancel_unused","reissue"]},"availability":{"type":"string","enum":["available","simulated","route_dependent","unavailable"],"description":"A current execution fact. route_dependent requires an exact offer or issued-profile check."},"access":{"type":"string","enum":["api","bridge","assisted","none"],"description":"How the operation can be reached in this contract; availability alone never creates an endpoint."}}},"PartnerV2TenantAttestation":{"title":"PartnerV2TenantAttestation","type":"object","additionalProperties":false,"required":["schemaVersion","kind","brandKey","environment","manifest","factory"],"description":"Secret-free server assertion binding the presented credential to one exact Brand Commerce Cell configuration. Null on generic Connect credentials.","properties":{"schemaVersion":{"type":"integer","enum":[1]},"kind":{"type":"string","enum":["retail_brand_cell"]},"brandKey":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"manifest":{"type":"object","additionalProperties":false,"required":["configVersion","digest"],"properties":{"configVersion":{"type":"integer","minimum":1},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"factory":{"type":"object","additionalProperties":false,"required":["schemaVersion","configVersion","configDigest","templateVersion"],"properties":{"schemaVersion":{"type":"integer","minimum":1},"configVersion":{"type":"integer","minimum":1},"configDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"templateVersion":{"type":"string","minLength":1,"maxLength":64}}}}},"PartnerV2Capabilities":{"title":"PartnerV2Capabilities","type":"object","additionalProperties":false,"required":["contractStatus","environment","tenantAttestation","grantedScopes","settlement","capabilities","supplyOperations"],"properties":{"contractStatus":{"type":"string","enum":["preview","stable"],"description":"Lifecycle of the published contract. `stable` means additive-only changes until a new major."},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"tenantAttestation":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2TenantAttestation"},{"type":"null"}],"description":"Exact Brand Commerce Cell binding for a brand-scoped server credential; null for generic or legacy Connect identities."},"grantedScopes":{"type":"array","items":{"type":"string","enum":["catalog:read","quotes:write","balance:read","orders:read","orders:write","transactions:read","recipients:read","recipients:write","esims:read","actions:read","actions:write","delivery_links:write"]}},"settlement":{"$ref":"#/components/schemas/PartnerV2Settlement"},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Capability"}},"supplyOperations":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2SupplyOperation"},"description":"Current execution truth expressed as stable, product-level operations."}}},"PartnerV2CapabilitiesResponse":{"title":"PartnerV2CapabilitiesResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Capabilities"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2Country":{"title":"PartnerV2Country","type":"object","additionalProperties":false,"required":["iso","name","flag","region"],"properties":{"iso":{"type":"string","minLength":2,"maxLength":2},"name":{"type":"string"},"flag":{"type":"string"},"region":{"type":["null","string"]}}},"PartnerV2Package":{"title":"PartnerV2Package","type":"object","additionalProperties":false,"required":["kind","dataMb","dailyDataMb","durationDays","unlimited"],"properties":{"kind":{"type":"string","enum":["fixed","unlimited","no_expiry","daypass"]},"dataMb":{"type":["null","integer"]},"dailyDataMb":{"type":["null","integer"]},"durationDays":{"type":"integer","minimum":1},"unlimited":{"type":"boolean"}}},"PartnerV2ActivationPolicy":{"title":"PartnerV2ActivationPolicy","type":"object","additionalProperties":false,"required":["startsAt","windowDays"],"properties":{"startsAt":{"type":"string","enum":["purchase","first_installation","first_connection","unknown"]},"windowDays":{"type":["null","integer"]}}},"PartnerV2Product":{"title":"PartnerV2Product","type":"object","additionalProperties":false,"required":["id","slug","title","country","package","activation","lifecycle"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"country":{"$ref":"#/components/schemas/PartnerV2Country"},"package":{"$ref":"#/components/schemas/PartnerV2Package"},"activation":{"$ref":"#/components/schemas/PartnerV2ActivationPolicy"},"lifecycle":{"type":"string","enum":["available"]}}},"PartnerV2OfferCapabilities":{"title":"PartnerV2OfferCapabilities","type":"object","additionalProperties":false,"required":["topUp","fiveG","tethering","networks","networkTypes"],"properties":{"topUp":{"type":"string","enum":["guaranteed","not_guaranteed"]},"fiveG":{"type":"string","enum":["supported","unsupported","unknown"]},"tethering":{"type":"string","enum":["supported","unsupported","unknown"]},"networks":{"type":"array","items":{"type":"string"}},"networkTypes":{"type":"array","items":{"type":"string"}}}},"PartnerV2Offer":{"title":"PartnerV2Offer","type":"object","additionalProperties":false,"required":["id","productId","price","recommendedRetail","capabilities","activation","catalogVersion","pricingVersion"],"properties":{"id":{"type":"string"},"productId":{"type":"string"},"price":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"recommendedRetail":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"capabilities":{"$ref":"#/components/schemas/PartnerV2OfferCapabilities"},"activation":{"$ref":"#/components/schemas/PartnerV2ActivationPolicy"},"catalogVersion":{"type":"integer","minimum":0},"pricingVersion":{"type":"string"}}},"PartnerV2CatalogPageMeta":{"title":"PartnerV2CatalogPageMeta","type":"object","additionalProperties":false,"required":["requestId","apiVersion","nextCursor","hasMore","catalogVersion","generatedAt","syncMode","updatedSince"],"properties":{"requestId":{"type":"string"},"apiVersion":{"type":"string","enum":["2.0.0"]},"nextCursor":{"type":["null","string"]},"hasMore":{"type":"boolean"},"catalogVersion":{"type":"integer","minimum":0},"generatedAt":{"type":"string","format":"date-time"},"syncMode":{"type":"string","enum":["full_snapshot"]},"updatedSince":{"type":["null","string"],"format":"date-time"}}},"PartnerV2ProductPage":{"title":"PartnerV2ProductPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Product"}},"meta":{"$ref":"#/components/schemas/PartnerV2CatalogPageMeta"}}},"PartnerV2OfferPage":{"title":"PartnerV2OfferPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Offer"}},"meta":{"$ref":"#/components/schemas/PartnerV2CatalogPageMeta"}}},"PartnerV2OfferResponse":{"title":"PartnerV2OfferResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Offer"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2QuoteRequest":{"title":"PartnerV2QuoteRequest","type":"object","additionalProperties":false,"required":["offerId"],"properties":{"offerId":{"type":"string","minLength":1,"maxLength":64},"esimId":{"type":"string","minLength":1,"description":"Required only for a profile-specific top-up offer."}}},"PartnerV2Quote":{"title":"PartnerV2Quote","type":"object","additionalProperties":false,"required":["id","environment","kind","targetEsimId","offerId","productId","price","recommendedRetail","catalogVersion","pricingVersion","product","offer","createdAt","expiresAt"],"properties":{"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"kind":{"type":"string","enum":["issue","top_up"]},"targetEsimId":{"type":["null","string"]},"offerId":{"type":"string"},"productId":{"type":"string"},"price":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"recommendedRetail":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"catalogVersion":{"type":"integer","minimum":0},"pricingVersion":{"type":"string"},"product":{"$ref":"#/components/schemas/PartnerV2Product"},"offer":{"$ref":"#/components/schemas/PartnerV2Offer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}}},"PartnerV2QuoteResponse":{"title":"PartnerV2QuoteResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Quote"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2OrderRecipient":{"title":"PartnerV2OrderRecipient","type":"object","description":"Recipient identifiers are all null when the credential lacks recipients:read.","additionalProperties":false,"required":["id","email","reference","locale"],"properties":{"id":{"type":["null","string"]},"email":{"type":["null","string"]},"reference":{"type":["null","string"]},"locale":{"type":["null","string"]}}},"PartnerV2OrderEsim":{"title":"PartnerV2OrderEsim","type":"object","additionalProperties":false,"required":["id","resourceUrl"],"properties":{"id":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"}}},"PartnerV2CreateOrderRequest":{"title":"PartnerV2CreateOrderRequest","type":"object","additionalProperties":false,"required":["quoteId","externalRef"],"properties":{"quoteId":{"type":"string","minLength":1},"externalRef":{"type":"string","minLength":1,"maxLength":128},"deliveryMode":{"$ref":"#/components/schemas/PartnerDeliveryMode"},"recipientId":{"type":"string","minLength":1},"recipient":{"$ref":"#/components/schemas/PartnerCreateOrderRecipient"}}},"PartnerV2Order":{"title":"PartnerV2Order","type":"object","additionalProperties":false,"required":["id","quoteId","kind","targetEsimId","externalRef","status","price","billing","deliveryMode","recipient","esim","environment","stateRevision","product","offer","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"quoteId":{"type":"string"},"kind":{"type":"string","enum":["issue","top_up"]},"targetEsimId":{"type":["null","string"],"description":"Null when the credential lacks esims:read."},"externalRef":{"type":"string"},"status":{"$ref":"#/components/schemas/PartnerOrderStatus"},"price":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"billing":{"$ref":"#/components/schemas/PartnerBilling"},"deliveryMode":{"$ref":"#/components/schemas/PartnerDeliveryMode"},"recipient":{"$ref":"#/components/schemas/PartnerV2OrderRecipient"},"esim":{"title":"PartnerV2NullableOrderEsim","description":"Null until issuance or when the credential lacks esims:read.","anyOf":[{"$ref":"#/components/schemas/PartnerV2OrderEsim"},{"type":"null"}]},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"stateRevision":{"type":"integer","minimum":1},"product":{"$ref":"#/components/schemas/PartnerV2Product"},"offer":{"$ref":"#/components/schemas/PartnerV2Offer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2OrderResponse":{"title":"PartnerV2OrderResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Order"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2OrderPage":{"title":"PartnerV2OrderPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Order"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2Recipient":{"title":"PartnerV2Recipient","type":"object","additionalProperties":false,"required":["id","externalRef","name","email","locale","archived","orderCount","lastOrderAt","environment","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"name":{"type":["null","string"]},"email":{"type":["null","string"]},"locale":{"type":["null","string"],"enum":["ru","en","es","de","fr",null]},"archived":{"type":"boolean"},"orderCount":{"type":"integer","minimum":0},"lastOrderAt":{"type":["null","string"],"format":"date-time"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2RecipientPage":{"title":"PartnerV2RecipientPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Recipient"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2RecipientResponse":{"title":"PartnerV2RecipientResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Recipient"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2RecipientCreateRequest":{"title":"PartnerV2RecipientCreateRequest","type":"object","additionalProperties":false,"required":["externalRef"],"properties":{"externalRef":{"type":"string","minLength":1,"maxLength":128},"name":{"type":["string","null"],"maxLength":120},"email":{"type":["string","null"],"format":"email","maxLength":254},"locale":{"type":["string","null"],"enum":["ru","en","es","de","fr",null]}}},"PartnerV2RecipientPatchRequest":{"title":"PartnerV2RecipientPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":["string","null"],"maxLength":120},"email":{"type":["string","null"],"format":"email","maxLength":254},"locale":{"type":["string","null"],"enum":["ru","en","es","de","fr",null]},"archived":{"type":"boolean"}}},"PartnerV2DeliveryLink":{"title":"PartnerV2DeliveryLink","type":"object","additionalProperties":false,"required":["id","environment","orderId","url","maxViews","viewCount","expiresAt","lastViewedAt","revokedAt","createdAt"],"properties":{"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"orderId":{"type":"string"},"url":{"type":"string","format":"uri","description":"Secret returned on creation and on an identical idempotent replay."},"maxViews":{"type":"integer","minimum":1,"maximum":5},"viewCount":{"type":"integer","minimum":0},"expiresAt":{"type":"string","format":"date-time"},"lastViewedAt":{"type":["null","string"],"format":"date-time"},"revokedAt":{"type":["null","string"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PartnerV2DeliveryLinkCreateRequest":{"title":"PartnerV2DeliveryLinkCreateRequest","type":"object","additionalProperties":false,"properties":{"maxViews":{"type":"integer","minimum":1,"maximum":5,"default":1},"expiresInMinutes":{"type":"integer","minimum":5,"maximum":1440,"default":60}}},"PartnerV2DeliveryLinkResponse":{"title":"PartnerV2DeliveryLinkResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2DeliveryLink"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2DeliveryLinkRevocation":{"title":"PartnerV2DeliveryLinkRevocation","type":"object","additionalProperties":false,"required":["id","status","revokedAt"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["revoked"]},"revokedAt":{"type":"string","format":"date-time"}}},"PartnerV2DeliveryLinkRevocationResponse":{"title":"PartnerV2DeliveryLinkRevocationResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2DeliveryLinkRevocation"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2EsimOrder":{"title":"PartnerV2EsimOrder","type":"object","additionalProperties":false,"required":["id","externalRef","resourceUrl"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"}}},"PartnerV2EsimUsage":{"title":"PartnerV2EsimUsage","type":"object","additionalProperties":false,"required":["totalMb","usedMb","remainingMb","status","observedAt","nextRefreshAt","consecutiveFailures"],"properties":{"totalMb":{"type":["null","integer"]},"usedMb":{"type":"integer","minimum":0},"remainingMb":{"type":["null","integer"]},"status":{"type":"string","enum":["fresh","stale","unavailable"]},"observedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"nextRefreshAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"consecutiveFailures":{"type":"integer","minimum":0}}},"PartnerV2EsimActivation":{"title":"PartnerV2EsimActivation","type":"object","additionalProperties":false,"required":["activatedAt","deadlineAt","serviceExpiresAt","serviceExpiresOn"],"properties":{"activatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"deadlineAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"serviceExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"serviceExpiresOn":{"type":["null","string"]}}},"PartnerV2Esim":{"title":"PartnerV2Esim","type":"object","additionalProperties":false,"required":["id","environment","iccid","state","profileState","serviceState","allowanceState","usage","activation","order","actionsUrl","createdAt"],"properties":{"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"iccid":{"type":"string"},"state":{"type":"string","enum":["issued","delivered","installed","active","depleted","expired","revoked"]},"profileState":{"type":"string","enum":["unknown","released","downloaded","installed","enabled","disabled","revoked"]},"serviceState":{"type":"string","enum":["unknown","not_started","active","depleted","expired","terminated"]},"allowanceState":{"type":"string","enum":["unknown","healthy","low","depleted"]},"usage":{"$ref":"#/components/schemas/PartnerV2EsimUsage"},"activation":{"$ref":"#/components/schemas/PartnerV2EsimActivation"},"order":{"$ref":"#/components/schemas/PartnerV2EsimOrder"},"actionsUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string","format":"date-time"}}},"PartnerV2EsimInstallation":{"title":"PartnerV2EsimInstallation","type":"object","additionalProperties":false,"required":["lpa","qrPayload","smdpAddress","activationCode","ios","android"],"properties":{"lpa":{"type":"string","description":"Secret GSMA activation payload. Treat it as the product itself."},"qrPayload":{"type":"string"},"smdpAddress":{"type":"string"},"activationCode":{"type":"string"},"ios":{"type":"string","format":"uri"},"android":{"type":"string","format":"uri"}}},"PartnerV2EsimDetail":{"title":"PartnerV2EsimDetail","type":"object","additionalProperties":false,"required":["id","environment","iccid","state","profileState","serviceState","allowanceState","usage","activation","order","actionsUrl","createdAt","installation"],"properties":{"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"iccid":{"type":"string"},"state":{"type":"string","enum":["issued","delivered","installed","active","depleted","expired","revoked"]},"profileState":{"type":"string","enum":["unknown","released","downloaded","installed","enabled","disabled","revoked"]},"serviceState":{"type":"string","enum":["unknown","not_started","active","depleted","expired","terminated"]},"allowanceState":{"type":"string","enum":["unknown","healthy","low","depleted"]},"usage":{"$ref":"#/components/schemas/PartnerV2EsimUsage"},"activation":{"$ref":"#/components/schemas/PartnerV2EsimActivation"},"order":{"$ref":"#/components/schemas/PartnerV2EsimOrder"},"actionsUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string","format":"date-time"},"installation":{"$ref":"#/components/schemas/PartnerV2EsimInstallation"}}},"PartnerV2EsimDetailResponse":{"title":"PartnerV2EsimDetailResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2EsimDetail"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2EsimPage":{"title":"PartnerV2EsimPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Esim"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2EsimAction":{"title":"PartnerV2EsimAction","type":"object","additionalProperties":false,"required":["type","availability","access","reasonCode","retryable","observedAt","freshUntil","href"],"properties":{"type":{"type":"string","enum":["top_up","cancellation","refund","reissue"]},"availability":{"type":"string","enum":["available","manual_review","unavailable","unknown"]},"access":{"type":"string","enum":["api","assisted","none"]},"reasonCode":{"type":"string"},"retryable":{"type":"boolean"},"observedAt":{"type":"string","format":"date-time"},"freshUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"href":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}}},"PartnerV2EsimActions":{"title":"PartnerV2EsimActions","type":"object","additionalProperties":false,"required":["esimId","environment","actions"],"properties":{"esimId":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2EsimAction"}}}},"PartnerV2EsimActionsResponse":{"title":"PartnerV2EsimActionsResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2EsimActions"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2TopupOfferPageMeta":{"title":"PartnerV2TopupOfferPageMeta","type":"object","additionalProperties":false,"required":["requestId","apiVersion","esimId","status","retryable","checkedAt","freshUntil","catalogVersion","pricingVersion"],"properties":{"requestId":{"type":"string"},"apiVersion":{"type":"string","enum":["2.0.0"]},"esimId":{"type":"string"},"status":{"type":"string","enum":["available","not_supported","not_enabled","compatibility_unverified","temporarily_unavailable","profile_ineligible"]},"retryable":{"type":"boolean"},"checkedAt":{"type":"string","format":"date-time"},"freshUntil":{"type":"string","format":"date-time"},"catalogVersion":{"type":"integer","minimum":0},"pricingVersion":{"type":"string"}}},"PartnerV2TopupOfferPage":{"title":"PartnerV2TopupOfferPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Offer"}},"meta":{"$ref":"#/components/schemas/PartnerV2TopupOfferPageMeta"}}},"PartnerV2ActionRequestInput":{"title":"PartnerV2ActionRequestInput","type":"object","additionalProperties":false,"required":["externalRef","reasonCode"],"properties":{"externalRef":{"type":"string","minLength":1,"maxLength":128},"reasonCode":{"type":"string","enum":["delivery_not_started","unused_profile","duplicate_order","service_not_delivered","service_defective","duplicate_charge","installation_failed","profile_unusable","other"]},"reasonDetail":{"type":"string","maxLength":1000}}},"PartnerV2ActionRequestOrder":{"title":"PartnerV2ActionRequestOrder","type":"object","additionalProperties":false,"required":["id","externalRef","resourceUrl"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"}}},"PartnerV2ActionRequestReason":{"title":"PartnerV2ActionRequestReason","type":"object","additionalProperties":false,"required":["code","detail"],"properties":{"code":{"type":"string"},"detail":{"type":["null","string"]}}},"PartnerV2ActionRequestResolution":{"title":"PartnerV2ActionRequestResolution","type":"object","additionalProperties":false,"required":["code","note"],"properties":{"code":{"type":"string"},"note":{"type":["string","null"]}}},"PartnerV2ActionRequest":{"title":"PartnerV2ActionRequest","type":"object","additionalProperties":false,"required":["id","externalRef","type","status","stateRevision","environment","order","reason","resolution","replacementOrder","resourceUrl","createdAt","updatedAt","completedAt"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"type":{"type":"string","enum":["cancellation","refund","reissue"]},"status":{"type":"string","enum":["requested","in_review","completed","rejected"]},"stateRevision":{"type":"integer","minimum":1},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"order":{"$ref":"#/components/schemas/PartnerV2ActionRequestOrder"},"reason":{"$ref":"#/components/schemas/PartnerV2ActionRequestReason"},"resolution":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2ActionRequestResolution"},{"type":"null"}]},"replacementOrder":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2ActionRequestOrder"},{"type":"null"}]},"resourceUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}}},"PartnerV2ActionRequestResponse":{"title":"PartnerV2ActionRequestResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2ActionRequest"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2ActionRequestPage":{"title":"PartnerV2ActionRequestPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2ActionRequest"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2AccountPricing":{"title":"PartnerV2AccountPricing","type":"object","additionalProperties":false,"required":["version","discountPct","policy"],"properties":{"version":{"type":"string"},"discountPct":{"type":"number","minimum":0,"maximum":100},"policy":{"type":"string"}}},"PartnerV2AccountLimits":{"title":"PartnerV2AccountLimits","type":"object","additionalProperties":false,"required":["singleOrder","monthlySpend"],"properties":{"singleOrder":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]},"monthlySpend":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]}}},"PartnerV2AccountBrand":{"title":"PartnerV2AccountBrand","type":"object","additionalProperties":false,"required":["displayName","logoUrl","primaryColor","supportEmail","supportUrl","customDomain","customDomainStatus"],"properties":{"displayName":{"type":["null","string"],"description":"Customer-facing name in Letisim-managed delivery emails, hosted delivery pages and the embedded widget."},"logoUrl":{"type":["null","string"],"description":"Public HTTPS PNG, JPEG or GIF URL. Delivery email fetches and embeds a bounded safe copy; hosted surfaces use the URL directly."},"primaryColor":{"type":["null","string"],"description":"Primary presentation color in #RRGGBB format."},"supportEmail":{"type":["null","string"],"description":"Customer-facing support email shown on branded surfaces and used as Reply-To for Letisim-managed delivery email."},"supportUrl":{"type":["null","string"],"description":"Public HTTPS support URL shown on branded presentation surfaces."},"customDomain":{"type":["null","string"],"description":"Requested hostname. Setting it does not activate DNS or TLS serving."},"customDomainStatus":{"type":"string","enum":["not_configured","pending_verification"],"description":"A configured domain is only a request until DNS ownership and TLS are verified; this API does not claim it is serving traffic."}}},"PartnerV2AccountBalance":{"title":"PartnerV2AccountBalance","type":"object","additionalProperties":false,"required":["balance","reserved","availableBalance"],"properties":{"balance":{"$ref":"#/components/schemas/PartnerMoney"},"reserved":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"availableBalance":{"$ref":"#/components/schemas/PartnerMoney"}}},"PartnerV2BalanceResponse":{"title":"PartnerV2BalanceResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2AccountBalance"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2AccountSummaryMetrics":{"type":"object","additionalProperties":false,"required":["orderCount","grossSales","refunds","marginEarned","marginReversed"],"properties":{"orderCount":{"type":"integer","minimum":0},"grossSales":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"refunds":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"marginEarned":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"marginReversed":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"}}},"PartnerV2AccountSummaryRow":{"type":"object","additionalProperties":false,"required":["id","parentAccountId","name","kind","status","depth","orderCount","grossSales","refunds","marginEarned","marginReversed"],"properties":{"id":{"type":"string"},"parentAccountId":{"type":["null","string"]},"name":{"type":"string"},"kind":{"type":"string","enum":["root","reseller","managed_customer"]},"status":{"type":"string","enum":["active","blocked","archived"]},"depth":{"type":"integer","minimum":0,"maximum":7},"orderCount":{"type":"integer","minimum":0},"grossSales":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"refunds":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"marginEarned":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"marginReversed":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"}}},"PartnerV2AccountSummary":{"type":"object","additionalProperties":false,"required":["accountId","from","to","totals","accounts"],"properties":{"accountId":{"type":"string"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"totals":{"$ref":"#/components/schemas/PartnerV2AccountSummaryMetrics"},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2AccountSummaryRow"}}}},"PartnerV2AccountSummaryResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2AccountSummary"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2Account":{"title":"PartnerV2Account","type":"object","additionalProperties":false,"required":["id","parentAccountId","externalRef","name","kind","status","currency","pricing","limits","brand","brandOverrides","retailBrands","balance","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"parentAccountId":{"type":["null","string"]},"externalRef":{"type":["null","string"]},"name":{"type":"string"},"kind":{"type":"string","enum":["root","reseller","managed_customer"]},"status":{"type":"string","enum":["active","blocked","archived"]},"currency":{"type":"string","enum":["RUB","USD"]},"pricing":{"$ref":"#/components/schemas/PartnerV2AccountPricing"},"limits":{"$ref":"#/components/schemas/PartnerV2AccountLimits"},"brand":{"$ref":"#/components/schemas/PartnerV2AccountBrand"},"brandOverrides":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2AccountBrand"},{"type":"null"}]},"retailBrands":{"type":"array","items":{"title":"PartnerV2RetailBrandProjection","type":"object","additionalProperties":false,"required":["id","key","publicName","status","locale","timezone","manifest","controls","legal","communication","commercial","domains","apps","readiness"],"properties":{"id":{"type":"string"},"key":{"type":"string"},"publicName":{"type":"string"},"status":{"type":"string","enum":["draft","onboarding","review","active","paused","terminated"]},"locale":{"type":"string"},"timezone":{"type":"string"},"manifest":{"type":"object","additionalProperties":false,"required":["version","digest"],"properties":{"version":{"type":"integer","minimum":1},"digest":{"type":["null","string"]}}},"controls":{"type":"object","additionalProperties":false,"required":["browse","checkout","brandPayment","wholesaleFunding","periodClose","existingOrderRecovery"],"properties":{"browse":{"type":"boolean"},"checkout":{"type":"boolean"},"brandPayment":{"type":"boolean"},"wholesaleFunding":{"type":"boolean"},"periodClose":{"type":"boolean"},"existingOrderRecovery":{"type":"boolean"}}},"legal":{"type":"object","additionalProperties":false,"required":["supportUrl","privacyUrl","termsUrl","refundUrl","accountDeletionUrl"],"properties":{"supportUrl":{"type":["null","string"]},"privacyUrl":{"type":["null","string"]},"termsUrl":{"type":["null","string"]},"refundUrl":{"type":["null","string"]},"accountDeletionUrl":{"type":["null","string"]}}},"communication":{"type":"object","additionalProperties":false,"required":["supportEmail","ready","blockers"],"properties":{"supportEmail":{"type":["null","string"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"string"}}}},"commercial":{"anyOf":[{"type":"object","additionalProperties":false,"required":["agreementPublicVersion","discountPct","participationPct","participationMechanism","paymentMode","settlementCurrency","merchantLegalName","serviceLegalName","payment"],"properties":{"agreementPublicVersion":{"type":"string"},"discountPct":{"type":"number","minimum":0,"maximum":100},"participationPct":{"type":"number","minimum":0,"maximum":100},"participationMechanism":{"type":"string","enum":["equity","contractual_profit_share"]},"paymentMode":{"type":"string","enum":["letisim_mor_managed","brand_mor"]},"settlementCurrency":{"type":"string"},"merchantLegalName":{"type":"string"},"serviceLegalName":{"type":"string"},"payment":{"anyOf":[{"type":"object","additionalProperties":false,"required":["publicVersion","provider","rail","currency","configured","credentialReady"],"properties":{"publicVersion":{"type":"string"},"provider":{"type":"string"},"rail":{"type":"string"},"currency":{"type":"string"},"configured":{"type":"boolean"},"credentialReady":{"type":"boolean"}}},{"type":"null"}]}}},{"type":"null"}]},"domains":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["hostname","purpose","status","tlsStatus","verifiedAt"],"properties":{"hostname":{"type":"string"},"purpose":{"type":"string","enum":["site","api","links","support","cabinet"]},"status":{"type":"string"},"tlsStatus":{"type":"string"},"verifiedAt":{"type":["null","string"],"format":"date-time"}}}},"apps":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","platform","appIdentifier","displayName","status","storeUrl","currentVersion","currentBuild","readiness","releases"],"properties":{"id":{"type":"string"},"platform":{"type":"string","enum":["ios","android"]},"appIdentifier":{"type":"string"},"displayName":{"type":"string"},"status":{"type":"string"},"storeUrl":{"type":["null","string"]},"currentVersion":{"type":["null","string"]},"currentBuild":{"type":["null","string"]},"readiness":{"type":"object","additionalProperties":false,"required":["push","oauth","merchant"],"properties":{"push":{"type":"boolean"},"oauth":{"type":"boolean"},"merchant":{"type":"boolean"}}},"releases":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["version","build","state","observedAt","createdAt"],"properties":{"version":{"type":"string"},"build":{"type":"string"},"state":{"type":"string"},"observedAt":{"type":["null","string"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}}}}}},"readiness":{"type":"object","additionalProperties":false,"required":["ready","blockers","tracks"],"properties":{"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"string"}},"tracks":{"type":"object","additionalProperties":false,"required":["review","web","iosRelease","androidRelease","liveCheckout","financeClose"],"properties":{"review":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}},"web":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}},"iosRelease":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}},"androidRelease":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}},"liveCheckout":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}},"financeClose":{"type":"object","additionalProperties":false,"required":["state","ready","blockers"],"properties":{"state":{"type":"string","enum":["ready","blocked","not_required"]},"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","category","owner","evidence","actionKey","sensitive"],"properties":{"code":{"type":"string"},"category":{"type":"string","enum":["product","store","support","legal","payment","funding","finance"]},"owner":{"type":"string","enum":["letisim_engineering","brand_owner","joint","external_provider"]},"evidence":{"type":"string","enum":["missing","invalid","disabled","pending_review"]},"actionKey":{"type":"string"},"sensitive":{"type":"boolean","enum":[false]}}}}}}}}}}}}},"balance":{"$ref":"#/components/schemas/PartnerV2AccountBalance"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2AccountResponse":{"title":"PartnerV2AccountResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Account"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2AccountPage":{"title":"PartnerV2AccountPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Account"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2AccountCreateRequest":{"title":"PartnerV2AccountCreateRequest","type":"object","additionalProperties":false,"required":["externalRef","name","kind","discountPct"],"properties":{"parentAccountId":{"type":"string"},"externalRef":{"type":"string","minLength":1,"maxLength":128},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["reseller","managed_customer"]},"discountPct":{"type":"number","minimum":0,"maximum":100},"singleOrderLimit":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"monthlySpendLimit":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"}}},"PartnerV2AccountPatchRequest":{"title":"PartnerV2AccountPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"status":{"type":"string","enum":["active","blocked","archived"]},"singleOrderLimit":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]},"monthlySpendLimit":{"anyOf":[{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},{"type":"null"}]}}},"PartnerV2AccountBrandPatchRequest":{"title":"PartnerV2AccountBrandPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"description":"Brand fields apply to free Letisim-managed delivery email, hosted delivery pages and the embedded widget. Email still uses the verified Letisim sender domain and non-removable Letisim attribution. These fields do not control the carrier or eSIM profile label shown by a device. Omitted fields stay unchanged; null clears a local override.","properties":{"displayName":{"type":["string","null"],"description":"Customer-facing name."},"logoUrl":{"type":["string","null"],"description":"Public HTTPS PNG, JPEG or GIF URL. Unsupported or unavailable images fail soft in email."},"primaryColor":{"type":["string","null"],"description":"Primary color in #RRGGBB format."},"supportEmail":{"type":["string","null"],"description":"Customer-facing support email and Reply-To for Letisim-managed delivery email."},"supportUrl":{"type":["string","null"],"description":"Public HTTPS support URL."},"customDomain":{"type":["string","null"],"description":"Requested hostname; remains pending until DNS ownership and TLS are verified operationally."}}},"PartnerV2AccountMember":{"title":"PartnerV2AccountMember","type":"object","additionalProperties":false,"required":["id","accountId","email","displayName","role","status","invitedAt","inviteExpiresAt","invitationVersion","acceptedAt","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"accountId":{"type":"string"},"email":{"type":"string","format":"email"},"displayName":{"type":["null","string"]},"role":{"type":"string","enum":["admin","operator","support","finance","developer"]},"status":{"type":"string","enum":["invited","active","expired","revoked"]},"invitedAt":{"type":"string","format":"date-time"},"inviteExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"invitationVersion":{"type":"integer","minimum":1},"acceptedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2AccountMemberPage":{"title":"PartnerV2AccountMemberPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2AccountMember"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2AccountMemberResponse":{"title":"PartnerV2AccountMemberResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2AccountMember"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2AccountMemberCreateRequest":{"title":"PartnerV2AccountMemberCreateRequest","type":"object","additionalProperties":false,"required":["email","role"],"properties":{"email":{"type":"string","format":"email","maxLength":254},"displayName":{"type":"string","minLength":1,"maxLength":120},"role":{"type":"string","enum":["admin","operator","support","finance","developer"]}}},"PartnerV2AccountMemberPatchRequest":{"title":"PartnerV2AccountMemberPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"properties":{"role":{"type":"string","enum":["admin","operator","support","finance","developer"]},"status":{"type":"string","enum":["revoked"]}}},"PartnerV2PriceBook":{"title":"PartnerV2PriceBook","type":"object","additionalProperties":false,"required":["id","version","discountPct","policy","createdAt"],"properties":{"id":{"type":"string"},"version":{"type":"string"},"discountPct":{"type":"number","minimum":0,"maximum":100},"policy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"PartnerV2PriceBookResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2PriceBook"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2PriceBookPage":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2PriceBook"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2PriceBookCreateRequest":{"type":"object","additionalProperties":false,"required":["discountPct"],"properties":{"discountPct":{"type":"number","minimum":0,"maximum":100},"reason":{"type":"string","maxLength":250}}},"PartnerV2AllocationRequest":{"type":"object","additionalProperties":false,"required":["amount"],"properties":{"amount":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"sourceAccountId":{"type":"string","minLength":1,"maxLength":128}}},"PartnerV2Allocation":{"title":"PartnerV2Allocation","type":"object","additionalProperties":false,"required":["transactionId","amount","deduplicated"],"properties":{"transactionId":{"type":"string"},"amount":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"deduplicated":{"type":"boolean"}}},"PartnerV2AllocationResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2Allocation"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2AccountKey":{"type":"object","additionalProperties":false,"required":["id","externalRef","label","environment","scopes","prefix","status","createdAt"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"label":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"scopes":{"type":"array","items":{"type":"string","enum":["catalog:read","quotes:write","balance:read","transactions:read","orders:read","orders:write","recipients:read","recipients:write","esims:read","actions:read","actions:write","accounts:read","accounts:write","funding:write","api_keys:write","storefronts:read","storefronts:write","delivery_links:write"]}},"prefix":{"type":"string"},"status":{"type":"string","enum":["active","revoked"]},"createdAt":{"type":"string","format":"date-time"}}},"PartnerV2AccountKeyPage":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2AccountKey"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2AccountKeyCreateRequest":{"type":"object","additionalProperties":false,"required":["externalRef","label","environment","scopes"],"properties":{"externalRef":{"type":"string","minLength":1,"maxLength":128},"label":{"type":"string","minLength":1,"maxLength":120},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"scopes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["catalog:read","quotes:write","balance:read","transactions:read","orders:read","orders:write","recipients:read","recipients:write","esims:read","actions:read","actions:write","accounts:read","accounts:write","funding:write","api_keys:write","storefronts:read","storefronts:write","delivery_links:write"]}},"allowedCidrs":{"type":"array","maxItems":20,"uniqueItems":true,"items":{"type":"string"}},"mtlsFingerprintSha256":{"type":["string","null"]},"rateLimitPerMinute":{"type":["integer","null"]}}},"PartnerV2AccountKeySecret":{"title":"PartnerV2AccountKeySecret","type":"object","additionalProperties":false,"required":["id","externalRef","label","environment","scopes","prefix","secret","createdAt"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"label":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"scopes":{"type":"array","items":{"type":"string","enum":["catalog:read","quotes:write","balance:read","transactions:read","orders:read","orders:write","recipients:read","recipients:write","esims:read","actions:read","actions:write","accounts:read","accounts:write","funding:write","api_keys:write","storefronts:read","storefronts:write","delivery_links:write"]}},"prefix":{"type":"string"},"status":{"type":"string","enum":["active","revoked"]},"createdAt":{"type":"string","format":"date-time"},"secret":{"type":"string","description":"Returned once. Store it now."}}},"PartnerV2AccountKeyCreateResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2AccountKeySecret"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2StorefrontDomain":{"title":"PartnerV2StorefrontDomain","type":"object","additionalProperties":false,"required":["id","appId","hostname","source","provider","ownershipStatus","dnsStatus","tlsStatus","status","dns","lastError","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"appId":{"type":"string"},"hostname":{"type":"string"},"source":{"type":"string","enum":["external","managed"]},"provider":{"type":["null","string"]},"ownershipStatus":{"type":"string","enum":["pending","verified","failed"]},"dnsStatus":{"type":"string","enum":["pending","active","failed"]},"tlsStatus":{"type":"string","enum":["pending","active","failed"]},"status":{"type":"string","enum":["pending","active","disabled","failed"]},"dns":{"type":"object","additionalProperties":false,"required":["ownership","cname"],"properties":{"ownership":{"type":"object","additionalProperties":false,"required":["type","name","value"],"properties":{"type":{"enum":["TXT"]},"name":{"type":"string"},"value":{"type":"string"}}},"cname":{"type":"object","additionalProperties":false,"required":["type","name","value"],"properties":{"type":{"enum":["CNAME"]},"name":{"type":"string"},"value":{"type":"string"}}}}},"lastError":{"type":["null","string"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2StorefrontDomainResponse":{"title":"PartnerV2StorefrontDomainResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2StorefrontDomain"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2StorefrontDomainCreateRequest":{"title":"PartnerV2StorefrontDomainCreateRequest","type":"object","additionalProperties":false,"required":["hostname"],"properties":{"hostname":{"type":"string","minLength":4,"maxLength":253},"source":{"type":"string","enum":["external"]}}},"PartnerV2StorefrontApp":{"title":"PartnerV2StorefrontApp","type":"object","additionalProperties":false,"required":["id","accountId","externalRef","name","environment","publishableKey","status","surface","slug","platformUrl","checkoutMode","deliveryMode","widgetLayout","allowedOrigins","countryIsos","defaultLocale","widgetScriptUrl","widgetScriptIntegrity","domains","domainRegistration","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"accountId":{"type":"string"},"externalRef":{"type":"string"},"name":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"publishableKey":{"type":"string","description":"Safe to expose in browser markup; it never authorizes spending."},"status":{"type":"string","enum":["active","disabled"]},"surface":{"type":"string","enum":["widget","hosted"]},"slug":{"type":["null","string"]},"platformUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"checkoutMode":{"type":"string","enum":["reseller","managed"]},"deliveryMode":{"type":"string","enum":["partner","letisim"]},"widgetLayout":{"type":"string","enum":["button","card","catalog","full"]},"allowedOrigins":{"type":"array","items":{"type":"string","format":"uri"}},"countryIsos":{"type":"array","items":{"type":"string","minLength":2,"maxLength":2}},"defaultLocale":{"type":"string","enum":["en","ru","es","de","fr","ar","he"]},"widgetScriptUrl":{"type":"string","format":"uri","description":"Immutable, content-addressed widget build. Pin this exact URL; it changes only when the widget itself changes."},"widgetScriptIntegrity":{"type":"string","description":"Subresource Integrity hash for widgetScriptUrl. Put it in the integrity attribute of your script tag."},"domains":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2StorefrontDomain"}},"domainRegistration":{"type":"object","additionalProperties":false,"required":["available","provider","checkoutUrl"],"properties":{"available":{"type":"boolean"},"provider":{"type":["null","string"]},"checkoutUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PartnerV2StorefrontAppPage":{"title":"PartnerV2StorefrontAppPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2StorefrontApp"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2StorefrontAppResponse":{"title":"PartnerV2StorefrontAppResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2StorefrontApp"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2StorefrontAppCreateRequest":{"title":"PartnerV2StorefrontAppCreateRequest","type":"object","additionalProperties":false,"required":["externalRef","name","environment"],"oneOf":[{"required":["surface","slug"],"not":{"required":["allowedOrigins"]},"properties":{"surface":{"enum":["hosted"]}}},{"required":["allowedOrigins"],"properties":{"surface":{"type":"string","enum":["widget"]}}}],"properties":{"externalRef":{"type":"string","minLength":1,"maxLength":128},"name":{"type":"string","minLength":1,"maxLength":120},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"surface":{"type":"string","enum":["widget","hosted"]},"slug":{"type":"string","minLength":3,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])$"},"checkoutMode":{"type":"string","enum":["reseller","managed"]},"deliveryMode":{"type":"string","enum":["partner","letisim"]},"widgetLayout":{"type":"string","enum":["button","card","catalog","full"]},"allowedOrigins":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","format":"uri"},"description":"Exact widget origins. Hosted storefront origin is derived from slug and cannot be overridden."},"countryIsos":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":2,"maxLength":2}},"defaultLocale":{"type":"string","enum":["en","ru","es","de","fr","ar","he"]}}},"PartnerV2StorefrontAppPatchRequest":{"title":"PartnerV2StorefrontAppPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"status":{"type":"string","enum":["active","disabled"]},"slug":{"type":"string","minLength":3,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])$"},"checkoutMode":{"type":"string","enum":["reseller","managed"]},"deliveryMode":{"type":"string","enum":["partner","letisim"]},"widgetLayout":{"type":"string","enum":["button","card","catalog","full"]},"allowedOrigins":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","format":"uri"},"description":"Exact widget origins. Hosted storefront origin is derived from slug and cannot be overridden."},"countryIsos":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":2,"maxLength":2}},"defaultLocale":{"type":"string","enum":["en","ru","es","de","fr","ar","he"]}}},"PartnerV2WidgetSession":{"title":"PartnerV2WidgetSession","type":"object","additionalProperties":false,"required":["id","appId","environment","publishableKey","token","origin","intent","state","returnUrl","expiresAt","widgetScriptUrl","widgetScriptIntegrity"],"properties":{"id":{"type":"string"},"appId":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"publishableKey":{"type":"string"},"token":{"type":"string","description":"Short-lived browser bearer token. Return it only to the intended browser session."},"origin":{"type":"string","format":"uri"},"intent":{"type":"string","enum":["browse","issue"]},"state":{"type":"string","enum":["active","quoted","ordered"]},"returnUrl":{"type":["null","string"]},"expiresAt":{"type":"string","format":"date-time"},"widgetScriptUrl":{"type":"string","format":"uri","description":"Immutable, content-addressed widget build."},"widgetScriptIntegrity":{"type":"string","description":"Subresource Integrity hash for widgetScriptUrl."}}},"PartnerV2WidgetSessionRecipient":{"title":"PartnerV2WidgetSessionRecipient","type":"object","additionalProperties":false,"required":["deliveryMode"],"properties":{"deliveryMode":{"type":"string","enum":["partner","letisim"],"description":"Delivery ownership. partner keeps delivery with the reseller; letisim requires email and sends the fixed transactional template from the verified Letisim domain using the effective Account brand and non-removable Letisim attribution."},"email":{"type":["string","null"]},"reference":{"type":["string","null"]},"locale":{"type":["string","null"]}}},"PartnerV2WidgetSessionCreateRequest":{"title":"PartnerV2WidgetSessionCreateRequest","type":"object","additionalProperties":false,"required":["origin","intent"],"properties":{"origin":{"type":"string","format":"uri","maxLength":500},"intent":{"type":"string","enum":["browse","issue"]},"externalRef":{"type":"string","minLength":1,"maxLength":128},"recipient":{"$ref":"#/components/schemas/PartnerV2WidgetSessionRecipient"},"returnUrl":{"type":"string","format":"uri","maxLength":1000},"expiresInSeconds":{"type":"integer","minimum":300,"maximum":1800,"default":900}},"description":"intent=issue requires externalRef and recipient. The reseller server pins them before the token reaches a browser."},"PartnerV2WidgetSessionResponse":{"title":"PartnerV2WidgetSessionResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2WidgetSession"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2ConnectorCredential":{"title":"PartnerV2ConnectorCredential","type":"object","additionalProperties":false,"required":["prefix","version","lastUsedAt","createdAt"],"properties":{"prefix":{"type":"string","description":"Non-secret prefix for support and rotation."},"version":{"type":"integer","minimum":1},"lastUsedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}}},"PartnerV2ConnectorHealth":{"title":"PartnerV2ConnectorHealth","type":"object","additionalProperties":false,"required":["lastRenderAt","lastSessionAt","lastOrderAt","lastSuccessAt","lastErrorAt","lastErrorCode","lastRequestId","consecutiveFailureCount"],"properties":{"lastRenderAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastSessionAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastOrderAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastSuccessAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastErrorAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastErrorCode":{"type":["null","string"]},"lastRequestId":{"type":["null","string"]},"consecutiveFailureCount":{"type":"integer","minimum":0}}},"PartnerV2ConnectorInstallation":{"title":"PartnerV2ConnectorInstallation","type":"object","additionalProperties":false,"required":["id","accountId","storefrontAppId","storefrontAppName","publishableKey","widgetLayout","platform","externalSiteId","canonicalOrigin","environment","mode","status","capabilities","configurationVersion","runtimeVersion","rateLimitPerMinute","credential","health","orderCount","connectedAt","disabledAt","revokedAt","disconnectedAt","widgetScriptUrl","widgetScriptIntegrity","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"accountId":{"type":"string"},"storefrontAppId":{"type":"string"},"storefrontAppName":{"type":["null","string"]},"publishableKey":{"type":["null","string"]},"widgetLayout":{"anyOf":[{"type":"string","enum":["button","card","catalog","full"]},{"type":"null"}]},"platform":{"type":"string","enum":["wordpress","shopify","webflow","wix","squarespace","tilda","ghost","framer","generic"]},"externalSiteId":{"type":["null","string"]},"canonicalOrigin":{"type":"string","format":"uri"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"mode":{"type":"string","enum":["browse","merchant_paid_issue","assisted_issue"]},"status":{"type":"string","enum":["pending","active","disabled","disconnected","revoked"]},"capabilities":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["browse","issue"]}},"configurationVersion":{"type":"integer","minimum":1},"runtimeVersion":{"type":"string"},"rateLimitPerMinute":{"type":"integer","minimum":1},"credential":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2ConnectorCredential"},{"type":"null"}]},"health":{"$ref":"#/components/schemas/PartnerV2ConnectorHealth"},"orderCount":{"type":["null","integer"]},"connectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"disabledAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"revokedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"disconnectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"widgetScriptUrl":{"type":"string","format":"uri"},"widgetScriptIntegrity":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"description":"One separately revocable platform/site binding. Publishable fields are safe for browser rendering; the installation credential is never returned here."},"PartnerV2ConnectorInstallationResponse":{"title":"PartnerV2ConnectorInstallationResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallation"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2ConnectorInstallationPage":{"title":"PartnerV2ConnectorInstallationPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallation"}},"meta":{"$ref":"#/components/schemas/PartnerV2PageMeta"}}},"PartnerV2ConnectorInstallationCreateRequest":{"title":"PartnerV2ConnectorInstallationCreateRequest","type":"object","additionalProperties":false,"required":["platform","storefrontAppId","canonicalOrigin","environment","mode"],"properties":{"platform":{"type":"string","enum":["wordpress","shopify","webflow","wix","squarespace","tilda","ghost","framer","generic"]},"storefrontAppId":{"type":"string","minLength":1,"maxLength":191},"externalSiteId":{"type":"string","minLength":1,"maxLength":191,"description":"Use only when the platform already exposes its immutable site/shop id; otherwise omit until connect exchange."},"canonicalOrigin":{"type":"string","format":"uri","maxLength":500},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"mode":{"type":"string","enum":["browse","merchant_paid_issue","assisted_issue"]},"runtimeVersion":{"type":"string","minLength":1,"maxLength":64}}},"PartnerV2ConnectorInstallationPatchRequest":{"title":"PartnerV2ConnectorInstallationPatchRequest","type":"object","additionalProperties":false,"minProperties":1,"properties":{"status":{"type":"string","enum":["active","disabled","disconnected"]},"mode":{"type":"string","enum":["browse","merchant_paid_issue","assisted_issue"]}}},"PartnerV2ConnectorConnectCode":{"title":"PartnerV2ConnectorConnectCode","type":"object","additionalProperties":false,"required":["code","expiresAt","installationId"],"properties":{"code":{"type":"string","description":"Single-use, ten-minute CMS connect code. Treat it as a secret until exchanged."},"expiresAt":{"type":"string","format":"date-time"},"installationId":{"type":"string"}}},"PartnerV2ConnectorConnectCodeResponse":{"title":"PartnerV2ConnectorConnectCodeResponse","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PartnerV2ConnectorConnectCode"},"meta":{"$ref":"#/components/schemas/PartnerV2Meta"}}},"PartnerV2TransactionOrder":{"title":"PartnerV2TransactionOrder","type":"object","additionalProperties":false,"required":["id","externalRef","resourceUrl"],"properties":{"id":{"type":"string"},"externalRef":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"}}},"PartnerV2Transaction":{"title":"PartnerV2Transaction","type":"object","additionalProperties":false,"required":["id","environment","kind","direction","amount","order","occurredAt"],"properties":{"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"kind":{"type":"string","enum":["funding","order_charge","refund","allocation","margin","margin_reversal","adjustment"]},"direction":{"type":"string","enum":["credit","debit"]},"amount":{"$ref":"#/components/schemas/PartnerNonNegativeMoney"},"order":{"anyOf":[{"$ref":"#/components/schemas/PartnerV2TransactionOrder"},{"type":"null"}]},"occurredAt":{"type":"string","format":"date-time"}}},"PartnerV2TransactionPageMeta":{"title":"PartnerV2TransactionPageMeta","type":"object","additionalProperties":false,"required":["requestId","apiVersion","nextCursor","hasMore","asOf"],"properties":{"requestId":{"type":"string"},"apiVersion":{"type":"string","enum":["2.0.0"]},"nextCursor":{"type":["null","string"]},"hasMore":{"type":"boolean"},"asOf":{"type":"string","format":"date-time"}}},"PartnerV2TransactionPage":{"title":"PartnerV2TransactionPage","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerV2Transaction"}},"meta":{"$ref":"#/components/schemas/PartnerV2TransactionPageMeta"}}},"PartnerV2TransactionExport":{"title":"PartnerV2TransactionExport","type":"string","contentMediaType":"text/csv","description":"UTF-8 CSV with a fixed reconciliation column order and spreadsheet-formula protection."},"PartnerV2WebhookEventType":{"title":"PartnerV2WebhookEventType","type":"string","enum":["order.created","order.provisioning","order.delivered","order.failed","order.refunded","catalog.updated","webhook.test","cancellation.requested","cancellation.processing","cancellation.completed","cancellation.rejected","refund.requested","refund.processing","refund.completed","refund.rejected","reissue.requested","reissue.processing","reissue.completed","reissue.rejected"]},"PartnerV2ReservedWebhookEventType":{"title":"PartnerV2ReservedWebhookEventType","type":"string","enum":["esim.usage.updated","esim.usage.depleted"],"description":"Reserved namespace only. These events cannot be subscribed to and are not emitted yet."},"PartnerV2OrderWebhookData":{"title":"PartnerV2OrderWebhookData","type":"object","additionalProperties":false,"required":["orderId","externalRef","productId","resourceUrl","stateRevision","status","billingStatus","kind","targetEsimId"],"properties":{"orderId":{"type":"string"},"externalRef":{"type":"string"},"productId":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"},"stateRevision":{"type":"integer","minimum":1},"status":{"$ref":"#/components/schemas/PartnerOrderStatus"},"billingStatus":{"$ref":"#/components/schemas/PartnerBillingStatus"},"kind":{"type":"string","enum":["issue","top_up"]},"targetEsimId":{"type":["string","null"]}}},"PartnerV2ActionWebhookData":{"title":"PartnerV2ActionWebhookData","type":"object","additionalProperties":false,"required":["requestId","externalRef","resourceUrl","requestType","status","stateRevision","orderId","orderExternalRef","orderResourceUrl","reasonCode"],"properties":{"requestId":{"type":"string"},"externalRef":{"type":"string"},"resourceUrl":{"type":"string","format":"uri"},"requestType":{"type":"string","enum":["cancellation","refund","reissue"]},"status":{"type":"string","enum":["requested","in_review","completed","rejected"]},"stateRevision":{"type":"integer","minimum":1},"orderId":{"type":"string"},"orderExternalRef":{"type":"string"},"orderResourceUrl":{"type":"string","format":"uri"},"reasonCode":{"type":"string"},"resolutionCode":{"type":"string"}}},"PartnerV2CatalogRelease":{"title":"PartnerV2CatalogRelease","type":"object","additionalProperties":false,"required":["catalogVersion","previousCatalogVersion","generatedAt","syncMode","updatedSince","productsUrl","offersUrl"],"properties":{"catalogVersion":{"type":"integer","minimum":0},"previousCatalogVersion":{"type":["integer","null"],"minimum":0},"generatedAt":{"type":"string","format":"date-time"},"syncMode":{"type":"string","enum":["full_snapshot"]},"updatedSince":{"type":["string","null"],"format":"date-time"},"productsUrl":{"type":"string","format":"uri"},"offersUrl":{"type":"string","format":"uri"}},"description":"Release pointer. syncMode=full_snapshot explicitly means row-level deltas are not claimed."},"PartnerV2CatalogWebhookData":{"title":"PartnerV2CatalogWebhookData","type":"object","additionalProperties":false,"required":["release"],"properties":{"release":{"$ref":"#/components/schemas/PartnerV2CatalogRelease"}}},"PartnerV2WebhookTestData":{"title":"PartnerV2WebhookTestData","type":"object","additionalProperties":false,"required":["test"],"properties":{"test":{"type":"boolean","enum":[true]}}},"PartnerV2OrderWebhookEvent":{"title":"PartnerV2OrderWebhookEvent","type":"object","additionalProperties":false,"required":["id","type","version","createdAt","environment","data"],"properties":{"id":{"type":"string"},"version":{"type":"integer","enum":[1]},"createdAt":{"type":"string","format":"date-time"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"type":{"type":"string","enum":["order.created","order.provisioning","order.delivered","order.failed","order.refunded"]},"data":{"$ref":"#/components/schemas/PartnerV2OrderWebhookData"}}},"PartnerV2ActionWebhookEvent":{"title":"PartnerV2ActionWebhookEvent","type":"object","additionalProperties":false,"required":["id","type","version","createdAt","environment","data"],"properties":{"id":{"type":"string"},"version":{"type":"integer","enum":[1]},"createdAt":{"type":"string","format":"date-time"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"type":{"type":"string","enum":["cancellation.requested","cancellation.processing","cancellation.completed","cancellation.rejected","refund.requested","refund.processing","refund.completed","refund.rejected","reissue.requested","reissue.processing","reissue.completed","reissue.rejected"]},"data":{"$ref":"#/components/schemas/PartnerV2ActionWebhookData"}}},"PartnerV2CatalogWebhookEvent":{"title":"PartnerV2CatalogWebhookEvent","type":"object","additionalProperties":false,"required":["id","type","version","createdAt","environment","data"],"properties":{"id":{"type":"string"},"version":{"type":"integer","enum":[1]},"createdAt":{"type":"string","format":"date-time"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"type":{"type":"string","enum":["catalog.updated"]},"data":{"$ref":"#/components/schemas/PartnerV2CatalogWebhookData"}}},"PartnerV2TestWebhookEvent":{"title":"PartnerV2TestWebhookEvent","type":"object","additionalProperties":false,"required":["id","type","version","createdAt","environment","data"],"properties":{"id":{"type":"string"},"version":{"type":"integer","enum":[1]},"createdAt":{"type":"string","format":"date-time"},"environment":{"$ref":"#/components/schemas/PartnerEnvironment"},"type":{"type":"string","enum":["webhook.test"]},"data":{"$ref":"#/components/schemas/PartnerV2WebhookTestData"}}},"PartnerV2WebhookEvent":{"title":"PartnerV2WebhookEvent","oneOf":[{"$ref":"#/components/schemas/PartnerV2OrderWebhookEvent"},{"$ref":"#/components/schemas/PartnerV2ActionWebhookEvent"},{"$ref":"#/components/schemas/PartnerV2CatalogWebhookEvent"},{"$ref":"#/components/schemas/PartnerV2TestWebhookEvent"}]}}},"paths":{"/accounts/{id}/connector-installations":{"get":{"operationId":"listPartnerV2ConnectorInstallations","summary":"List separately revocable CMS and commerce installations for an account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List the CMS and commerce installations owned by one accessible Account. Health and credential metadata are privacy-minimized: responses include safe request ids and a non-secret credential prefix, never an installation credential or a connect code."},"post":{"operationId":"createPartnerV2ConnectorInstallation","summary":"Create or recover an installation bound to one account, site and origin","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationCreateRequest"},"example":{"platform":"wordpress","storefrontAppId":"sfa_01JXYZ","canonicalOrigin":"https://shop.example","environment":"test","mode":"merchant_paid_issue","runtimeVersion":"wordpress-0.1.0"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Reserve one platform/site binding for an existing widget StorefrontApp. The exact canonical origin must already be allowed on that app. merchant_paid_issue is accepted only for adapters whose trusted paid-event flow is implemented; public browser fields alone never authorize prepaid spend."}},"/connector-installations/{id}":{"get":{"operationId":"getPartnerV2ConnectorInstallation","summary":"Read secret-free configuration and health for one installation","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read one installation's secret-free binding, runtime version, health timestamps and recovery references. Site credentials stay scoped to the installation and are never returned by this management resource."},"patch":{"operationId":"patchPartnerV2ConnectorInstallation","summary":"Change the mode or operational state of one installation","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationPatchRequest"},"example":{"status":"disabled"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Disable, reconnect or change the authority mode of exactly one installation without affecting other Partner API keys, StorefrontApps or balances. Revoked installations cannot be re-enabled; create a new installation after a deliberate revoke."}},"/connector-installations/{id}/connect-codes":{"post":{"operationId":"createPartnerV2ConnectorConnectCode","summary":"Mint a short-lived single-use code for a CMS settings screen","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorConnectCodeResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Mint a single-use code that expires after ten minutes. Paste only this temporary code into the CMS settings screen; the exchange returns a least-privilege installation credential to the CMS server and never exposes a general Partner API key."}},"/connector-installations/{id}/revoke":{"post":{"operationId":"revokePartnerV2ConnectorInstallation","summary":"Permanently revoke one installation and all of its connector credentials","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ConnectorInstallationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Permanently revoke one installation and every active installation credential. The action preserves immutable host-order mappings and financial history for audit and recovery."}},"/capabilities":{"get":{"operationId":"getPartnerV2Capabilities","summary":"Discover the exact Connect contract available to this API key","tags":["Partner API v2"],"description":"Discover the modules and scopes granted to this credential. Build account-level UI from this response, then discover profile-specific post-sale actions from the eSIM actions resource. In supplyOperations, access=assisted marks operations whose request endpoints stay callable and are resolved by operator review even when availability reports no automatic execution.","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2CapabilitiesResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"The key policy denies this request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/balance":{"get":{"operationId":"getPartnerV2Balance","summary":"Get the authenticated account balance and active reservations","tags":["Partner API v2"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2BalanceResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read the current Account wallet projection: ledger balance, active reservations and spendable amount. Test and Live keys return isolated balances and never share money."}},"/account":{"get":{"operationId":"getPartnerV2CurrentAccount","summary":"Get the account represented by the current credential","tags":["Partner API v2"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Resolve the Account, environment and effective commercial context represented by the current API key. Use it to verify that a credential is attached to the intended seller before processing traffic."}},"/accounts":{"get":{"operationId":"listPartnerV2Accounts","summary":"List direct children of an accessible reseller account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"parentAccountId","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"includeDescendants","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List child Accounts within the caller's permitted subtree. Pass parentAccountId to select an accessible root; includeDescendants expands the tree without granting access to ancestors or siblings."},"post":{"operationId":"createPartnerV2Account","summary":"Create an idempotent direct reseller or managed-customer account","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountCreateRequest"},"example":{"externalRef":"agency-bangkok","name":"Bangkok Travel","kind":"reseller","discountPct":12,"singleOrderLimit":{"amountMinor":500000,"currency":"RUB"}}}}},"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Create a direct reseller or managed-customer Account with its own wallet and commercial policy. externalRef is a natural idempotency key under the parent: replay the identical payload to recover an unknown response."}},"/accounts/{id}":{"get":{"operationId":"getPartnerV2Account","summary":"Get one accessible reseller account with inherited brand and balance","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read one Account in the caller's accessible subtree, including effective inherited branding and its isolated balance projection. The opaque id must come from an Account response, not be constructed."},"patch":{"operationId":"patchPartnerV2Account","summary":"Update account identity, status or spend limits","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountPatchRequest"},"example":{"name":"Bangkok Travel B2B","monthlySpendLimit":{"amountMinor":5000000,"currency":"RUB"}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Change Account identity, operational status or spend limits without rewriting historic Quotes and Orders. After a timeout, read the Account before deciding whether to repeat the patch."}},"/accounts/{id}/summary":{"get":{"operationId":"getPartnerV2AccountSummary","summary":"Roll up order and margin activity across an accessible account subtree","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","format":"date-time"},"in":"query","name":"from","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"to","required":false},{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountSummaryResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Aggregate orders, spend and commercial margin across an accessible Account subtree for the requested interval. This is a reseller operational roll-up, not a statement of end-customer retail revenue."}},"/accounts/{id}/branding":{"patch":{"operationId":"patchPartnerV2AccountBrand","summary":"Override inheritable account brand fields","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountBrandPatchRequest"},"example":{"displayName":"Bangkok Travel eSIM","primaryColor":"#0D9F6E","supportEmail":"support@travel.example","customDomain":"esim.travel.example"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Set or clear brand fields at one Account node; omitted fields remain unchanged and descendants inherit non-overridden values. These fields style free Letisim-managed delivery email, hosted delivery pages and the embedded widget, not the carrier or eSIM profile label shown by a device. Delivery email keeps the verified Letisim From domain and non-removable attribution. A custom domain remains pending until DNS ownership and TLS are verified operationally and does not change the email sender domain."}},"/accounts/{id}/members":{"get":{"operationId":"listPartnerV2AccountMembers","summary":"List human memberships attached to one account root","tags":["Partner API v2"],"description":"List human memberships rooted at one Account. A membership grants portal access to that Account and its descendants, never to ancestors or sibling Accounts.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}},"post":{"operationId":"createPartnerV2AccountMember","summary":"Invite a human into an account-scoped reseller workspace","tags":["Partner API v2"],"description":"Invite a person into an Account-scoped reseller workspace. The normalized email and Account form the natural membership identity, so an identical invitation can be recovered safely.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberCreateRequest"},"example":{"email":"ops@travel.example","displayName":"Operations","role":"support"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/account-members/{id}":{"patch":{"operationId":"patchPartnerV2AccountMember","summary":"Change an account member role or revoke access","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberPatchRequest"},"example":{"role":"finance"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Change a membership role or revoke portal access. Revocation affects human access to the subtree and does not rotate API keys; manage machine credentials separately."}},"/account-members/{id}/resend":{"post":{"operationId":"resendPartnerV2AccountMemberInvite","summary":"Send a fresh invitation for one pending account member","tags":["Partner API v2"],"description":"Refresh one pending invitation and queue exactly one new email. Reuse the same Idempotency-Key after a timeout or double submit; active and revoked memberships fail closed.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountMemberResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/accounts/{id}/price-books":{"get":{"operationId":"listPartnerV2PriceBooks","summary":"List immutable price-book versions for an account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2PriceBookPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List append-only commercial versions for an Account. Historic Quotes retain the exact version and price that were accepted, even after a new price book becomes active."},"post":{"operationId":"createPartnerV2PriceBook","summary":"Create and activate a child price-book version","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2PriceBookCreateRequest"},"example":{"discountPct":15,"reason":"Q4 reseller terms"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2PriceBookResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Append and activate a new Account pricing version; existing transaction snapshots are never rewritten. If the response is unknown, list price books before creating another version."}},"/accounts/{id}/allocations":{"post":{"operationId":"allocatePartnerV2Funds","summary":"Allocate prepaid live funds from a parent to its direct child","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AllocationRequest"},"example":{"amount":{"amountMinor":1000000,"currency":"RUB"}}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AllocationResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AllocationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"402":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Move prepaid Live funds from a parent wallet to its direct child as one immutable allocation. Reuse the same Idempotency-Key and identical body after a timeout; a different payload conflicts."}},"/accounts/{id}/api-keys":{"get":{"operationId":"listPartnerV2AccountKeys","summary":"List secret-free API-key metadata for an account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountKeyPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List secret-free API-key metadata for one accessible Account. Responses never contain the key secret; create and store a replacement before revoking a credential."},"post":{"operationId":"createPartnerV2AccountKey","summary":"Create an account-scoped API key; its secret is returned once","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountKeyCreateRequest"},"example":{"externalRef":"production-orders-1","label":"Production orders","environment":"live","scopes":["catalog:read","quotes:write","orders:read","orders:write"],"rateLimitPerMinute":120}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2AccountKeyCreateResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Create an Account-scoped Test or Live key with explicit scopes and optional network controls. The secret is returned once, so do not retry blindly after an unknown response; list key metadata and rotate if necessary."}},"/accounts/{id}/storefront-apps":{"get":{"operationId":"listPartnerV2StorefrontApps","summary":"List white-label apps configured for an accessible account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List public presentation apps owned by one accessible Account. The collection exposes configuration and publishable keys, never server API-key secrets or active widget-session tokens."},"post":{"operationId":"createPartnerV2StorefrontApp","summary":"Create an idempotent public presentation app for one account","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppCreateRequest"},"example":{"externalRef":"main-web","name":"Main website","environment":"test","allowedOrigins":["https://travel.example"],"countryIsos":["TR","EG"],"defaultLocale":"ru"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Create either a secure embedded widget with an exact origin allowlist or a live hosted storefront with a globally reserved Letisim subdomain. externalRef is the Account-scoped natural idempotency key for safe recovery of an identical request."}},"/storefront-apps/{id}":{"patch":{"operationId":"patchPartnerV2StorefrontApp","summary":"Update or disable a white-label app","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppPatchRequest"},"example":{"allowedOrigins":["https://travel.example","https://m.travel.example"],"defaultLocale":"en"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontAppResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Update presentation, delivery and checkout settings or disable a StorefrontApp. Widget origin checks use exact values; hosted slug changes replace the platform origin and must be treated as a public URL change."}},"/storefront-apps/{id}/domains":{"post":{"operationId":"createPartnerV2StorefrontDomain","summary":"Request self-service DNS verification for an existing storefront hostname","tags":["Partner API v2"],"description":"Attach an existing hostname to a live hosted storefront and receive explicit TXT ownership plus a CNAME target. Creating the request never claims that DNS or TLS is active; keep traffic on the platform URL until ownershipStatus, dnsStatus, tlsStatus and status are active.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontDomainCreateRequest"},"example":{"hostname":"esim.travel.example","source":"external"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontDomainResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontDomainResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/storefront-domains/{id}/verify":{"post":{"operationId":"verifyPartnerV2StorefrontDomain","summary":"Re-check storefront TXT ownership and CNAME records","tags":["Partner API v2"],"description":"Re-read the hostname's public TXT and CNAME records and return authoritative ownership and DNS status. A successful DNS check still remains pending until the hosting provider reports an active TLS certificate.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2StorefrontDomainResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/storefront-apps/{id}/widget-sessions":{"post":{"operationId":"createPartnerV2WidgetSession","summary":"Mint a short-lived origin-bound browser session","tags":["Partner API v2"],"description":"Call from the reseller server to mint a short-lived, origin-bound browser capability rendered with the Account's effective brand. Never expose X-Api-Key in a browser; reuse the same Idempotency-Key and body to recover an unknown response. This resource does not collect end-customer payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2WidgetSessionCreateRequest"},"example":{"origin":"https://travel.example","intent":"issue","externalRef":"booking-42","recipient":{"deliveryMode":"partner","reference":"traveller-42","locale":"ru"},"returnUrl":"https://travel.example/bookings/42","expiresInSeconds":900}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2WidgetSessionResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2WidgetSessionResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/catalog/products":{"get":{"operationId":"listPartnerV2Products","summary":"List package definitions from a pinned catalog release","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":2,"maxLength":2},"in":"query","name":"country","required":false},{"schema":{"type":"string","enum":["fixed","unlimited","no_expiry","daypass"]},"in":"query","name":"packageKind","required":false},{"schema":{"type":"string","enum":["en","ru"],"default":"en"},"in":"query","name":"locale","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"updatedSince","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ProductPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List customer-facing package definitions from a pinned catalog release. Follow nextCursor exactly and restart the normalized query when a cursor expires; do not construct Product ids."}},"/offers":{"get":{"operationId":"listPartnerV2Offers","summary":"List executable account-priced service promises","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":2,"maxLength":2},"in":"query","name":"country","required":false},{"schema":{"type":"string","enum":["fixed","unlimited","no_expiry","daypass"]},"in":"query","name":"packageKind","required":false},{"schema":{"type":"string","enum":["en","ru"],"default":"en"},"in":"query","name":"locale","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"updatedSince","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OfferPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List Offers that are currently sellable for this Account, including exact account price and normalized fulfilment promises. Re-read before quoting because availability and price can change with a catalog release."}},"/offers/{id}":{"get":{"operationId":"getPartnerV2Offer","summary":"Get one current executable offer","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OfferResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read one currently executable Offer and its account-specific price. A previously seen Offer can become unavailable; create a Quote to pin the commercial promise before creating an Order."}},"/quotes":{"post":{"operationId":"createPartnerV2Quote","summary":"Pin an offer and exact account price for 15 minutes","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2QuoteRequest"},"example":{"offerId":"offer_01JXYZ"}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2QuoteResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2QuoteResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Pin one Offer, exact Money, pricing version and public Product/Offer snapshots for 15 minutes. Reuse the same Idempotency-Key and identical body after a timeout; create a new Quote after expiry."}},"/orders":{"get":{"operationId":"listPartnerV2Orders","summary":"List quote-backed orders","tags":["Partner API v2"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OrderPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List Orders owned by the authenticated selling Account using snapshot-stable cursor pagination. Use webhooks for state changes and this collection for reconciliation or recovery, not high-frequency polling."},"post":{"operationId":"createPartnerV2Order","summary":"Create exactly one order from an unexpired quote","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2CreateOrderRequest"},"example":{"quoteId":"quote_01JXYZ","externalRef":"booking-42","deliveryMode":"partner","recipient":{"reference":"traveller-42","locale":"ru"}}}}},"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OrderResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OrderResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"402":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"410":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Consume one unexpired Quote and create exactly one logical purchase. deliveryMode selects who delivers the eSIM. Use partner plus a delivery link or your own UI, or use letisim with recipient.email for free delivery from the verified Letisim domain. Orders created from 2026-09-03T00:00:00Z use the effective Account brand, partner Reply-To, and non-removable Letisim attribution; earlier orders retain the standard Letisim presentation. The fixed service template does not accept arbitrary content or recipient lists. externalRef is the Account-scoped natural idempotency key: after a timeout, replay the identical request or read the existing Order instead of inventing a new reference."}},"/transactions":{"get":{"operationId":"listPartnerV2Transactions","summary":"List immutable account-wallet movements from a snapshot-stable cursor","tags":["Partner API v2"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"accountId","required":false},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"orderId","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"createdFrom","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"createdTo","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2TransactionPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List immutable wallet movements for the authenticated Account from a snapshot-stable cursor. Amounts are Account-facing reconciliation facts; use orderId and accountId filters instead of inferring counterparties."}},"/transactions/export":{"get":{"operationId":"exportPartnerV2Transactions","summary":"Export up to 31 days of account transactions as reconciliation CSV","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","format":"date-time"},"in":"query","name":"from","required":true},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"to","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"orderId","required":false},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"accountId","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"UTF-8 CSV with a fixed reconciliation column order and spreadsheet-formula protection.","content":{"text/csv":{"schema":{"$ref":"#/components/schemas/PartnerV2TransactionExport"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"413":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Download a fixed-column UTF-8 CSV for up to 31 days and 50,000 rows. A larger result fails with export_too_large rather than truncating; split the interval and retry the read safely."}},"/orders/{id}":{"get":{"operationId":"getPartnerV2Order","summary":"Get an immutable quote-backed order snapshot","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2OrderResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read the authoritative immutable commercial snapshot plus current fulfilment, billing and stateRevision. When webhook delivery is uncertain, compare revisions and reconcile from this resource."}},"/recipients":{"get":{"operationId":"listPartnerV2Recipients","summary":"List customer references owned by the current selling account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","maxLength":120},"in":"query","name":"q","required":false},{"schema":{"type":"boolean","default":false},"in":"query","name":"archived","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List customer references owned by the authenticated selling Account. Search and archived filters operate inside the current Test or Live environment; Orders keep their own immutable recipient snapshots."},"post":{"operationId":"createPartnerV2Recipient","summary":"Create or safely replay an account-scoped customer reference","tags":["Partner API v2"],"description":"Create an Account-scoped customer reference. externalRef is the natural idempotency key: replay identical data safely, and use PATCH when the existing record must change.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientCreateRequest"},"example":{"externalRef":"traveller-42","name":"Alex Kim","email":"alex@example.com","locale":"ru"}}}},"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/recipients/{id}":{"get":{"operationId":"getPartnerV2Recipient","summary":"Get one customer reference from the current account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read one customer reference owned by the authenticated Account. The id is environment-scoped and must come from a create or list response."},"patch":{"operationId":"patchPartnerV2Recipient","summary":"Update or archive a customer reference without changing order snapshots","tags":["Partner API v2"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientPatchRequest"},"example":{"email":"alex.new@example.com","locale":"en"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2RecipientResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Update contact fields or archive a customer reference without mutating recipient snapshots stored on existing Orders. Omitted fields remain unchanged."}},"/orders/{id}/delivery-links":{"post":{"operationId":"createPartnerV2DeliveryLink","summary":"Create a short-lived revocable customer installation link","tags":["Partner API v2"],"description":"Create a short-lived revocable installation link for a delivered Order owned by this Account. The hosted page uses the Account's effective display name, logo, primary color and support contacts. The secret URL is returned on creation or identical Idempotency-Key replay; store and expose it only to the intended customer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2DeliveryLinkCreateRequest"},"example":{"expiresInMinutes":120,"maxViews":3}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2DeliveryLinkResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2DeliveryLinkResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/delivery-links/{id}":{"delete":{"operationId":"revokePartnerV2DeliveryLink","summary":"Revoke an installation link owned by the current account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2DeliveryLinkRevocationResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Revoke an installation link owned by the authenticated Account. Revocation is safe to repeat and does not remove or reissue the underlying eSIM profile."}},"/esims":{"get":{"operationId":"listPartnerV2Esims","summary":"List supplier-neutral eSIM inventory with usage freshness","tags":["Partner API v2"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"recipientId","required":false},{"schema":{"type":"string","enum":["issued","delivered","installed","active","depleted","expired","revoked"]},"in":"query","name":"state","required":false},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"query","name":"q","required":false,"description":"Case-insensitive match on ICCID, order reference, recipient reference or recipient email."}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2EsimPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List supplier-neutral eSIM inventory and usage freshness without installation secrets. Use the detail resource only when the intended customer needs installation or recovery assets."}},"/esims/{id}":{"get":{"operationId":"getPartnerV2Esim","summary":"Get one eSIM state projection and its secret installation assets","tags":["Partner API v2"],"description":"Read one Account-scoped eSIM projection, including secret installation assets when available. Do not log, publicly cache or return the LPA/QR payload to anyone except the intended customer.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2EsimDetailResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/esims/{id}/actions":{"get":{"operationId":"getPartnerV2EsimActions","summary":"Discover the current post-sale actions for an issued profile","tags":["Partner API v2"],"description":"Discover the post-sale operations currently available for this exact profile from state, observation freshness, Account policy and executable capabilities. Re-read before presenting or submitting an action.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2EsimActionsResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/esims/{id}/topup-offers":{"get":{"operationId":"listPartnerV2EsimTopupOffers","summary":"List currently executable offers for one issued profile","tags":["Partner API v2"],"description":"List top-up Offers currently executable for this issued profile. Create a Quote with both offerId and esimId inside the freshness window; an empty list is a valid capability result.","parameters":[{"schema":{"type":"string","enum":["en","ru"],"default":"en"},"in":"query","name":"locale","required":false},{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2TopupOfferPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/orders/{id}/cancellations":{"post":{"operationId":"createPartnerV2Cancellation","summary":"Create an idempotent structured post-sale request","tags":["Partner API v2"],"description":"Create a trackable cancellation workflow only after discovery marks cancellation available. This does not synchronously move money or guarantee approval; reuse the same Idempotency-Key and body for recovery.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestInput"},"example":{"externalRef":"cancel-booking-42","reasonCode":"delivery_not_started","reasonDetail":"Customer cancelled before fulfilment"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/orders/{id}/refund-requests":{"post":{"operationId":"createPartnerV2RefundRequest","summary":"Create an idempotent structured post-sale request","tags":["Partner API v2"],"description":"Create a trackable customer-refund workflow independently from upstream commercial recovery. It does not guarantee approval; reuse the same Idempotency-Key and identical body after an unknown response.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestInput"},"example":{"externalRef":"refund-booking-42","reasonCode":"service_defective","reasonDetail":"Customer could not use the issued service"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/orders/{id}/reissue-requests":{"post":{"operationId":"createPartnerV2ReissueRequest","summary":"Create an idempotent structured post-sale request","tags":["Partner API v2"],"description":"Create a trackable reissue review only when exact profile discovery allows it. A request is not an instant replacement or approval; reuse the same Idempotency-Key and body for recovery.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestInput"},"example":{"externalRef":"reissue-booking-42","reasonCode":"installation_failed","reasonDetail":"Installation failed on a compatible device"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1,"maxLength":128},"in":"header","name":"idempotency-key","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}}}},"/action-requests":{"get":{"operationId":"listPartnerV2ActionRequests","summary":"List post-sale requests for the authenticated account","tags":["Partner API v2"],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string","enum":["cancellation","refund","reissue"]},"in":"query","name":"type","required":false},{"schema":{"type":"string","enum":["requested","in_review","completed","rejected"]},"in":"query","name":"status","required":false}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestPage"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"List post-sale workflows owned by the authenticated Account, optionally filtered by order, kind or state. Use stateRevision and webhooks to apply monotonic updates."}},"/action-requests/{id}":{"get":{"operationId":"getPartnerV2ActionRequest","summary":"Get one post-sale request and its monotonic state revision","tags":["Partner API v2"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ActionRequestResponse"}}}},"400":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"401":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"403":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"404":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"409":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"429":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}},"500":{"description":"Canonical Connect error envelope. Log meta.requestId and handle error.code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2ErrorResponse"}}}}},"description":"Read the authoritative state, decision and monotonic revision of one Account-owned post-sale workflow. A pending request is not evidence of approval or a completed money movement."}}},"externalDocs":{"description":"Integration guides and production checklists","url":"https://partner.letisim.com/docs"},"webhooks":{"partnerEvent":{"post":{"operationId":"receivePartnerV2Webhook","summary":"Receive a signed immutable event from Letisim","description":"Outbound callback contract. Verify the timestamp and HMAC against the exact raw request body, deduplicate by event id and compare stateRevision before applying order state.","parameters":[{"in":"header","name":"X-Letisim-Event-Id","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Letisim-Timestamp","required":true,"schema":{"type":"integer"}},{"in":"header","name":"X-Letisim-Signature","required":true,"schema":{"type":"string","pattern":"^v1="}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerV2WebhookEvent"},"example":{"id":"evt_01JXYZ","type":"order.delivered","version":1,"createdAt":"2026-08-17T12:00:00.000Z","environment":"test","data":{"orderId":"order_01JXYZ","externalRef":"booking-42","productId":"product_01JXYZ","resourceUrl":"https://api.letisim.com/partner/api/v2/orders/order_01JXYZ","status":"delivered","billingStatus":"captured","stateRevision":3,"kind":"issue","targetEsimId":null}}}}},"responses":{"200":{"description":"Event accepted or already processed"}}}}},"servers":[{"url":"https://api.letisim.com/partner/api/v2"}]}