{"openapi":"3.1.0","info":{"title":"OpenMerchant Aggregate UCP API","version":"2026-08-25","description":"UCP Catalog, Quotes, Cart, Checkout, Fulfillment, and Order REST binding. Checkout payment accepts one-time Stripe credentials acquired through Link or the hosted card credential provider."},"servers":[{"url":"https://api.sandbox.openmerchant.dev/ucp"}],"tags":[{"name":"Discovery","description":"UCP business profile and signing keys."},{"name":"Catalog","description":"Product search and lookup."},{"name":"Quotes","description":"Binding bookable offers and asynchronous price-on-request quotes consumed by dev.openmerchant.booking."},{"name":"Cart","description":"Pre-purchase cart management."},{"name":"Checkout","description":"Checkout and Stripe SPT completion."},{"name":"Credential Provider","description":"Checkout-scoped hosted card collection."},{"name":"Order","description":"Post-purchase full-order snapshots."}],"paths":{"/.well-known/ucp":{"get":{"operationId":"getUcpBusinessProfile","summary":"UCP business profile","description":"Cacheable discovery document advertising the implemented Catalog and runtime-ready commerce capabilities, payment handler, signing keys, and REST binding.","tags":["Discovery"],"responses":{"200":{"description":"The merchant UCP business profile.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpBusinessProfile"},"example":{"ucp":{"version":"2026-08-25","services":{"dev.ucp.shopping":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/overview","schema":"https://ucp.dev/2026-08-25/services/shopping/rest.openapi.json","transport":"rest","endpoint":"https://api.sandbox.openmerchant.dev/ucp","dev.openmerchant.api_reference":"https://api.sandbox.openmerchant.dev/ucp/openapi.json"}]},"capabilities":{"dev.ucp.shopping.catalog.search":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/catalog/search","schema":"https://ucp.dev/2026-08-25/schemas/shopping/catalog_search.json"}],"dev.ucp.shopping.catalog.lookup":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/catalog/lookup","schema":"https://ucp.dev/2026-08-25/schemas/shopping/catalog_lookup.json"}],"dev.openmerchant.quotes":[{"version":"2026-04-08","spec":"https://openmerchant.dev/ucp/2026-04-08/specification/quotes.md","schema":"https://openmerchant.dev/ucp/2026-04-08/schemas/quotes.json"}],"dev.ucp.shopping.cart":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/cart","schema":"https://ucp.dev/2026-08-25/schemas/shopping/cart.json"}],"dev.ucp.shopping.checkout":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/checkout","schema":"https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"}],"dev.ucp.shopping.fulfillment":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/extensions/fulfillment","schema":"https://ucp.dev/2026-08-25/schemas/shopping/fulfillment.json","extends":"dev.ucp.shopping.checkout"}],"dev.ucp.shopping.order":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/order","schema":"https://ucp.dev/2026-08-25/schemas/shopping/order.json"}],"dev.ucp.common.identity_linking":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/common/identity-linking","schema":"https://ucp.dev/2026-08-25/schemas/common/identity_linking.json","config":{"scopes":{},"dev.openmerchant.authorization_servers":[]}}]},"payment_handlers":{"com.stripe.payments":[{"id":"stripe_payments","version":"2026-06-25","spec":"https://docs.stripe.com/agentic-commerce/ucp/stripe-payments-handler","schema":"https://ucp.stripe.com/payments/2026-06-25/schema.json","available_instruments":[{"type":"link"},{"type":"card","constraints":{"properties":{"brand":{"enum":["visa","mastercard","amex","discover"]}}}}],"config":{"selection":"checkout_response"}}]}},"keys":[{"kid":"r7DG4BPSuzeDeTgIsTkbdYGQPCKemsxknIOA2ibN3Bs","kty":"EC","crv":"P-256","x":"jLPNUhn4bTikJgkV49m4z9uKMfcjM0FBY9zvV6Ug2JQ","y":"GzSIj4ljTqvm4PCBTtfCFLObvuhELRUgAIGtvUY8MPU","alg":"ES256","use":"sig"}]}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/.well-known/ucp/{version}":{"get":{"operationId":"getUcpReleaseBusinessProfile","summary":"UCP business profile at one release","description":"The business profile at one older UCP release, as linked from the current profile's `supported_versions`. It describes the same endpoints and capabilities at that release and never lists other releases.","tags":["Discovery"],"parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"},"description":"UCP release date, `YYYY-MM-DD`."}],"responses":{"200":{"description":"The merchant UCP business profile at that release.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpBusinessProfile"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/openapi.json":{"get":{"operationId":"getUcpOpenApi","summary":"Get this generated UCP implementation contract","tags":["Discovery"],"responses":{"200":{"description":"OpenAPI 3.1 document."},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/catalog/search":{"post":{"operationId":"searchUcpCatalog","summary":"Search the catalog","description":"Free-text, category, and price search over published fixed-price UCP products with cursor pagination.","tags":["Catalog"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogSearchRequest"},"example":{"pagination":{"limit":20}}}}},"responses":{"200":{"description":"Matching products and pagination metadata.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogSearchResponse"},"example":{"messages":[],"pagination":{"cursor":"s1.62580602f9ee2659f9e22f27ae14bc5f.0.2d8fb06735b48bb0387dfd598d56bf01","has_next_page":true},"ucp":{"version":"2026-08-25","status":"success","capabilities":{"dev.ucp.shopping.catalog.search":[{"version":"2026-08-25"}]}},"products":[{"id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","title":"Women's Hormone","url":"https://goodlabs.com/tests/womens-hormone","description":{"plain":"Order the Women's Hormone online with Goodlabs. From $45. Available at Quest Diagnostics, Labcorp, BioReference. Measures 10 biomarkers. Included tests by provider: Quest Diagnostics: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH | Labcorp: DHEA-Sulfate, FSH and LH, Testosterone Free, Profile II, Estradiol, TSH | BioReference: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS). Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH, Estradiol, Ultrasensitive (LC/MS)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":16800,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Women's Hormone"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Women's Hormone"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"},{"id":"pr_agcov_46Y3R3F9F5SGSSCWCNR5JJ644F","label":"Labcorp"},{"id":"pr_agcov_4C0K4R56G89C7R4C8VF0CR3TBE","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26","url":"https://goodlabs.com/tests/womens-hormone","title":"Quest Diagnostics","description":{"plain":"Included tests: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH. Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH."},"price":{"amount":4500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB27","url":"https://goodlabs.com/tests/womens-hormone","title":"Labcorp","description":{"plain":"Included tests: DHEA-Sulfate, FSH and LH, Testosterone Free, Profile II, Estradiol, TSH. Biomarkers: DHEA-S, FSH, LH, SHBG, Albumin, Testosterone (Total), Free Testosterone (Calculated), Estradiol (E2), TSH."},"price":{"amount":15500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_46Y3R3F9F5SGSSCWCNR5JJ644F","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":15500,"currency":"USD"},"max":{"amount":15500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB28","url":"https://goodlabs.com/tests/womens-hormone","title":"BioReference","description":{"plain":"Included tests: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS). Biomarkers: TSH, DHEA-S, FSH, LH, Estradiol, Ultrasensitive (LC/MS), Free Testosterone (Calculated), SHBG, Testosterone (Total)."},"price":{"amount":16800,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_4C0K4R56G89C7R4C8VF0CR3TBE","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":16800,"currency":"USD"},"max":{"amount":16800,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY36MKFW7ZAWJJ58WTA0R","title":"Iron Status","url":"https://goodlabs.com/tests/iron-status","description":{"plain":"Iron problems go both ways. From $60. Available at Quest Diagnostics, Labcorp, BioReference. Measures 28 biomarkers. Included tests by provider: Quest Diagnostics: CBC (includes Differential and Platelets), Ferritin, Iron, Total and Total Iron Binding Capacity, Reticulocyte Count, Automated, Micronutrient, Vitamin B12, Folate, Serum, Transferrin, hs-CRP, Albumin | Labcorp: CBC With Differential/Platelet, Ferritin, Iron and TIBC, Reticulocyte Count, Vitamin B12, Folate (Folic Acid), Serum, Transferrin, C-Reactive Protein, Cardiac, Albumin | BioReference: CBC w/Diff, Platelet Ct., Vitamin B12, Folate (Folic Acid), Iron + TIBC, Ferritin, Reticulocyte Count, C-Reactive Protein (hs-CRP), High Sensitivity, Albumin, Serum. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Reticulocyte Count, Reticulocyte Count (Absolute), Vitamin B12, Folate (Serum), Transferrin, hs-CRP, Albumin, Immature Granulocytes (absolute), Absolute Monocytes, Monocytes (%), Lymphocytes (%), Immature Granulocytes (%), UIBC."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":6000,"currency":"USD"},"max":{"amount":10000,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Iron Status"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Iron Status"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_27MJEXPQ63ZE7NPR1MWEZ8B8S0","label":"Quest Diagnostics"},{"id":"pr_agcov_0BW9QDGEAMH19XDRW61WJE8RY7","label":"Labcorp"},{"id":"pr_agcov_51HBKAE63TT2VV7HRB4FSVF8C1","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY380MDQ3DQ2X5GACR85Z","url":"https://goodlabs.com/tests/iron-status","title":"Quest Diagnostics","description":{"plain":"Included tests: CBC (includes Differential and Platelets), Ferritin, Iron, Total and Total Iron Binding Capacity, Reticulocyte Count, Automated, Micronutrient, Vitamin B12, Folate, Serum, Transferrin, hs-CRP, Albumin. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Reticulocyte Count, Reticulocyte Count (Absolute), Vitamin B12, Folate (Serum), Transferrin, hs-CRP, Albumin."},"price":{"amount":6000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_27MJEXPQ63ZE7NPR1MWEZ8B8S0","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY36YT5P10EX3J5PP350K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":6000,"currency":"USD"},"max":{"amount":6000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY380MDQ3DQ2X5GACR860","url":"https://goodlabs.com/tests/iron-status","title":"Labcorp","description":{"plain":"Included tests: CBC With Differential/Platelet, Ferritin, Iron and TIBC, Reticulocyte Count, Vitamin B12, Folate (Folic Acid), Serum, Transferrin, C-Reactive Protein, Cardiac, Albumin. Biomarkers: Platelet Count, Basophils (%), WBC, Immature Granulocytes (absolute), Neutrophils (%), Absolute Monocytes, Absolute Eosinophils, Eosinophils (%), RDW (RDW-CV), MCV, Absolute Lymphocytes, Absolute Basophils, Absolute Neutrophils, MCH, Red Blood Cell Count, Hematocrit, Monocytes (%), Hemoglobin, Lymphocytes (%), Immature Granulocytes (%), MCHC, Ferritin, UIBC, Transferrin Saturation (TSAT), Serum Iron, TIBC, Reticulocyte Count, Vitamin B12, Folate (Serum), Transferrin, hs-CRP, Albumin."},"price":{"amount":10000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_0BW9QDGEAMH19XDRW61WJE8RY7","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY36YT5P10EX3J5PP350K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":10000,"currency":"USD"},"max":{"amount":10000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY380MDQ3DQ2X5GACR861","url":"https://goodlabs.com/tests/iron-status","title":"BioReference","description":{"plain":"Included tests: CBC w/Diff, Platelet Ct., Vitamin B12, Folate (Folic Acid), Iron + TIBC, Ferritin, Reticulocyte Count, C-Reactive Protein (hs-CRP), High Sensitivity, Albumin, Serum. Biomarkers: Hematocrit, Red Blood Cell Count, Hemoglobin, MCV, MCH, MCHC, RDW (RDW-CV), Neutrophils (%), Absolute Neutrophils, Eosinophils (%), Basophils (%), WBC, MPV, Vitamin B12, Folate (Serum), Serum Iron, Transferrin Saturation (TSAT), TIBC, Ferritin, Reticulocyte Count, hs-CRP, Albumin."},"price":{"amount":10000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_51HBKAE63TT2VV7HRB4FSVF8C1","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY36YT5P10EX3J5PP350K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":10000,"currency":"USD"},"max":{"amount":10000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY36YT5P10EX3J5PP350K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":6000,"currency":"USD"},"max":{"amount":6000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY43STF5XJZA9FHDK5RHC","title":"LDL Cholesterol (Direct)","url":"https://goodlabs.com/tests/ldl-cholesterol-direct","description":{"plain":"Order the LDL Cholesterol (Direct) online with Goodlabs. From $3. Available at Quest Diagnostics, Labcorp, BioReference. Included tests by provider: Quest Diagnostics: Direct LDL | Labcorp: LDL Cholesterol (Direct) | BioReference: LDL Direct. Biomarkers: LDL-Cholesterol."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":300,"currency":"USD"},"max":{"amount":1200,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"LDL Cholesterol (Direct)"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"LDL Cholesterol (Direct)"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_4RMRHZ7J0FT8CCQ3YNZWE4J3JH","label":"Quest Diagnostics"},{"id":"pr_agcov_44Q00M14P27AAG8X7N2VHVX7M9","label":"Labcorp"},{"id":"pr_agcov_689TF8YDTT2JXQHR16ETAEHHFT","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY44YBW908F97S42Y1SD9","url":"https://goodlabs.com/tests/ldl-cholesterol-direct","title":"Quest Diagnostics","description":{"plain":"Included tests: Direct LDL. Biomarkers: LDL-Cholesterol."},"price":{"amount":1000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_4RMRHZ7J0FT8CCQ3YNZWE4J3JH","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY44504T37BDQBQ03SF3E","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":1000,"currency":"USD"},"max":{"amount":1000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY44YBW908F97S42Y1SDA","url":"https://goodlabs.com/tests/ldl-cholesterol-direct","title":"Labcorp","description":{"plain":"Included tests: LDL Cholesterol (Direct). Biomarkers: LDL-Cholesterol."},"price":{"amount":1200,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_44Q00M14P27AAG8X7N2VHVX7M9","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY44504T37BDQBQ03SF3E","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":1200,"currency":"USD"},"max":{"amount":1200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY44YBW908F97S42Y1SDB","url":"https://goodlabs.com/tests/ldl-cholesterol-direct","title":"BioReference","description":{"plain":"Included tests: LDL Direct. Biomarkers: LDL-Cholesterol."},"price":{"amount":300,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_689TF8YDTT2JXQHR16ETAEHHFT","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY44504T37BDQBQ03SF3E","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":300,"currency":"USD"},"max":{"amount":300,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY44504T37BDQBQ03SF3E","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":1000,"currency":"USD"},"max":{"amount":1000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY48RPX48A8BBA79GF1YE","title":"Men's Hormone","url":"https://goodlabs.com/tests/mens-hormone","description":{"plain":"Order the Men's Hormone online with Goodlabs. From $65. Available at Quest Diagnostics, Labcorp, BioReference. Measures 9 biomarkers. Included tests by provider: Quest Diagnostics: DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS | Labcorp: DHEA-Sulfate, Estradiol, Sensitive, FSH and LH, Testosterone, F Eqlib+T LC/MS | BioReference: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS), Prostate Specific Antigen (PSA). Biomarkers: DHEA-S, Estradiol, Ultrasensitive (LC/MS), FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), % Free Testosterone, Free Testosterone (Direct), TSH, PSA (Total)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":6500,"currency":"USD"},"max":{"amount":20000,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Men's Hormone"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Men's Hormone"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_1DQYKSZ6J9BQAHRD807W6JXRZ1","label":"Quest Diagnostics"},{"id":"pr_agcov_7J1YCR3Q6MCKG895YR92EPT89F","label":"Labcorp"},{"id":"pr_agcov_5E9SEQM660N47PYAVMQATWJESM","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY49PKYWJY9HSAA2K35X6","url":"https://goodlabs.com/tests/mens-hormone","title":"Quest Diagnostics","description":{"plain":"Included tests: DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS. Biomarkers: DHEA-S, Estradiol, Ultrasensitive (LC/MS), FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total)."},"price":{"amount":6500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_1DQYKSZ6J9BQAHRD807W6JXRZ1","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4913C285E3TXD6SE3RP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":6500,"currency":"USD"},"max":{"amount":6500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY49PKYWJY9HSAA2K35X7","url":"https://goodlabs.com/tests/mens-hormone","title":"Labcorp","description":{"plain":"Included tests: DHEA-Sulfate, Estradiol, Sensitive, FSH and LH, Testosterone, F Eqlib+T LC/MS. Biomarkers: DHEA-S, Estradiol, Ultrasensitive (LC/MS), FSH, LH, % Free Testosterone, Testosterone (Total), Free Testosterone (Direct)."},"price":{"amount":14000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_7J1YCR3Q6MCKG895YR92EPT89F","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4913C285E3TXD6SE3RP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":14000,"currency":"USD"},"max":{"amount":14000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY49PKYWJY9HSAA2K35X8","url":"https://goodlabs.com/tests/mens-hormone","title":"BioReference","description":{"plain":"Included tests: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS), Prostate Specific Antigen (PSA). Biomarkers: TSH, DHEA-S, FSH, LH, Estradiol, Ultrasensitive (LC/MS), Free Testosterone (Calculated), SHBG, Testosterone (Total), PSA (Total)."},"price":{"amount":20000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_5E9SEQM660N47PYAVMQATWJESM","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4913C285E3TXD6SE3RP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":20000,"currency":"USD"},"max":{"amount":20000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4913C285E3TXD6SE3RP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":6500,"currency":"USD"},"max":{"amount":6500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY48XKT8FWMRF5KGZVTS3","title":"All the tests in \"Superpower\"","url":"https://goodlabs.com/tests/superpower-panel","description":{"plain":"This panel covers the exact tests that Superpower offers in their $200/year membership. From $125. Available at Quest Diagnostics. Measures 71 biomarkers. Included tests by provider: Quest Diagnostics: Urinalysis, Macroscopic, Comprehensive Metabolic Panel, CBC (includes Differential and Platelets), Lipid Panel with Reflex to Direct LDL, Apolipoprotein B, Hemoglobin A1c, Uric Acid, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Ferritin, Cortisol, Total, Iron, Total and Total Iron Binding Capacity, Gamma Glutamyl Transferase (GGT), TSH, T4 (Thyroxine), Total, T3 Uptake, Testosterone, Free, Bioavailable and Total, MS, DHEA Sulfate, Immunoassay, Estradiol. Biomarkers: Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase, Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, ApoB, HbA1c, Uric Acid, Vitamin D (25-OH), hs-CRP, Ferritin, Cortisol (AM Serum), Serum Iron, TIBC, Transferrin Saturation (TSAT), GGT, TSH, T4 Total, T3 Uptake, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), DHEA-S, Estradiol (E2)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"All the tests in \"Superpower\""},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"All the tests in \"Superpower\""}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY49SWSA8WRH5JXWF4A5Z","url":"https://goodlabs.com/tests/superpower-panel","title":"All the tests in \"Superpower\"","description":{"plain":"Included tests: Urinalysis, Macroscopic, Comprehensive Metabolic Panel, CBC (includes Differential and Platelets), Lipid Panel with Reflex to Direct LDL, Apolipoprotein B, Hemoglobin A1c, Uric Acid, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Ferritin, Cortisol, Total, Iron, Total and Total Iron Binding Capacity, Gamma Glutamyl Transferase (GGT), TSH, T4 (Thyroxine), Total, T3 Uptake, Testosterone, Free, Bioavailable and Total, MS, DHEA Sulfate, Immunoassay, Estradiol. Biomarkers: Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase, Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, ApoB, HbA1c, Uric Acid, Vitamin D (25-OH), hs-CRP, Ferritin, Cortisol (AM Serum), Serum Iron, TIBC, Transferrin Saturation (TSAT), GGT, TSH, T4 Total, T3 Uptake, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), DHEA-S, Estradiol (E2)."},"price":{"amount":12500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"All the tests in \"Superpower\""}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4999TX4N4K8ATQG0FMP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4999TX4N4K8ATQG0FMP","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY4EKN3FCAFKZA5EV27TN","title":"Kidneys","url":"https://goodlabs.com/tests/kidneys","description":{"plain":"Order the Kidneys online with Goodlabs. From $38. Available at Quest Diagnostics, Labcorp, BioReference. Measures 17 biomarkers. Included tests by provider: Quest Diagnostics: Renal Function Panel, Cystatin C with Glomerular Filtration Rate, Estimated (eGFR), Albumin, Random Urine with Creatinine | Labcorp: Comp. Metabolic Panel (14), Cystatin C, Albumin/Creatinine Ratio,Urine | BioReference: Comprehensive Metabolic Panel (AMA), Cystatin C, Microalbumin, Urine, Random. Biomarkers: Glucose (Fasting), BUN, Creatinine, eGFR (creatinine), BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Phosphorus, Albumin, Cystatin C, eGFR (cystatin C), Creatinine, Urine, Microalbumin Urine, Albumin/Creatinine Ratio, Urine, AST, ALT, Total Protein, Total Bilirubin, ALP, Globulin, Albumin/Globulin Ratio."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":3800,"currency":"USD"},"max":{"amount":4100,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Kidneys"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Kidneys"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_28CWYDXQHJDQX0WCDQ0HWMAV1Q","label":"Quest Diagnostics"},{"id":"pr_agcov_1KTH2PBM0B18EKF4BHX8JZM47C","label":"Labcorp"},{"id":"pr_agcov_2TD03QC8NPMJ2VCVNFC3R5AVRT","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY4GEYCRF004D6Y211M3Y","url":"https://goodlabs.com/tests/kidneys","title":"Quest Diagnostics","description":{"plain":"Included tests: Renal Function Panel, Cystatin C with Glomerular Filtration Rate, Estimated (eGFR), Albumin, Random Urine with Creatinine. Biomarkers: Glucose (Fasting), BUN, Creatinine, eGFR (creatinine), BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Phosphorus, Albumin, Cystatin C, eGFR (cystatin C), Creatinine, Urine, Microalbumin Urine, Albumin/Creatinine Ratio, Urine."},"price":{"amount":3800,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_28CWYDXQHJDQX0WCDQ0HWMAV1Q","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4F3ZJBGSZ66AKB2BC7A","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":3800,"currency":"USD"},"max":{"amount":3800,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY4GFBC29AK70YTS6N27P","url":"https://goodlabs.com/tests/kidneys","title":"Labcorp","description":{"plain":"Included tests: Comp. Metabolic Panel (14), Cystatin C, Albumin/Creatinine Ratio,Urine. Biomarkers: AST, BUN, ALT, eGFR (creatinine), Creatinine, Total Protein, Calcium (Total), BUN/Creatinine Ratio, Carbon Dioxide, Glucose (Fasting), Potassium, Sodium, Chloride, Total Bilirubin, Albumin, ALP, Globulin, Cystatin C, Creatinine, Urine, Albumin/Creatinine Ratio, Urine."},"price":{"amount":4000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_1KTH2PBM0B18EKF4BHX8JZM47C","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4F3ZJBGSZ66AKB2BC7A","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4000,"currency":"USD"},"max":{"amount":4000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY4GFBC29AK70YTS6N27Q","url":"https://goodlabs.com/tests/kidneys","title":"BioReference","description":{"plain":"Included tests: Comprehensive Metabolic Panel (AMA), Cystatin C, Microalbumin, Urine, Random. Biomarkers: Albumin, Creatinine, Potassium, Total Protein, Sodium, ALP, Chloride, Carbon Dioxide, Globulin, Calcium (Total), Total Bilirubin, AST, BUN, Glucose (Fasting), Albumin/Globulin Ratio, ALT, Cystatin C, Microalbumin Urine, Creatinine, Urine, Albumin/Creatinine Ratio, Urine."},"price":{"amount":4100,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_2TD03QC8NPMJ2VCVNFC3R5AVRT","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4F3ZJBGSZ66AKB2BC7A","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4100,"currency":"USD"},"max":{"amount":4100,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY4F3ZJBGSZ66AKB2BC7A","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":3800,"currency":"USD"},"max":{"amount":3800,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY54BHD16FZZH8YECZBZK","title":"Nutrient","url":"https://goodlabs.com/tests/nutrient","description":{"plain":"Order the Nutrient online with Goodlabs. From $55. Available at Quest Diagnostics, Labcorp, BioReference. Measures 9 biomarkers. Included tests by provider: Quest Diagnostics: Ferritin, Iron, Total and Total Iron Binding Capacity, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, Zinc, Magnesium, RBC | Labcorp: Ferritin, Iron and TIBC, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, Zinc, RBC, Magnesium, RBC | BioReference: Ferritin, Iron + TIBC, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, Zinc, Serum, Magnesium, RBC. Biomarkers: Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (Serum), Magnesium RBC, UIBC, Zinc (RBC)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":13000,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Nutrient"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Nutrient"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_3VABM2QVZM4SFQSM2JCW3NTHPP","label":"Quest Diagnostics"},{"id":"pr_agcov_550R79SS7B9RQ0MM5T7WZ1W77G","label":"Labcorp"},{"id":"pr_agcov_6DTK3KQP81MP56S8NJ8H5T7AHG","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY55J8K7P0DZJWPY800ZR","url":"https://goodlabs.com/tests/nutrient","title":"Quest Diagnostics","description":{"plain":"Included tests: Ferritin, Iron, Total and Total Iron Binding Capacity, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, Zinc, Magnesium, RBC. Biomarkers: Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (Serum), Magnesium RBC."},"price":{"amount":5500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_3VABM2QVZM4SFQSM2JCW3NTHPP","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY54RSRTY4M0EWYWSC30S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":5500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY55J8K7P0DZJWPY800ZS","url":"https://goodlabs.com/tests/nutrient","title":"Labcorp","description":{"plain":"Included tests: Ferritin, Iron and TIBC, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, Zinc, RBC, Magnesium, RBC. Biomarkers: Ferritin, UIBC, Transferrin Saturation (TSAT), Serum Iron, TIBC, Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (RBC), Magnesium RBC."},"price":{"amount":10500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_550R79SS7B9RQ0MM5T7WZ1W77G","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY54RSRTY4M0EWYWSC30S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":10500,"currency":"USD"},"max":{"amount":10500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY55J8K7P0DZJWPY800ZT","url":"https://goodlabs.com/tests/nutrient","title":"BioReference","description":{"plain":"Included tests: Ferritin, Iron + TIBC, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, Zinc, Serum, Magnesium, RBC. Biomarkers: Ferritin, Serum Iron, Transferrin Saturation (TSAT), TIBC, Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (Serum), Magnesium RBC."},"price":{"amount":13000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_6DTK3KQP81MP56S8NJ8H5T7AHG","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY54RSRTY4M0EWYWSC30S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":13000,"currency":"USD"},"max":{"amount":13000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY54RSRTY4M0EWYWSC30S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":5500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY58NKF8Y2SV16EMCDQQ6","title":"Thyroid","url":"https://goodlabs.com/tests/thyroid","description":{"plain":"Order the Thyroid online with Goodlabs. From $55. Available at Quest Diagnostics, Labcorp, BioReference. Measures 6 biomarkers. Included tests by provider: Quest Diagnostics: TSH, T4 Free (FT4), T3, Free, Thyroglobulin Antibodies, Thyroid Peroxidase Antibodies (TPO), T3 Reverse, LC/MS/MS | Labcorp: TSH, Thyroxine (T4) Free, Direct, Triiodothyronine (T3), Free, Thyroglobulin Antibody, Thyroid Peroxidase (TPO) Ab, Reverse T3, Serum | BioReference: Thyroid Stimulating Hormone (TSH), Thyroxine, Free (FT4), T3 Free, Serum, Thyroid Peroxidase (TPO) Antibodies, Reverse Triiodothyronine Serum/Plasma (rT3). Biomarkers: TSH, T4 Free, T3 Free, TgAb, TPOAb, Reverse T3."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":10200,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Thyroid"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Thyroid"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_21GCH734RETF8598D1ABJBKER2","label":"Quest Diagnostics"},{"id":"pr_agcov_6Q5YA4KJ94V5GX155GJPH0GRVD","label":"Labcorp"},{"id":"pr_agcov_1EQ6GKPKQ89S6Y4SVRRYAT9VAV","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY59MHFFYT676HB382XPH","url":"https://goodlabs.com/tests/thyroid","title":"Quest Diagnostics","description":{"plain":"Included tests: TSH, T4 Free (FT4), T3, Free, Thyroglobulin Antibodies, Thyroid Peroxidase Antibodies (TPO), T3 Reverse, LC/MS/MS. Biomarkers: TSH, T4 Free, T3 Free, TgAb, TPOAb, Reverse T3."},"price":{"amount":5500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_21GCH734RETF8598D1ABJBKER2","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY58ZS80SB74TRVMVEPC6","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":5500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY59MHFFYT676HB382XPJ","url":"https://goodlabs.com/tests/thyroid","title":"Labcorp","description":{"plain":"Included tests: TSH, Thyroxine (T4) Free, Direct, Triiodothyronine (T3), Free, Thyroglobulin Antibody, Thyroid Peroxidase (TPO) Ab, Reverse T3, Serum. Biomarkers: TSH, T4 Free, T3 Free, TgAb, TPOAb, Reverse T3."},"price":{"amount":9000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_6Q5YA4KJ94V5GX155GJPH0GRVD","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY58ZS80SB74TRVMVEPC6","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":9000,"currency":"USD"},"max":{"amount":9000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY59MHFFYT676HB382XPK","url":"https://goodlabs.com/tests/thyroid","title":"BioReference","description":{"plain":"Included tests: Thyroid Stimulating Hormone (TSH), Thyroxine, Free (FT4), T3 Free, Serum, Thyroid Peroxidase (TPO) Antibodies, Reverse Triiodothyronine Serum/Plasma (rT3). Biomarkers: TSH, T4 Free, T3 Free, TPOAb, Reverse T3."},"price":{"amount":10200,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_1EQ6GKPKQ89S6Y4SVRRYAT9VAV","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY58ZS80SB74TRVMVEPC6","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":10200,"currency":"USD"},"max":{"amount":10200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY58ZS80SB74TRVMVEPC6","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":5500,"currency":"USD"},"max":{"amount":5500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY5B0H5BHMRZNQE4FX2H2","title":"Comprehensive Women's","url":"https://goodlabs.com/tests/comprehensive-womens","description":{"plain":"Covers all of the bases. From $185. Available at Quest Diagnostics, Labcorp, BioReference. Measures 75 biomarkers. Fasting required. Included tests by provider: Quest Diagnostics: Apolipoprotein B, CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, DHEA Sulfate, Immunoassay, Estradiol, Anti-Mullerian Hormone (AMH), Female, Ferritin, LH, FSH (Follicle Stimulating Hormone), Hemoglobin A1c, Homocysteine, Insulin, Iron, Total and Total Iron Binding Capacity, Lipoprotein (a), Lipid Panel with Reflex to Direct LDL, Testosterone, Free, Bioavailable and Total, MS, TSH, Uric Acid, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Urinalysis, Macroscopic | Labcorp: Apolipoprotein B, CBC With Differential/Platelet, Comp. Metabolic Panel (14), DHEA-Sulfate, Estradiol, Ferritin, FSH and LH, Hemoglobin A1c, Homocyst(e)ine, Insulin, Iron and TIBC, Lipoprotein (a), Lipid Panel, Testosterone Free, Profile II, TSH, Uric Acid, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, C-Reactive Protein, Cardiac, Urinalysis, Routine | BioReference: Apolipoprotein B (Apo B), CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), DHEA Sulfate, Estradiol (E2), Ultrasensitive, LC/MS, Serum, Ferritin, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Hemoglobin A1c (Glycohgb), Homocysteine Level, Insulin, Fasting, Iron + TIBC, Lipoprotein-a (Lp-a), Lipid Screen (Basic Lipid Panel) (AMA), Testosterone, Total/Free (LC/MS), Thyroid Stimulating Hormone (TSH), Uric Acid, Serum, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, C-Reactive Protein (hs-CRP), High Sensitivity, Urinalysis, Routine. Biomarkers: ApoB, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, DHEA-S, Estradiol (E2), AMH, Ferritin, LH, FSH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, TIBC, Transferrin Saturation (TSAT), Lp(a), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase, Immature Granulocytes (absolute), Absolute Monocytes, Monocytes (%), Lymphocytes (%), Immature Granulocytes (%), eGFR (creatinine), UIBC, VLDL-C (Calculated), Urine Urobilinogen, Urinary Microscopic Examination, Estradiol, Ultrasensitive (LC/MS), Urine Crystals, Epithelial Cells (Urine), Hyaline Casts (Urine), Granular Casts (Urine), RBC Casts (Urine), Bacteria (Urine)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":41100,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Comprehensive Women's"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Comprehensive Women's"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_4XQE1DYAG0DNNGN0P590GHZF8E","label":"Quest Diagnostics"},{"id":"pr_agcov_4EYAHTEMQ92XG538TV933M2GEJ","label":"Labcorp"},{"id":"pr_agcov_3Q4C2DDRXE90RFER3S9YKN9Q5R","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY5BRBRJQ6V8AZ3S9KCWC","url":"https://goodlabs.com/tests/comprehensive-womens","title":"Quest Diagnostics","description":{"plain":"Included tests: Apolipoprotein B, CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, DHEA Sulfate, Immunoassay, Estradiol, Anti-Mullerian Hormone (AMH), Female, Ferritin, LH, FSH (Follicle Stimulating Hormone), Hemoglobin A1c, Homocysteine, Insulin, Iron, Total and Total Iron Binding Capacity, Lipoprotein (a), Lipid Panel with Reflex to Direct LDL, Testosterone, Free, Bioavailable and Total, MS, TSH, Uric Acid, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Urinalysis, Macroscopic. Biomarkers: ApoB, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, DHEA-S, Estradiol (E2), AMH, Ferritin, LH, FSH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, TIBC, Transferrin Saturation (TSAT), Lp(a), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase."},"price":{"amount":18500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_4XQE1DYAG0DNNGN0P590GHZF8E","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5B7WESK6TP9XY2W9KGT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":18500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY5BRBRJQ6V8AZ3S9KCWD","url":"https://goodlabs.com/tests/comprehensive-womens","title":"Labcorp","description":{"plain":"Included tests: Apolipoprotein B, CBC With Differential/Platelet, Comp. Metabolic Panel (14), DHEA-Sulfate, Estradiol, Ferritin, FSH and LH, Hemoglobin A1c, Homocyst(e)ine, Insulin, Iron and TIBC, Lipoprotein (a), Lipid Panel, Testosterone Free, Profile II, TSH, Uric Acid, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, C-Reactive Protein, Cardiac, Urinalysis, Routine. Biomarkers: ApoB, Platelet Count, Basophils (%), WBC, Immature Granulocytes (absolute), Neutrophils (%), Absolute Monocytes, Absolute Eosinophils, Eosinophils (%), RDW (RDW-CV), MCV, Absolute Lymphocytes, Absolute Basophils, Absolute Neutrophils, MCH, Red Blood Cell Count, Hematocrit, Monocytes (%), Hemoglobin, Lymphocytes (%), Immature Granulocytes (%), MCHC, AST, BUN, ALT, eGFR (creatinine), Creatinine, Total Protein, Calcium (Total), BUN/Creatinine Ratio, Carbon Dioxide, Glucose (Fasting), Potassium, Sodium, Chloride, Total Bilirubin, Albumin, ALP, Globulin, DHEA-S, Estradiol (E2), Ferritin, FSH, LH, HbA1c, Homocysteine, Insulin (Fasting), UIBC, Transferrin Saturation (TSAT), Serum Iron, TIBC, Lp(a), HDL-Cholesterol, Triglycerides, LDL-Cholesterol, VLDL-C (Calculated), Total Cholesterol, SHBG, Testosterone (Total), Free Testosterone (Calculated), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Nitrite, Urine Blood (Occult), Urine pH, Urine Urobilinogen, Urine Color, Urine Protein, Urine Specific Gravity, Urine Glucose, Urine Ketones, Urine Bilirubin, Urinary Microscopic Examination, Urine Appearance, Urine Leukocyte Esterase."},"price":{"amount":37000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_4EYAHTEMQ92XG538TV933M2GEJ","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5B7WESK6TP9XY2W9KGT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":37000,"currency":"USD"},"max":{"amount":37000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY5BRBRJQ6V8AZ3S9KCWE","url":"https://goodlabs.com/tests/comprehensive-womens","title":"BioReference","description":{"plain":"Included tests: Apolipoprotein B (Apo B), CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), DHEA Sulfate, Estradiol (E2), Ultrasensitive, LC/MS, Serum, Ferritin, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Hemoglobin A1c (Glycohgb), Homocysteine Level, Insulin, Fasting, Iron + TIBC, Lipoprotein-a (Lp-a), Lipid Screen (Basic Lipid Panel) (AMA), Testosterone, Total/Free (LC/MS), Thyroid Stimulating Hormone (TSH), Uric Acid, Serum, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, C-Reactive Protein (hs-CRP), High Sensitivity, Urinalysis, Routine. Biomarkers: ApoB, Hematocrit, Red Blood Cell Count, Hemoglobin, MCV, MCH, MCHC, RDW (RDW-CV), Neutrophils (%), Absolute Neutrophils, Eosinophils (%), Basophils (%), WBC, MPV, Albumin, Creatinine, Potassium, Total Protein, Sodium, ALP, Chloride, Carbon Dioxide, Globulin, Calcium (Total), Total Bilirubin, AST, BUN, Glucose (Fasting), Albumin/Globulin Ratio, ALT, DHEA-S, Estradiol, Ultrasensitive (LC/MS), Ferritin, FSH, LH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, Transferrin Saturation (TSAT), TIBC, Lp(a), Total Cholesterol, Triglycerides, HDL-Cholesterol, Non-HDL Cholesterol, Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Specific Gravity, Urine pH, Urine Protein, Urine Glucose, Urine Ketones, Urine Bilirubin, Urine Blood (Occult), Urine Nitrite, Urine Leukocyte Esterase, Urine Crystals, Epithelial Cells (Urine), Hyaline Casts (Urine), Granular Casts (Urine), RBC Casts (Urine), Bacteria (Urine)."},"price":{"amount":41100,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_3Q4C2DDRXE90RFER3S9YKN9Q5R","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5B7WESK6TP9XY2W9KGT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":41100,"currency":"USD"},"max":{"amount":41100,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5B7WESK6TP9XY2W9KGT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":18500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY5BMQQ28AHG218EJ5PC1","title":"Plant-Based Nutrition","url":"https://goodlabs.com/tests/plant-based-nutrition","description":{"plain":"Order the Plant-Based Nutrition online with Goodlabs. From $185. Available at Quest Diagnostics. Measures 39 biomarkers. Included tests by provider: Quest Diagnostics: Ferritin, Iron, Total and Total Iron Binding Capacity, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, Zinc, Magnesium, RBC, Methylmalonic Acid, Homocysteine, OmegaCheck, Iodine, Serum/Plasma, CBC (includes Differential and Platelets). Biomarkers: Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (Serum), Magnesium RBC, Methylmalonic Acid (MMA), Homocysteine, EPA + DPA + DHA, Arachidonic Acid/EPA Ratio, Omega-6/Omega-3 Ratio, Omega-3 Total, EPA, DPA, DHA, Omega-6 Total, Arachidonic Acid, Linoleic Acid, Iodine, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":18500,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Plant-Based Nutrition"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Plant-Based Nutrition"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY5CBZF5APKDCF6ZAM64S","url":"https://goodlabs.com/tests/plant-based-nutrition","title":"Plant-Based Nutrition","description":{"plain":"Included tests: Ferritin, Iron, Total and Total Iron Binding Capacity, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, Zinc, Magnesium, RBC, Methylmalonic Acid, Homocysteine, OmegaCheck, Iodine, Serum/Plasma, CBC (includes Differential and Platelets). Biomarkers: Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin B12, Folate (Serum), Vitamin D (25-OH), Zinc (Serum), Magnesium RBC, Methylmalonic Acid (MMA), Homocysteine, EPA + DPA + DHA, Arachidonic Acid/EPA Ratio, Omega-6/Omega-3 Ratio, Omega-3 Total, EPA, DPA, DHA, Omega-6 Total, Arachidonic Acid, Linoleic Acid, Iodine, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%)."},"price":{"amount":18500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Plant-Based Nutrition"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5BXW29JWKRTK4QC943Q","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":18500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5BXW29JWKRTK4QC943Q","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18500,"currency":"USD"},"max":{"amount":18500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY5M38ETWPEPNGJZ9X5FF","title":"Small Dense LDL (sdLDL)","url":"https://goodlabs.com/tests/small-dense-ldl","description":{"plain":"Order the Small Dense LDL (sdLDL) online with Goodlabs. From $43. Available at Quest Diagnostics. Included tests by provider: Quest Diagnostics: sdLDL. Biomarkers: Small Dense LDL Cholesterol."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":4300,"currency":"USD"},"max":{"amount":4300,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Small Dense LDL (sdLDL)"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Small Dense LDL (sdLDL)"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY5MN3V225099VZEK85Z9","url":"https://goodlabs.com/tests/small-dense-ldl","title":"Small Dense LDL (sdLDL)","description":{"plain":"Included tests: sdLDL. Biomarkers: Small Dense LDL Cholesterol."},"price":{"amount":4300,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Small Dense LDL (sdLDL)"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5M9CS548ZC8XRGP6FF8","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4300,"currency":"USD"},"max":{"amount":4300,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5M9CS548ZC8XRGP6FF8","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4300,"currency":"USD"},"max":{"amount":4300,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY5SVPHBC1V85EBYJA3SP","title":"STD Screening","url":"https://goodlabs.com/tests/std-screening","description":{"plain":"A comprehensive STD screening panel that covers the most common sexually transmitted infections. From $73. Available at Quest Diagnostics. Included tests by provider: Quest Diagnostics: HIV-1/2 Antigen and Antibodies, Fourth Generation, with Reflexes, RPR (Monitor) with Reflex to Titer, Hepatitis B Surface Antigen with Reflex Confirmation, Hepatitis C Antibody with Reflex to HCV, RNA, Quantitative, Real-Time PCR, Chlamydia/Neisseria gonorrhoeae RNA, TMA, Urogenital. Biomarkers: HIV-1/2 Antigen and Antibodies, RPR (Rapid Plasma Reagin), Hepatitis B Surface Antigen, Hepatitis C Antibody, Chlamydia trachomatis, Neisseria gonorrhoeae."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":7300,"currency":"USD"},"max":{"amount":7300,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"STD Screening"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"STD Screening"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY5TAZ5Q859XSPHMTDC0Y","url":"https://goodlabs.com/tests/std-screening","title":"STD Screening","description":{"plain":"Included tests: HIV-1/2 Antigen and Antibodies, Fourth Generation, with Reflexes, RPR (Monitor) with Reflex to Titer, Hepatitis B Surface Antigen with Reflex Confirmation, Hepatitis C Antibody with Reflex to HCV, RNA, Quantitative, Real-Time PCR, Chlamydia/Neisseria gonorrhoeae RNA, TMA, Urogenital. Biomarkers: HIV-1/2 Antigen and Antibodies, RPR (Rapid Plasma Reagin), Hepatitis B Surface Antigen, Hepatitis C Antibody, Chlamydia trachomatis, Neisseria gonorrhoeae."},"price":{"amount":7300,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"STD Screening"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5T1CSWSQ8N941PB004B","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":7300,"currency":"USD"},"max":{"amount":7300,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY5T1CSWSQ8N941PB004B","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":7300,"currency":"USD"},"max":{"amount":7300,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY63QTJV2H016E99ANPM1","title":"Comprehensive Men's","url":"https://goodlabs.com/tests/comprehensive-mens","description":{"plain":"Covers all of the bases. From $195. Available at Quest Diagnostics, Labcorp, BioReference. Measures 75 biomarkers. Fasting required. Included tests by provider: Quest Diagnostics: Apolipoprotein B, CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, Ferritin, LH, FSH (Follicle Stimulating Hormone), Hemoglobin A1c, Homocysteine, Insulin, Iron, Total and Total Iron Binding Capacity, Lipoprotein (a), Lipid Panel with Reflex to Direct LDL, PSA, Total, Testosterone, Free, Bioavailable and Total, MS, TSH, Uric Acid, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Urinalysis, Macroscopic | Labcorp: Apolipoprotein B, CBC With Differential/Platelet, Comp. Metabolic Panel (14), DHEA-Sulfate, Estradiol, Sensitive, Ferritin, FSH and LH, Hemoglobin A1c, Homocyst(e)ine, Insulin, Iron and TIBC, Lipoprotein (a), Lipid Panel, PSA Total (Reflex To Free), Testosterone, F Eqlib+T LC/MS, TSH, Uric Acid, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, C-Reactive Protein, Cardiac, Urinalysis, Routine | BioReference: Apolipoprotein B (Apo B), CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), DHEA Sulfate, Estradiol (E2), Ultrasensitive, LC/MS, Serum, Ferritin, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Hemoglobin A1c (Glycohgb), Homocysteine Level, Insulin, Fasting, Iron + TIBC, Lipoprotein-a (Lp-a), Lipid Screen (Basic Lipid Panel) (AMA), Testosterone, Total/Free (LC/MS), Thyroid Stimulating Hormone (TSH), Uric Acid, Serum, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, C-Reactive Protein (hs-CRP), High Sensitivity, Urinalysis, Routine, Prostate Specific Antigen (PSA). Biomarkers: ApoB, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, DHEA-S, Estradiol, Ultrasensitive (LC/MS), Ferritin, LH, FSH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, TIBC, Transferrin Saturation (TSAT), Lp(a), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, PSA (Total), Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase, Immature Granulocytes (absolute), Absolute Monocytes, Monocytes (%), Lymphocytes (%), Immature Granulocytes (%), eGFR (creatinine), UIBC, VLDL-C (Calculated), % Free Testosterone, Free Testosterone (Direct), Urine Urobilinogen, Urinary Microscopic Examination, Urine Crystals, Epithelial Cells (Urine), Hyaline Casts (Urine), Granular Casts (Urine), RBC Casts (Urine), Bacteria (Urine)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":19500,"currency":"USD"},"max":{"amount":45000,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Comprehensive Men's"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Comprehensive Men's"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_5QSZJY3G17HJMA4HXJ3H5T327G","label":"Quest Diagnostics"},{"id":"pr_agcov_63G9TGHMY3GCSBJ88S1JQQ1YDW","label":"Labcorp"},{"id":"pr_agcov_25ZSW061H8MR3253PRZY67X6HM","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY64F4WR3YYYY9Q1E756G","url":"https://goodlabs.com/tests/comprehensive-mens","title":"Quest Diagnostics","description":{"plain":"Included tests: Apolipoprotein B, CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, Ferritin, LH, FSH (Follicle Stimulating Hormone), Hemoglobin A1c, Homocysteine, Insulin, Iron, Total and Total Iron Binding Capacity, Lipoprotein (a), Lipid Panel with Reflex to Direct LDL, PSA, Total, Testosterone, Free, Bioavailable and Total, MS, TSH, Uric Acid, Micronutrient, Vitamin B12, Folate, Serum, Vitamin D, 25-Hydroxy, Total, Immunoassay, hs-CRP, Urinalysis, Macroscopic. Biomarkers: ApoB, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, DHEA-S, Estradiol, Ultrasensitive (LC/MS), Ferritin, LH, FSH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, TIBC, Transferrin Saturation (TSAT), Lp(a), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, PSA (Total), Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Appearance, Urine Specific Gravity, Urine pH, Urine Glucose, Urine Bilirubin, Urine Ketones, Urine Blood (Occult), Urine Protein, Urine Nitrite, Urine Leukocyte Esterase."},"price":{"amount":19500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_5QSZJY3G17HJMA4HXJ3H5T327G","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY63Y5R5Y83VH4D8J8YDA","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":19500,"currency":"USD"},"max":{"amount":19500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY64F4WR3YYYY9Q1E756H","url":"https://goodlabs.com/tests/comprehensive-mens","title":"Labcorp","description":{"plain":"Included tests: Apolipoprotein B, CBC With Differential/Platelet, Comp. Metabolic Panel (14), DHEA-Sulfate, Estradiol, Sensitive, Ferritin, FSH and LH, Hemoglobin A1c, Homocyst(e)ine, Insulin, Iron and TIBC, Lipoprotein (a), Lipid Panel, PSA Total (Reflex To Free), Testosterone, F Eqlib+T LC/MS, TSH, Uric Acid, Vitamin B12, Folate (Folic Acid), Serum, Vitamin D, 25-Hydroxy, C-Reactive Protein, Cardiac, Urinalysis, Routine. Biomarkers: ApoB, Platelet Count, Basophils (%), WBC, Immature Granulocytes (absolute), Neutrophils (%), Absolute Monocytes, Absolute Eosinophils, Eosinophils (%), RDW (RDW-CV), MCV, Absolute Lymphocytes, Absolute Basophils, Absolute Neutrophils, MCH, Red Blood Cell Count, Hematocrit, Monocytes (%), Hemoglobin, Lymphocytes (%), Immature Granulocytes (%), MCHC, AST, BUN, ALT, eGFR (creatinine), Creatinine, Total Protein, Calcium (Total), BUN/Creatinine Ratio, Carbon Dioxide, Glucose (Fasting), Potassium, Sodium, Chloride, Total Bilirubin, Albumin, ALP, Globulin, DHEA-S, Estradiol, Ultrasensitive (LC/MS), Ferritin, FSH, LH, HbA1c, Homocysteine, Insulin (Fasting), UIBC, Transferrin Saturation (TSAT), Serum Iron, TIBC, Lp(a), HDL-Cholesterol, Triglycerides, LDL-Cholesterol, VLDL-C (Calculated), Total Cholesterol, PSA (Total), % Free Testosterone, Testosterone (Total), Free Testosterone (Direct), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Nitrite, Urine Blood (Occult), Urine pH, Urine Urobilinogen, Urine Color, Urine Protein, Urine Specific Gravity, Urine Glucose, Urine Ketones, Urine Bilirubin, Urinary Microscopic Examination, Urine Appearance, Urine Leukocyte Esterase."},"price":{"amount":39000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_63G9TGHMY3GCSBJ88S1JQQ1YDW","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY63Y5R5Y83VH4D8J8YDA","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":39000,"currency":"USD"},"max":{"amount":39000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY64F4WR3YYYY9Q1E756J","url":"https://goodlabs.com/tests/comprehensive-mens","title":"BioReference","description":{"plain":"Included tests: Apolipoprotein B (Apo B), CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), DHEA Sulfate, Estradiol (E2), Ultrasensitive, LC/MS, Serum, Ferritin, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Hemoglobin A1c (Glycohgb), Homocysteine Level, Insulin, Fasting, Iron + TIBC, Lipoprotein-a (Lp-a), Lipid Screen (Basic Lipid Panel) (AMA), Testosterone, Total/Free (LC/MS), Thyroid Stimulating Hormone (TSH), Uric Acid, Serum, Vitamin B12, Folate (Folic Acid), Vitamin D, 25-Hydroxy, Serum, C-Reactive Protein (hs-CRP), High Sensitivity, Urinalysis, Routine, Prostate Specific Antigen (PSA). Biomarkers: ApoB, Hematocrit, Red Blood Cell Count, Hemoglobin, MCV, MCH, MCHC, RDW (RDW-CV), Neutrophils (%), Absolute Neutrophils, Eosinophils (%), Basophils (%), WBC, MPV, Albumin, Creatinine, Potassium, Total Protein, Sodium, ALP, Chloride, Carbon Dioxide, Globulin, Calcium (Total), Total Bilirubin, AST, BUN, Glucose (Fasting), Albumin/Globulin Ratio, ALT, DHEA-S, Estradiol, Ultrasensitive (LC/MS), Ferritin, FSH, LH, HbA1c, Homocysteine, Insulin (Fasting), Serum Iron, Transferrin Saturation (TSAT), TIBC, Lp(a), Total Cholesterol, Triglycerides, HDL-Cholesterol, Non-HDL Cholesterol, Free Testosterone (Calculated), SHBG, Testosterone (Total), TSH, Uric Acid, Vitamin B12, Folate (Serum), Vitamin D (25-OH), hs-CRP, Urine Color, Urine Specific Gravity, Urine pH, Urine Protein, Urine Glucose, Urine Ketones, Urine Bilirubin, Urine Blood (Occult), Urine Nitrite, Urine Leukocyte Esterase, Urine Crystals, Epithelial Cells (Urine), Hyaline Casts (Urine), Granular Casts (Urine), RBC Casts (Urine), Bacteria (Urine), PSA (Total)."},"price":{"amount":45000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_25ZSW061H8MR3253PRZY67X6HM","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY63Y5R5Y83VH4D8J8YDA","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":45000,"currency":"USD"},"max":{"amount":45000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY63Y5R5Y83VH4D8J8YDA","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":19500,"currency":"USD"},"max":{"amount":19500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY69C2RFB83WNS50PE55M","title":"Female Athlete Performance Panel","url":"https://goodlabs.com/tests/female-athlete-performance-panel","description":{"plain":"Order the Female Athlete Performance Panel online with Goodlabs. From $180. Available at Quest Diagnostics. Measures 65 biomarkers. Fasting required. Included tests by provider: Quest Diagnostics: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Lipid Panel with Reflex to Direct LDL, Hemoglobin A1c, Insulin, Ferritin, Iron, Total and Total Iron Binding Capacity, Vitamin D, 25-Hydroxy, Total, Immunoassay, Magnesium, RBC, Micronutrient, Vitamin B12, Folate, Serum, TSH, T4 Free (FT4), T3, Free, DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Prolactin, Cortisol, Total, Creatine Kinase (CK), Total, hs-CRP. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, HbA1c, Insulin (Fasting), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin D (25-OH), Magnesium RBC, Vitamin B12, Folate (Serum), TSH, T4 Free, T3 Free, DHEA-S, Estradiol, Ultrasensitive (LC/MS), FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), Prolactin, Cortisol (AM Serum), Creatine Kinase (CK), hs-CRP."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":18000,"currency":"USD"},"max":{"amount":18000,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Female Athlete Performance Panel"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Female Athlete Performance Panel"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY69TNM8Z46J5VVZ44XDE","url":"https://goodlabs.com/tests/female-athlete-performance-panel","title":"Female Athlete Performance Panel","description":{"plain":"Included tests: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Lipid Panel with Reflex to Direct LDL, Hemoglobin A1c, Insulin, Ferritin, Iron, Total and Total Iron Binding Capacity, Vitamin D, 25-Hydroxy, Total, Immunoassay, Magnesium, RBC, Micronutrient, Vitamin B12, Folate, Serum, TSH, T4 Free (FT4), T3, Free, DHEA Sulfate, Immunoassay, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Prolactin, Cortisol, Total, Creatine Kinase (CK), Total, hs-CRP. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, HbA1c, Insulin (Fasting), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Vitamin D (25-OH), Magnesium RBC, Vitamin B12, Folate (Serum), TSH, T4 Free, T3 Free, DHEA-S, Estradiol, Ultrasensitive (LC/MS), FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), SHBG, Testosterone (Total), Prolactin, Cortisol (AM Serum), Creatine Kinase (CK), hs-CRP."},"price":{"amount":18000,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Female Athlete Performance Panel"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY69H8Q12GC8MD31FGCJ9","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18000,"currency":"USD"},"max":{"amount":18000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY69H8Q12GC8MD31FGCJ9","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":18000,"currency":"USD"},"max":{"amount":18000,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY6HM5F7CZ99R1BFF2TZ6","title":"Bodybuilder Panel","url":"https://goodlabs.com/tests/bodybuilder-panel","description":{"plain":"A panel designed for bodybuilders and strength athletes to optimize performance and recovery. From $215. Included tests by provider: Quest Diagnostics: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Testosterone, Free (Dialysis) and Total, MS, Estradiol, Ultrasensitive, LC/MS, Lipid Panel with Reflex to Direct LDL, Vitamin D, 25-Hydroxy, Total, Immunoassay, Apolipoprotein B, Dihydrotestosterone, PSA, Total, Sex Hormone Binding Globulin (SHBG), hs-CRP, Cystatin C with Glomerular Filtration Rate, Estimated (eGFR), IGF-1, LC/MS, Gamma Glutamyl Transferase (GGT), TSH, T3, Free, Prolactin, Hemoglobin A1c, DHEA Sulfate, Immunoassay | Labcorp: CBC With Differential/Platelet, Comp. Metabolic Panel (14), Testosterone, F Eqlib+T LC/MS, Estradiol, Sensitive, Lipid Panel, Vitamin D, 25-Hydroxy, Apolipoprotein B, Dihydrotestosterone, PSA Total (Reflex To Free), Sex Horm Binding Glob, Serum, C-Reactive Protein, Cardiac, Cystatin C, IGF-1 with Z-Score, GGT, TSH, Triiodothyronine (T3), Free, Prolactin, Hemoglobin A1c, DHEA-Sulfate | BioReference: CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), Testosterone, Total/Free (LC/MS), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Lipid Screen (Basic Lipid Panel) (AMA), Vitamin D, 25-Hydroxy, Serum, Apolipoprotein B (Apo B), Dihydrotestosterone, Prostate Specific Antigen (PSA), C-Reactive Protein (hs-CRP), High Sensitivity, Cystatin C, Insulin-Like Growth Factor 1 (IGF-1), GGTP (Gamma-GT), Thyroid Stimulating Hormone (TSH), T3 Free, Serum, Prolactin, Serum, Hemoglobin A1c (Glycohgb), DHEA Sulfate. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Testosterone (Total), Free Testosterone (Direct), Estradiol, Ultrasensitive (LC/MS), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Vitamin D (25-OH), ApoB, Dihydrotestosterone, PSA (Total), SHBG, hs-CRP, Cystatin C, eGFR (cystatin C), IGF-1, IGF-1 Z-Score, GGT, TSH, T3 Free, Prolactin, HbA1c, DHEA-S, Immature Granulocytes (absolute), Absolute Monocytes, Monocytes (%), Lymphocytes (%), Immature Granulocytes (%), eGFR (creatinine), % Free Testosterone, VLDL-C (Calculated), Free Testosterone (Calculated)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":21500,"currency":"USD"},"max":{"amount":42500,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Bodybuilder Panel"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Bodybuilder Panel"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_0W8VQHM069KEKB3TH93AXTXFPY","label":"Quest Diagnostics"},{"id":"pr_agcov_2DE866NB904KYD5DA487YH8993","label":"Labcorp"},{"id":"pr_agcov_04FWSE6J65FRPNN9N129WHGYYC","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY6JARCEDQAG9CKCSAT4Q","url":"https://goodlabs.com/tests/bodybuilder-panel","title":"Quest Diagnostics","description":{"plain":"Included tests: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Testosterone, Free (Dialysis) and Total, MS, Estradiol, Ultrasensitive, LC/MS, Lipid Panel with Reflex to Direct LDL, Vitamin D, 25-Hydroxy, Total, Immunoassay, Apolipoprotein B, Dihydrotestosterone, PSA, Total, Sex Hormone Binding Globulin (SHBG), hs-CRP, Cystatin C with Glomerular Filtration Rate, Estimated (eGFR), IGF-1, LC/MS, Gamma Glutamyl Transferase (GGT), TSH, T3, Free, Prolactin, Hemoglobin A1c, DHEA Sulfate, Immunoassay. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Testosterone (Total), Free Testosterone (Direct), Estradiol, Ultrasensitive (LC/MS), Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Vitamin D (25-OH), ApoB, Dihydrotestosterone, PSA (Total), SHBG, hs-CRP, Cystatin C, eGFR (cystatin C), IGF-1, IGF-1 Z-Score, GGT, TSH, T3 Free, Prolactin, HbA1c, DHEA-S."},"price":{"amount":21500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_0W8VQHM069KEKB3TH93AXTXFPY","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6HVRVRDC9BMM3DEPK9S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":21500,"currency":"USD"},"max":{"amount":21500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY6JARCEDQAG9CKCSAT4R","url":"https://goodlabs.com/tests/bodybuilder-panel","title":"Labcorp","description":{"plain":"Included tests: CBC With Differential/Platelet, Comp. Metabolic Panel (14), Testosterone, F Eqlib+T LC/MS, Estradiol, Sensitive, Lipid Panel, Vitamin D, 25-Hydroxy, Apolipoprotein B, Dihydrotestosterone, PSA Total (Reflex To Free), Sex Horm Binding Glob, Serum, C-Reactive Protein, Cardiac, Cystatin C, IGF-1 with Z-Score, GGT, TSH, Triiodothyronine (T3), Free, Prolactin, Hemoglobin A1c, DHEA-Sulfate. Biomarkers: Platelet Count, Basophils (%), WBC, Immature Granulocytes (absolute), Neutrophils (%), Absolute Monocytes, Absolute Eosinophils, Eosinophils (%), RDW (RDW-CV), MCV, Absolute Lymphocytes, Absolute Basophils, Absolute Neutrophils, MCH, Red Blood Cell Count, Hematocrit, Monocytes (%), Hemoglobin, Lymphocytes (%), Immature Granulocytes (%), MCHC, AST, BUN, ALT, eGFR (creatinine), Creatinine, Total Protein, Calcium (Total), BUN/Creatinine Ratio, Carbon Dioxide, Glucose (Fasting), Potassium, Sodium, Chloride, Total Bilirubin, Albumin, ALP, Globulin, % Free Testosterone, Testosterone (Total), Free Testosterone (Direct), Estradiol, Ultrasensitive (LC/MS), HDL-Cholesterol, Triglycerides, LDL-Cholesterol, VLDL-C (Calculated), Total Cholesterol, Vitamin D (25-OH), ApoB, Dihydrotestosterone, PSA (Total), SHBG, hs-CRP, Cystatin C, IGF-1 Z-Score, IGF-1, GGT, TSH, T3 Free, Prolactin, HbA1c, DHEA-S."},"price":{"amount":37500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Labcorp"}],"options":[{"name":"Provider","id":"pr_agcov_2DE866NB904KYD5DA487YH8993","label":"Labcorp"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6HVRVRDC9BMM3DEPK9S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":37500,"currency":"USD"},"max":{"amount":37500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"pr_agcv_01M2GSY6JARCEDQAG9CKCSAT4S","url":"https://goodlabs.com/tests/bodybuilder-panel","title":"BioReference","description":{"plain":"Included tests: CBC w/Diff, Platelet Ct., Comprehensive Metabolic Panel (AMA), Testosterone, Total/Free (LC/MS), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Lipid Screen (Basic Lipid Panel) (AMA), Vitamin D, 25-Hydroxy, Serum, Apolipoprotein B (Apo B), Dihydrotestosterone, Prostate Specific Antigen (PSA), C-Reactive Protein (hs-CRP), High Sensitivity, Cystatin C, Insulin-Like Growth Factor 1 (IGF-1), GGTP (Gamma-GT), Thyroid Stimulating Hormone (TSH), T3 Free, Serum, Prolactin, Serum, Hemoglobin A1c (Glycohgb), DHEA Sulfate. Biomarkers: Hematocrit, Red Blood Cell Count, Hemoglobin, MCV, MCH, MCHC, RDW (RDW-CV), Neutrophils (%), Absolute Neutrophils, Eosinophils (%), Basophils (%), WBC, MPV, Albumin, Creatinine, Potassium, Total Protein, Sodium, ALP, Chloride, Carbon Dioxide, Globulin, Calcium (Total), Total Bilirubin, AST, BUN, Glucose (Fasting), Albumin/Globulin Ratio, ALT, Free Testosterone (Calculated), SHBG, Testosterone (Total), Estradiol, Ultrasensitive (LC/MS), Total Cholesterol, Triglycerides, HDL-Cholesterol, Non-HDL Cholesterol, Vitamin D (25-OH), ApoB, Dihydrotestosterone, PSA (Total), hs-CRP, Cystatin C, IGF-1, GGT, TSH, T3 Free, Prolactin, HbA1c, DHEA-S."},"price":{"amount":42500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"BioReference"}],"options":[{"name":"Provider","id":"pr_agcov_04FWSE6J65FRPNN9N129WHGYYC","label":"BioReference"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6HVRVRDC9BMM3DEPK9S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":42500,"currency":"USD"},"max":{"amount":42500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6HVRVRDC9BMM3DEPK9S","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":21500,"currency":"USD"},"max":{"amount":21500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY6QP6N2PHCP932J6C7YP","title":"Hepatic Function Panel","url":"https://goodlabs.com/tests/hepatic-function-panel","description":{"plain":"Order the Hepatic Function Panel online with Goodlabs. From $4. Available at Quest Diagnostics. Measures 10 biomarkers. Included tests by provider: Quest Diagnostics: Hepatic Function Panel. Biomarkers: Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, Direct Bilirubin, Indirect Bilirubin, ALP, AST, ALT."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":400,"currency":"USD"},"max":{"amount":400,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Hepatic Function Panel"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Hepatic Function Panel"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY6R4GH4VS9FME74NY5HR","url":"https://goodlabs.com/tests/hepatic-function-panel","title":"Hepatic Function Panel","description":{"plain":"Included tests: Hepatic Function Panel. Biomarkers: Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, Direct Bilirubin, Indirect Bilirubin, ALP, AST, ALT."},"price":{"amount":400,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Hepatic Function Panel"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6QVXX36M06F5CA1K0GT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":400,"currency":"USD"},"max":{"amount":400,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6QVXX36M06F5CA1K0GT","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":400,"currency":"USD"},"max":{"amount":400,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY6Z1CC7NAZH4Y70Q8D5A","title":"Menopause Health","url":"https://goodlabs.com/tests/menopause-health","description":{"plain":"A midlife health baseline for perimenopause and menopause transition. From $125. Available at Quest Diagnostics. Measures 55 biomarkers. Fasting required. Included tests by provider: Quest Diagnostics: Lipid Panel with Reflex to Direct LDL, Apolipoprotein B, Comprehensive Metabolic Panel, Hemoglobin A1c, Insulin, Vitamin D, 25-Hydroxy, Total, Immunoassay, TSH, T4 Free (FT4), CBC (includes Differential and Platelets), Ferritin, Iron, Total and Total Iron Binding Capacity, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, hs-CRP, Sed Rate by Modified Westergren. Biomarkers: Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, ApoB, Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, HbA1c, Insulin (Fasting), Vitamin D (25-OH), TSH, T4 Free, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Estradiol, Ultrasensitive (LC/MS), FSH, LH, hs-CRP, ESR."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Menopause Health"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Menopause Health"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY6ZG7E1FMMFCB70H26FQ","url":"https://goodlabs.com/tests/menopause-health","title":"Menopause Health","description":{"plain":"Included tests: Lipid Panel with Reflex to Direct LDL, Apolipoprotein B, Comprehensive Metabolic Panel, Hemoglobin A1c, Insulin, Vitamin D, 25-Hydroxy, Total, Immunoassay, TSH, T4 Free (FT4), CBC (includes Differential and Platelets), Ferritin, Iron, Total and Total Iron Binding Capacity, Estradiol, Ultrasensitive, LC/MS, FSH (Follicle Stimulating Hormone), LH, hs-CRP, Sed Rate by Modified Westergren. Biomarkers: Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, ApoB, Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, HbA1c, Insulin (Fasting), Vitamin D (25-OH), TSH, T4 Free, WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Ferritin, Serum Iron, TIBC, Transferrin Saturation (TSAT), Estradiol, Ultrasensitive (LC/MS), FSH, LH, hs-CRP, ESR."},"price":{"amount":12500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Menopause Health"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6Z7J5888WHDPB7WH3AG","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY6Z7J5888WHDPB7WH3AG","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":12500,"currency":"USD"},"max":{"amount":12500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY76Q8HHF4Y23VD8E0MMT","title":"Gender-Affirming Care (HRT) Panel","url":"https://goodlabs.com/tests/gender-affirming-hormone","description":{"plain":"Gender-affirming hormone therapy, feminizing or masculinizing, works best when you monitor it. From $92. Available at Quest Diagnostics. Included tests by provider: Quest Diagnostics: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Lipid Panel with Reflex to Direct LDL, Estradiol, Ultrasensitive, LC/MS, Testosterone, Free (Dialysis) and Total, MS, LH, FSH (Follicle Stimulating Hormone), Prolactin, TSH. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Estradiol, Ultrasensitive (LC/MS), Testosterone (Total), Free Testosterone (Direct), LH, FSH, Prolactin, TSH."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":9200,"currency":"USD"},"max":{"amount":9200,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Gender-Affirming Care (HRT) Panel"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Gender-Affirming Care (HRT) Panel"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY777NWBS00RDK2GKTEX4","url":"https://goodlabs.com/tests/gender-affirming-hormone","title":"Gender-Affirming Care (HRT) Panel","description":{"plain":"Included tests: CBC (includes Differential and Platelets), Comprehensive Metabolic Panel, Lipid Panel with Reflex to Direct LDL, Estradiol, Ultrasensitive, LC/MS, Testosterone, Free (Dialysis) and Total, MS, LH, FSH (Follicle Stimulating Hormone), Prolactin, TSH. Biomarkers: WBC, Red Blood Cell Count, Hemoglobin, Hematocrit, MCV, MCH, MCHC, RDW (RDW-CV), Platelet Count, MPV, Absolute Neutrophils, Absolute Lymphocytes, Absolute Eosinophils, Absolute Basophils, Neutrophils (%), Eosinophils (%), Basophils (%), Glucose (Fasting), BUN, Creatinine, BUN/Creatinine Ratio, Sodium, Potassium, Chloride, Carbon Dioxide, Calcium (Total), Total Protein, Albumin, Globulin, Albumin/Globulin Ratio, Total Bilirubin, ALP, AST, ALT, Total Cholesterol, HDL-Cholesterol, Triglycerides, LDL-Cholesterol, Total Cholesterol/HDL Ratio, Non-HDL Cholesterol, Estradiol, Ultrasensitive (LC/MS), Testosterone (Total), Free Testosterone (Direct), LH, FSH, Prolactin, TSH."},"price":{"amount":9200,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Gender-Affirming Care (HRT) Panel"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY76XF379ZA72GK944DMY","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":9200,"currency":"USD"},"max":{"amount":9200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY76XF379ZA72GK944DMY","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":9200,"currency":"USD"},"max":{"amount":9200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY7ESJFF8CSSRK36PG38P","title":"Cardio IQ Vitamin D, 25-Hydroxy","url":"https://goodlabs.com/tests/cardio-iq-vitamin-d-25-hydroxy","description":{"plain":"Order the Cardio IQ Vitamin D, 25-Hydroxy online with Goodlabs. From $26. Available at Quest Diagnostics. Measures 3 biomarkers. Included tests by provider: Quest Diagnostics: Cardio IQ Vitamin D, 25-Hydroxy. Biomarkers: Vitamin D (25-OH), Vitamin D3 (25-OH D3), Vitamin D2 (25-OH D2)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":2600,"currency":"USD"},"max":{"amount":2600,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Cardio IQ Vitamin D, 25-Hydroxy"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Cardio IQ Vitamin D, 25-Hydroxy"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY7F9J8MNTEZF6WZ9X9DG","url":"https://goodlabs.com/tests/cardio-iq-vitamin-d-25-hydroxy","title":"Cardio IQ Vitamin D, 25-Hydroxy","description":{"plain":"Included tests: Cardio IQ Vitamin D, 25-Hydroxy. Biomarkers: Vitamin D (25-OH), Vitamin D3 (25-OH D3), Vitamin D2 (25-OH D2)."},"price":{"amount":2600,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Cardio IQ Vitamin D, 25-Hydroxy"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY7EYZS8QEW06CTDH4MKS","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":2600,"currency":"USD"},"max":{"amount":2600,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY7EYZS8QEW06CTDH4MKS","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":2600,"currency":"USD"},"max":{"amount":2600,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}},{"id":"procura:product:pr_agci_01M2GSY7Z8JADTQGKZZYX2CRS4","title":"Culture, Urine, Routine","url":"https://goodlabs.com/tests/culture-urine-routine","description":{"plain":"Order the Culture, Urine, Routine online with Goodlabs. From $12. Available at Quest Diagnostics. Included tests by provider: Quest Diagnostics: Culture, Urine, Routine. Biomarkers: Urine Culture."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":1200,"currency":"USD"},"max":{"amount":1200,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Culture, Urine, Routine"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Culture, Urine, Routine"}],"options":[],"variants":[{"id":"pr_agcv_01M2GSY7ZTZDVT99KH6B1SDQJR","url":"https://goodlabs.com/tests/culture-urine-routine","title":"Culture, Urine, Routine","description":{"plain":"Included tests: Culture, Urine, Routine. Biomarkers: Urine Culture."},"price":{"amount":1200,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Culture, Urine, Routine"}],"options":[],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY7ZERD7VJWDA7VYPSM3K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":1200,"currency":"USD"},"max":{"amount":1200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY7ZERD7VJWDA7VYPSM3K","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":1200,"currency":"USD"},"max":{"amount":1200,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/catalog/lookup":{"post":{"operationId":"lookupUcpCatalog","summary":"Look up catalog products","description":"Resolve product ids, variant ids, catalog item ids, or SKUs in one request.","tags":["Catalog"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogLookupRequest"},"example":{"ids":["procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A"]}}}},"responses":{"200":{"description":"Resolved products and per-id messages.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogLookupResponse"},"example":{"messages":[],"ucp":{"version":"2026-08-25","status":"success","capabilities":{"dev.ucp.shopping.catalog.lookup":[{"version":"2026-08-25"}]}},"products":[{"id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","title":"Women's Hormone","url":"https://goodlabs.com/tests/womens-hormone","description":{"plain":"Order the Women's Hormone online with Goodlabs. From $45. Available at Quest Diagnostics, Labcorp, BioReference. Measures 10 biomarkers. Included tests by provider: Quest Diagnostics: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH | Labcorp: DHEA-Sulfate, FSH and LH, Testosterone Free, Profile II, Estradiol, TSH | BioReference: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS). Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH, Estradiol, Ultrasensitive (LC/MS)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":16800,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Women's Hormone"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Women's Hormone"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"},{"id":"pr_agcov_46Y3R3F9F5SGSSCWCNR5JJ644F","label":"Labcorp"},{"id":"pr_agcov_4C0K4R56G89C7R4C8VF0CR3TBE","label":"BioReference"}]}],"variants":[{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26","url":"https://goodlabs.com/tests/womens-hormone","title":"Quest Diagnostics","description":{"plain":"Included tests: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH. Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH."},"price":{"amount":4500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]},"inputs":[{"id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","match":"featured"}]}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}]}}}},"400":{"description":"The lookup batch exceeds the supported size.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogErrorResponse"}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/catalog/product":{"post":{"operationId":"getUcpCatalogProduct","summary":"Get product details","description":"Return complete product, variant, option, price, availability, media, attribute, and customization details. Send a dev.openmerchant.booking window to include concrete live availability for the selected variant.","tags":["Catalog"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCatalogGetProductRequest"},"example":{"id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","selected":[],"preferences":[]}}}},"responses":{"200":{"description":"Product detail or an application-level not-found result.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCatalogGetProductResponse"},{"$ref":"#/components/schemas/UcpCatalogErrorResponse"}]},"example":{"messages":[],"ucp":{"version":"2026-08-25","status":"success","capabilities":{"dev.ucp.shopping.catalog.lookup":[{"version":"2026-08-25"}]}},"product":{"id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","title":"Women's Hormone","url":"https://goodlabs.com/tests/womens-hormone","description":{"plain":"Order the Women's Hormone online with Goodlabs. From $45. Available at Quest Diagnostics, Labcorp, BioReference. Measures 10 biomarkers. Included tests by provider: Quest Diagnostics: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH | Labcorp: DHEA-Sulfate, FSH and LH, Testosterone Free, Profile II, Estradiol, TSH | BioReference: Thyroid Stimulating Hormone (TSH), DHEA Sulfate, FSH (Follicle Stimulating Hormone), Luteinizing Hormone (LH), Estradiol (E2), Ultrasensitive, LC/MS, Serum, Testosterone, Total/Free (LC/MS). Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH, Estradiol, Ultrasensitive (LC/MS)."},"categories":[{"value":"Services","taxonomy":"merchant"}],"price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":16800,"currency":"USD"}},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Women's Hormone"},{"type":"image","url":"https://goodlabs.com/test_product_og.jpg","alt_text":"Women's Hormone"}],"options":[{"name":"Provider","values":[{"id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics","available":true,"exists":true},{"id":"pr_agcov_46Y3R3F9F5SGSSCWCNR5JJ644F","label":"Labcorp","available":true,"exists":true},{"id":"pr_agcov_4C0K4R56G89C7R4C8VF0CR3TBE","label":"BioReference","available":true,"exists":true}]}],"selected":[{"name":"Provider","id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"}],"variants":[{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26","url":"https://goodlabs.com/tests/womens-hormone","title":"Quest Diagnostics","description":{"plain":"Included tests: DHEA Sulfate, Immunoassay, FSH (Follicle Stimulating Hormone), LH, Testosterone, Free, Bioavailable and Total, MS, Estradiol, TSH. Biomarkers: DHEA-S, FSH, LH, Testosterone (Bioavailable), Free Testosterone (Calculated), Albumin, SHBG, Testosterone (Total), Estradiol (E2), TSH."},"price":{"amount":4500,"currency":"USD"},"availability":{"available":true,"status":"in_stock"},"media":[{"type":"image","url":"https://goodlabs.com/test_product_default.webp","alt_text":"Quest Diagnostics"}],"options":[{"name":"Provider","id":"pr_agcov_7Z1JGKZSZDKAPV7R9D53H1S0JZ","label":"Quest Diagnostics"}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}],"metadata":{"merchant":{"id":"pr_agm_01M2GSJKXVVR0JJYJNKWRQRPKF","slug":"goodlabs04","display_name":"Goodlabs","profile_url":"https://api.openmerchant.dev/ucp/goodlabs04/test/.well-known/ucp","network_business_profile_id":"profile_test_61V2w6yCPjVd0SqhIA6V2w6x6GSQF0A2pQXNhJQDoUfI"},"market":"us","locale":"en-US","purchasable":true,"item_type":"service","fulfillment_options":[{"type":"service_booking","option_id":"pr_agcf_01M2GSY369W0J5N6QAMYANV60T","services":[]}],"pricing_model":"per_unit","price_unit":"unit","price_range":{"min":{"amount":4500,"currency":"USD"},"max":{"amount":4500,"currency":"USD"}},"price_kind":"unit_price","quote_required":false,"inventory":{},"requirements":{"fulfillment_address":false,"customer_email":true,"customer_phone":false,"customer_name":false,"date_of_birth":false,"scheduling":false,"booking_window":false},"booking_type":"quantity","attributes":{"Categories":"Medical Lab Tests"},"customizations":[]}}}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/quotes":{"post":{"operationId":"createUcpQuote","summary":"Create a quote","description":"Persists the quote, sends one signed quote.requested event to the designated responder, and waits up to ten seconds for authoritative pricing and availability. The response mints a separate signed Quote-Access-Token.","tags":["Quotes"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpQuoteRequest"},"example":{"catalog_item_id":"procura:product:pr_agci_01M2GSY35PZMWMDXT7MYMP1J0A","catalog_variant_id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26","booking":{"type":"scheduled_class","occurrence_id":"occurrence_id","party_size":2},"context":{"address_country":"US","address_region":"NV","postal_code":"89451","language":"en-US","dev.openmerchant.market":"us","eligibility":[{"claim":"com.example.membership","reference":"membership_ref_123"}]}}}}},"responses":{"201":{"description":"Signed newly created UCP resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}},"Location":{"description":"Canonical resource to retrieve or poll.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpQuoteRead"}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"200":{"description":"Recoverable application-level business outcome. Quote pricing uses field_required or eligibility_invalid messages when no binding price can be produced.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"202":{"description":"The responder deadline expired; poll the signed Location resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}},"Location":{"description":"Canonical resource to retrieve or poll.","schema":{"type":"string"}},"Retry-After":{"description":"Suggested polling delay in seconds.","schema":{"type":"integer","example":2}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpQuoteRead"}}}},"502":{"description":"The designated responder returned an invalid or terminal failure.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/quotes/{quote_id}":{"get":{"operationId":"getUcpQuote","summary":"Get a quote","description":"Polls an asynchronous price-on-request quote or retrieves the current binding offers, including their authoritative UCP totals and expiry.","tags":["Quotes"],"parameters":[{"name":"quote_id","in":"path","required":true,"schema":{"type":"string"},"description":"Quote request identifier returned by creation."},{"name":"Quote-Access-Token","in":"header","required":true,"description":"Dedicated opaque token minted at quote creation. A missing or wrong token yields the same not_found business outcome as an unknown quote id.","schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpQuoteRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"202":{"description":"The responder deadline expired; poll the signed Location resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}},"Location":{"description":"Canonical resource to retrieve or poll.","schema":{"type":"string"}},"Retry-After":{"description":"Suggested polling delay in seconds.","schema":{"type":"integer","example":2}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpQuoteRead"}}}},"502":{"description":"The designated responder returned an invalid or terminal failure.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}},"post":{"operationId":"refreshUcpQuote","summary":"Refresh a quote","description":"Re-runs immutable saved inputs in a successor generation, bypasses cache, and preserves old offers as superseded audit records. The request never reserves inventory.","tags":["Quotes"],"parameters":[{"name":"quote_id","in":"path","required":true,"schema":{"type":"string"},"description":"Quote whose expired current offers should be re-resolved from their bound pricing context."},{"name":"Quote-Access-Token","in":"header","required":true,"description":"Dedicated opaque token minted at quote creation. A missing or wrong token yields the same not_found business outcome as an unknown quote id.","schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}},"Location":{"description":"Canonical resource to retrieve or poll.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpQuoteRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"202":{"description":"The responder deadline expired; poll the signed Location resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}},"Quote-Access-Token":{"description":"Opaque quote ownership credential. It is covered by the HTTP Message Signature and is never embedded in the response body.","schema":{"type":"string"}},"Location":{"description":"Canonical resource to retrieve or poll.","schema":{"type":"string"}},"Retry-After":{"description":"Suggested polling delay in seconds.","schema":{"type":"integer","example":2}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpQuoteRead"}}}},"502":{"description":"The designated responder returned an invalid or terminal failure.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/carts":{"post":{"operationId":"createUcpCart","summary":"Create a cart","description":"Line items accept two additive OpenMerchant extensions: `dev.openmerchant.customizations` (normalized customization group/choice selections already published by Catalog) and `dev.openmerchant.booking` (`{\"type\": <quantity or booking family>, \"quote_offer_id\": \"...\"}`). A merchant-priced quantity or bookable listing is added through its quote offer — never by item id alone; offers come from the quote endpoint named in the product metadata's quote_url. Responses mirror the extension back with the resolved booking snapshot, and orders carry the live booking state per line. A client that does not negotiate these extensions sends and receives valid base UCP shapes.","tags":["Cart"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCartRequest"},"example":{"line_items":[{"item":{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26"},"quantity":1}],"buyer":{"email":"buyer@example.com"},"context":{"dev.openmerchant.market":"us"}}}}},"responses":{"201":{"description":"Signed newly created UCP resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCartRead"}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"200":{"description":"Recoverable application-level business outcome. Quote pricing uses field_required or eligibility_invalid messages when no binding price can be produced.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/carts/{cart_id}":{"get":{"operationId":"getUcpCart","summary":"Get a cart","tags":["Cart"],"parameters":[{"name":"cart_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCartRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}},"put":{"operationId":"updateUcpCart","summary":"Replace a cart","description":"Full replacement: include every line and buyer field to retain.\n\nLine items accept two additive OpenMerchant extensions: `dev.openmerchant.customizations` (normalized customization group/choice selections already published by Catalog) and `dev.openmerchant.booking` (`{\"type\": <quantity or booking family>, \"quote_offer_id\": \"...\"}`). A merchant-priced quantity or bookable listing is added through its quote offer — never by item id alone; offers come from the quote endpoint named in the product metadata's quote_url. Responses mirror the extension back with the resolved booking snapshot, and orders carry the live booking state per line. A client that does not negotiate these extensions sends and receives valid base UCP shapes.","tags":["Cart"],"parameters":[{"name":"cart_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCartRequest"},"example":{"line_items":[{"item":{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26"},"quantity":1}],"buyer":{"email":"buyer@example.com"},"context":{"dev.openmerchant.market":"us"}}}}},"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCartRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/carts/{cart_id}/cancel":{"post":{"operationId":"cancelUcpCart","summary":"Cancel a cart","tags":["Cart"],"parameters":[{"name":"cart_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCartRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/checkout-sessions":{"post":{"operationId":"createUcpCheckout","summary":"Create a checkout session","description":"Checkout lines mirror the cart, including the `dev.openmerchant.booking` extension: bookable lines return the resolved booking snapshot, the consumed quote offer id, and the reservation hold's status while the session is open.","tags":["Checkout"],"parameters":[{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCheckoutRequest"},"example":{"line_items":[{"item":{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26"},"quantity":1}],"buyer":{"email":"buyer@example.com"},"context":{"dev.openmerchant.market":"us"},"fulfillment":{"methods":[{"type":"shipping","line_item_ids":[],"destinations":[{"id":"ship_to_home","street_address":"123 Market Street","address_locality":"San Francisco","address_region":"CA","postal_code":"94105","address_country":"US"}],"selected_destination_id":"ship_to_home"}]}}}}},"responses":{"201":{"description":"Signed newly created UCP resource.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCheckoutRead"}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"200":{"description":"Recoverable application-level business outcome. Quote pricing uses field_required or eligibility_invalid messages when no binding price can be produced.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/checkout-sessions/{checkout_id}":{"get":{"operationId":"getUcpCheckout","summary":"Get a checkout session","tags":["Checkout"],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCheckoutRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}},"put":{"operationId":"updateUcpCheckout","summary":"Replace a checkout session","description":"Full replacement: include every line, buyer, and fulfillment field to retain.","tags":["Checkout"],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCheckoutRequest"},"example":{"line_items":[{"item":{"id":"pr_agcv_01M2GSY37Y81F1FCZ60M7VAB26"},"quantity":1}],"buyer":{"email":"buyer@example.com"},"context":{"dev.openmerchant.market":"us"},"fulfillment":{"methods":[{"type":"shipping","line_item_ids":[],"destinations":[{"id":"ship_to_home","street_address":"123 Market Street","address_locality":"San Francisco","address_region":"CA","postal_code":"94105","address_country":"US"}],"selected_destination_id":"ship_to_home"}]}}}}},"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCheckoutRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/checkout-sessions/{checkout_id}/complete":{"post":{"operationId":"completeUcpCheckout","summary":"Complete a checkout with Stripe SPT","description":"Consumes the one-time credential without persisting or echoing it.","tags":["Checkout"],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCheckoutCompleteRequest"},"example":{"payment":{"instruments":[{"id":"buyer_instrument_1","handler_id":"procura_stripe_spt","type":"shared_payment_token","selected":true,"credential":{"type":"shared_payment_token","token":"spt_test_granted_token"}}]}}}}},"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCheckoutRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/checkout-sessions/{checkout_id}/credential_provider_sessions":{"post":{"operationId":"createUcpCredentialProviderSession","summary":"Open a hosted card collection session","description":"Creates a short-lived Basis Theory frame session bound to this checkout, its current total, this seller's Stripe account, and the verified UCP platform. The response keeps the bearer secret separate from the non-secret frame URL; the platform sends it to the frame with postMessage.","tags":["Credential Provider"],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 SHA-256 digest of the exact JSON body.","schema":{"type":"string"}},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCredentialProviderSessionCreateRequest"}}}},"responses":{"201":{"description":"A checkout-scoped hosted card collection session.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpCredentialProviderSessionCreateResponse"}}}},"400":{"description":"The buyer embed origin is invalid.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"409":{"description":"The checkout or card handler is not ready.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The secure credential provider is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/checkout-sessions/{checkout_id}/cancel":{"post":{"operationId":"cancelUcpCheckout","summary":"Cancel a checkout session","tags":["Checkout"],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique mutation key generated with at least 128 bits of entropy.","schema":{"type":"string","minLength":22,"maxLength":255},"example":"550e8400-e29b-41d4-a716-446655440000"},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCheckoutRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}},"/orders/{order_id}":{"get":{"operationId":"getUcpOrder","summary":"Get a full order snapshot","tags":["Order"],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Request-Id","in":"header","required":true,"description":"Caller-generated UUID for distributed request tracing. A new value is required for each UCP request.","schema":{"type":"string","format":"uuid"},"example":"3a09a1db-ddea-4e44-8656-cd8105ce2a66"},{"name":"UCP-Agent","in":"header","required":true,"description":"Identifies the calling UCP agent using an RFC 8941 dictionary.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"profile=\"https://agent.example/.well-known/ucp\""},{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 covered components and ES256 parameters.","schema":{"type":"string"}},{"name":"Signature","in":"header","required":true,"description":"RFC 9421 raw P-256 signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed UCP resource or recoverable business outcome.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpOrderRead"},{"$ref":"#/components/schemas/UcpCommerceErrorResponse"}]}}}},"400":{"description":"Malformed protocol or idempotency headers.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"401":{"description":"The UCP HTTP Message Signature could not be verified.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"402":{"description":"The selected tokenized payment instrument could not be charged.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"404":{"description":"The requested UCP cart, checkout, order, or aggregate item was not found.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"409":{"description":"The idempotency key conflicts with an earlier request.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UcpCommerceErrorResponse"},{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}]}}}},"422":{"description":"The request headers or JSON body failed validation.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"503":{"description":"The caller profile or selected hosted commerce capability is unavailable.","headers":{"Content-Digest":{"description":"RFC 9530 SHA-256 digest of the exact response body.","schema":{"type":"string"}},"Signature-Input":{"description":"RFC 9421 response components and key identifier.","schema":{"type":"string"}},"Signature":{"description":"RFC 9421 raw P-256 response signature.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching policy for this UCP response.","schema":{"type":"string"}},"X-Request-Id":{"description":"OpenMerchant request identifier for distributed tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UcpProtocolErrorResponse"}}}},"429":{"description":"A shared request rate limit was exceeded.","headers":{"Retry-After":{"description":"Seconds until this caller may retry.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Request limit for the exhausted window.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"Length of the exhausted window in seconds.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitExceededResponse"}}}}}}}},"components":{"schemas":{"CardBrand":{"description":"Supported card network brands for profile payment methods.","enum":["visa","mastercard","amex","discover","jcb","diners","unionpay","unknown"],"title":"CardBrand","type":"string"},"UcpAuthorizationServerReference":{"additionalProperties":false,"description":"OpenMerchant discovery links for one merchant-scoped OAuth server.\n\nThe issuer is the hosted customer authorization server, never the upstream\nidentity provider. Explicit metadata links preserve path-based issuers and\ncustom domains without requiring an agent to guess URL conventions.","properties":{"issuer":{"description":"Exact OAuth issuer for the selected merchant.","title":"Issuer","type":"string"},"authorization_server_metadata":{"description":"RFC 8414 metadata URL.","title":"Authorization Server Metadata","type":"string"},"resource_metadata":{"description":"RFC 9728 protected-resource metadata URL.","title":"Resource Metadata","type":"string"},"merchant_profile":{"description":"Canonical UCP profile identifying this merchant.","title":"Merchant Profile","type":"string"}},"required":["issuer","authorization_server_metadata","resource_metadata","merchant_profile"],"title":"UcpAuthorizationServerReference","type":"object"},"UcpBusinessProfileMetadata":{"additionalProperties":false,"description":"The ``ucp`` object in a merchant discovery profile.","properties":{"version":{"$ref":"#/components/schemas/UcpProtocolVersion","description":"UCP protocol release this document conforms to."},"supported_versions":{"anyOf":[{"additionalProperties":{"type":"string"},"propertyNames":{"$ref":"#/components/schemas/UcpProtocolVersion"},"type":"object"},{"type":"null"}],"default":null,"description":"Older UCP releases this merchant also serves, each mapped to its own complete profile. Present only on the current profile; a release-specific profile never carries it.","title":"Supported Versions"},"services":{"additionalProperties":{"items":{"$ref":"#/components/schemas/UcpServiceBinding"},"type":"array"},"description":"Callable services keyed by service name, each listing the transports and endpoints it is reachable on.","propertyNames":{"$ref":"#/components/schemas/UcpServiceName"},"title":"Services","type":"object"},"capabilities":{"additionalProperties":{"items":{"anyOf":[{"$ref":"#/components/schemas/UcpIdentityLinkingDeclaration"},{"$ref":"#/components/schemas/UcpEntityReference"}]},"type":"array"},"description":"Optional protocol capabilities the merchant supports, keyed by capability name. A client negotiates against this before sending an extension.","propertyNames":{"$ref":"#/components/schemas/UcpCapabilityName"},"title":"Capabilities","type":"object"},"payment_handlers":{"additionalProperties":{"items":{"$ref":"#/components/schemas/UcpPaymentHandlerDeclaration"},"type":"array"},"description":"Payment handlers the merchant accepts, keyed by handler name.","propertyNames":{"$ref":"#/components/schemas/UcpPaymentHandlerName"},"title":"Payment Handlers","type":"object"}},"required":["version","services","capabilities"],"title":"UcpBusinessProfileMetadata","type":"object"},"UcpCapabilityName":{"description":"UCP capabilities implemented by the seller surface.","enum":["dev.ucp.shopping.catalog.search","dev.ucp.shopping.catalog.lookup","dev.ucp.shopping.cart","dev.ucp.shopping.checkout","dev.ucp.shopping.fulfillment","dev.ucp.shopping.order","dev.ucp.common.identity_linking","dev.openmerchant.quotes","dev.openmerchant.promotions"],"title":"UcpCapabilityName","type":"string"},"UcpEntityReference":{"additionalProperties":false,"description":"Versioned UCP entity declaration used by profiles and responses.","properties":{"version":{"description":"Version of this entity. UCP capabilities and services state the negotiated protocol release; OpenMerchant extensions state their own version.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Version","type":"string"},"spec":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the specification this entity implements.","title":"Spec"},"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the JSON Schema describing this entity's payloads.","title":"Schema"},"extends":{"anyOf":[{"$ref":"#/components/schemas/UcpCapabilityName"},{"items":{"$ref":"#/components/schemas/UcpCapabilityName"},"type":"array"},{"type":"null"}],"default":null,"description":"Capability, or capabilities, this entity builds on.","title":"Extends"}},"required":["version"],"title":"UcpEntityReference","type":"object"},"UcpIdentityLinkingConfig":{"additionalProperties":false,"description":"Per-scope customer authentication policy advertised in discovery.","properties":{"scopes":{"additionalProperties":{"$ref":"#/components/schemas/UcpIdentityScopePolicy"},"description":"Customer OAuth scopes required by this merchant. An empty mapping advertises optional identity linking.","propertyNames":{"$ref":"#/components/schemas/UcpIdentityScope"},"title":"Scopes","type":"object"},"dev.openmerchant.authorization_servers":{"description":"OpenMerchant extension linking the advertised sellers to their OAuth issuers and metadata. Select the entry for the checkout's merchant; tokens are not interchangeable between sellers. An empty list means no published seller currently advertises customer OAuth.","items":{"$ref":"#/components/schemas/UcpAuthorizationServerReference"},"title":"Dev.Openmerchant.Authorization Servers","type":"array"}},"title":"UcpIdentityLinkingConfig","type":"object"},"UcpIdentityLinkingDeclaration":{"additionalProperties":false,"description":"Typed UCP identity-linking capability declaration.","properties":{"version":{"description":"Version of this entity. UCP capabilities and services state the negotiated protocol release; OpenMerchant extensions state their own version.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Version","type":"string"},"spec":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the specification this entity implements.","title":"Spec"},"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the JSON Schema describing this entity's payloads.","title":"Schema"},"extends":{"anyOf":[{"$ref":"#/components/schemas/UcpCapabilityName"},{"items":{"$ref":"#/components/schemas/UcpCapabilityName"},"type":"array"},{"type":"null"}],"default":null,"description":"Capability, or capabilities, this entity builds on.","title":"Extends"},"config":{"$ref":"#/components/schemas/UcpIdentityLinkingConfig","description":"Customer authentication policy for this merchant."}},"required":["version","config"],"title":"UcpIdentityLinkingDeclaration","type":"object"},"UcpIdentityScope":{"description":"OAuth scopes understood by the UCP identity-linking capability.","enum":["dev.ucp.shopping.checkout:manage","dev.ucp.shopping.order:read","dev.openmerchant.api:invoke"],"title":"UcpIdentityScope","type":"string"},"UcpIdentityScopePolicy":{"description":"Whether a customer scope is required for the advertised merchant.","enum":["required"],"title":"UcpIdentityScopePolicy","type":"string"},"UcpJsonWebKey":{"additionalProperties":false,"description":"Public P-256 key used to verify UCP HTTP Message Signatures.","properties":{"kid":{"description":"Key id quoted in a request's `Signature-Input` header.","title":"Kid","type":"string"},"kty":{"$ref":"#/components/schemas/UcpJwkKeyType","default":"EC","description":"JWK key type."},"crv":{"$ref":"#/components/schemas/UcpJwkCurve","default":"P-256","description":"Elliptic curve the key is on."},"x":{"description":"Base64url X coordinate of the public key.","title":"X","type":"string"},"y":{"description":"Base64url Y coordinate of the public key.","title":"Y","type":"string"},"alg":{"$ref":"#/components/schemas/UcpJwkAlgorithm","default":"ES256","description":"Signature algorithm this key is used with."},"use":{"$ref":"#/components/schemas/UcpJwkUse","default":"sig","description":"What the key may be used for; signing only."}},"required":["kid","x","y"],"title":"UcpJsonWebKey","type":"object"},"UcpJwkAlgorithm":{"description":"JOSE algorithm advertised for the UCP signing key.","enum":["ES256"],"title":"UcpJwkAlgorithm","type":"string"},"UcpJwkCurve":{"description":"Elliptic curve supported by the UCP signature profile.","enum":["P-256"],"title":"UcpJwkCurve","type":"string"},"UcpJwkKeyType":{"description":"JSON Web Key type used for UCP signing.","enum":["EC"],"title":"UcpJwkKeyType","type":"string"},"UcpJwkUse":{"description":"Permitted operation for a published UCP JWK.","enum":["sig"],"title":"UcpJwkUse","type":"string"},"UcpPaymentHandlerDeclaration":{"additionalProperties":false,"description":"Payment handler advertised by a business or checkout response.\n\nDeliberately not a :class:`UcpEntityReference`. Every other declaration\nin a profile is versioned by the UCP protocol, but a payment handler\ncarries its own contract version — Stripe's is dated independently of the\nprotocol release — so sharing the base's protocol-versioned field would\nforce one of the two to be misstated.","properties":{"id":{"$ref":"#/components/schemas/UcpPaymentHandlerId","description":"Identifier of the payment handler being declared."},"version":{"description":"Version of the handler contract this declaration conforms to.","maxLength":64,"minLength":1,"title":"Version","type":"string"},"spec":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the specification this handler implements.","title":"Spec"},"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the JSON Schema describing this handler's config.","title":"Schema"},"available_instruments":{"description":"Instrument types this handler accepts.","items":{"$ref":"#/components/schemas/UcpPublishedInstrument"},"title":"Available Instruments","type":"array"},"config":{"anyOf":[{"$ref":"#/components/schemas/UcpStripePaymentsHandlerConfig"},{"$ref":"#/components/schemas/UcpStripeSptHandlerConfig"},{"$ref":"#/components/schemas/UcpStripeSptDynamicSellerConfig"}],"description":"Handler configuration; its shape follows the advertised namespace. A static config names the settling seller up front; a dynamic one defers that to the checkout response.","title":"Config"}},"required":["id","version","config"],"title":"UcpPaymentHandlerDeclaration","type":"object"},"UcpPaymentHandlerId":{"description":"Stable UCP payment-handler instance ids hosted by OpenMerchant sellers.\n\n``STRIPE_PAYMENTS`` is the id Stripe's handler specification fixes for\nevery business that advertises ``com.stripe.payments``; a completion\nrequest must echo it back in ``instrument.handler_id``.","enum":["stripe_payments","procura_stripe_spt"],"title":"UcpPaymentHandlerId","type":"string"},"UcpPaymentHandlerName":{"description":"Namespaced UCP payment handlers OpenMerchant can execute.\n\n``STRIPE_PAYMENTS`` is Stripe's standard handler\n(https://docs.stripe.com/agentic-commerce/ucp/stripe-payments-handler) and\nis the one to prefer. ``STRIPE_SHARED_PAYMENT_TOKEN`` is the proprietary\nnamespace this platform published before that handler existed; it is\nretained so already-integrated agents keep working while the seller-side\nsurface migrates.","enum":["com.stripe.payments","com.procurapay.api.stripe_spt"],"title":"UcpPaymentHandlerName","type":"string"},"UcpPaymentInstrumentType":{"description":"Payment instrument types advertised and accepted by UCP.\n\n``LINK`` is how Stripe's unified handler carries an agent-acquired Shared\nPayment Token — there is no dedicated SPT instrument in that contract, so\nthe same credential arrives under a different instrument name once a\nseller advertises ``com.stripe.payments``.","enum":["card","link","shared_payment_token"],"title":"UcpPaymentInstrumentType","type":"string"},"UcpProtocolVersion":{"description":"UCP protocol versions implemented by this service.\n\nMembers are declared oldest first. A version's wire shape differs from its\nneighbours, so a member here is only meaningful together with the\nper-version documents in :mod:`app.constants.ucp`, the hosted wire\nprojections in ``public_ucp_commerce.py``, and the buyer checkout adapter\nregistry in ``ucp_discovery_service.py``. Which versions hosted sellers\nadvertise is a deployment setting (``ucp_hosted_advertised_versions``),\nnot membership in this enum.","enum":["2026-04-08","2026-08-25"],"title":"UcpProtocolVersion","type":"string"},"UcpPublishedCardConstraints":{"additionalProperties":false,"description":"Stripe UCP constraints for a card that must be tokenized first.\n\nThe first implemented release left instrument ``constraints`` open, and\nStripe's handler used it for ``brands`` plus ``tokenization``. Later\nreleases close it to a Constraint Expression over the instrument's\nconstraint target, so the same accepted brands render as\n``{\"properties\": {\"brand\": {\"enum\": [...]}}}``; tokenization is implied by\nthe card instrument of ``com.stripe.payments`` and has no slot there.","properties":{"brands":{"description":"Card networks accepted by this payment handler.","examples":[["visa","mastercard"]],"items":{"$ref":"#/components/schemas/CardBrand"},"minItems":1,"title":"Brands","type":"array"},"tokenization":{"$ref":"#/components/schemas/UcpStripeCardTokenizationRequirement","default":"required","description":"Whether the buyer must exchange the card for a checkout-scoped credential before completion."}},"required":["brands"],"title":"UcpPublishedCardConstraints","type":"object"},"UcpPublishedInstrument":{"additionalProperties":false,"description":"One payment instrument category available from a handler.","properties":{"type":{"$ref":"#/components/schemas/UcpPaymentInstrumentType","description":"Instrument type the handler accepts."},"constraints":{"anyOf":[{"$ref":"#/components/schemas/UcpPublishedCardConstraints"},{"type":"null"}],"default":null,"description":"Tokenization constraints for card instruments."}},"required":["type"],"title":"UcpPublishedInstrument","type":"object"},"UcpServiceBinding":{"additionalProperties":false,"description":"One REST binding for the UCP shopping service.\n\n``schema`` remains the authority-bound canonical UCP REST OpenAPI. The\nnamespaced OpenMerchant reference points at the exact implementation\ndocument, including OpenMerchant extensions and runtime operation shapes.","properties":{"version":{"description":"Version of this entity. UCP capabilities and services state the negotiated protocol release; OpenMerchant extensions state their own version.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Version","type":"string"},"spec":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the specification this entity implements.","title":"Spec"},"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the JSON Schema describing this entity's payloads.","title":"Schema"},"extends":{"anyOf":[{"$ref":"#/components/schemas/UcpCapabilityName"},{"items":{"$ref":"#/components/schemas/UcpCapabilityName"},"type":"array"},{"type":"null"}],"default":null,"description":"Capability, or capabilities, this entity builds on.","title":"Extends"},"transport":{"$ref":"#/components/schemas/UcpTransport","description":"How the service is reached — the wire protocol to speak."},"endpoint":{"description":"Absolute URL the service is called at.","examples":["https://api.ucp.openmerchant.dev/coffee-cart/catalog/search"],"title":"Endpoint","type":"string"},"dev.openmerchant.api_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"OpenMerchant extension: the generated OpenAPI document for THIS implementation, including OpenMerchant extensions. `schema` stays the canonical UCP REST contract.","title":"Dev.Openmerchant.Api Reference"}},"required":["version","transport","endpoint"],"title":"UcpServiceBinding","type":"object"},"UcpServiceName":{"description":"UCP services advertised by a merchant.","enum":["dev.ucp.shopping"],"title":"UcpServiceName","type":"string"},"UcpStripeCardTokenizationRequirement":{"description":"Tokenization policies understood for Stripe UCP card instruments.","enum":["required"],"title":"UcpStripeCardTokenizationRequirement","type":"string"},"UcpStripePaymentsEnvironment":{"description":"Stripe environment a business's payments handler is configured for.","enum":["sandbox","production"],"title":"UcpStripePaymentsEnvironment","type":"string"},"UcpStripePaymentsHandlerConfig":{"additionalProperties":true,"description":"Handler-level config a business publishes for ``com.stripe.payments``.\n\nMirrors the required fields in Stripe's specification. ``publishable_key``\nand ``credential_provider`` are only needed for instruments that require a\n``/tokenize`` round trip; a platform completing with a wallet token or a\nShared Payment Token never calls either, so both stay optional here rather\nthan blocking a wallet-only business from parsing.","properties":{"merchant_id":{"description":"The business's Stripe account identifier. Identifies which account a token issued for this checkout can be charged on.","examples":["acct_1234567890"],"maxLength":255,"minLength":1,"title":"Merchant Id","type":"string"},"environment":{"anyOf":[{"$ref":"#/components/schemas/UcpStripePaymentsEnvironment"},{"type":"null"}],"default":null,"description":"Which Stripe environment this declaration is for."},"publishable_key":{"anyOf":[{"maxLength":512,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Stripe publishable key used to initialize the credential provider and authenticate tokenization calls. Public by design; needed only by instruments whose tokenization is required.","examples":["pk_live_abc123"],"title":"Publishable Key"},"credential_provider":{"anyOf":[{"maxLength":2048,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"URL of the secure credential-collection surface used for instruments that require tokenization. Wallet and shared payment token instruments never call it.","examples":["https://stripe.com/credential-provider/v1/"],"title":"Credential Provider"},"network_business_profile":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Extension beyond Stripe's specification. Shared Payment Token issuance is scoped by Network Business Profile id, which cannot be derived from the Stripe account id; publishing it lets a buying platform mint a token without an out-of-band mapping. Absent on businesses that do not offer that path.","examples":["profile_1234567890"],"title":"Network Business Profile"},"external_id":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Extension beyond Stripe's specification. Opaque seller-side correlation id echoed onto the issued token so a charge can be tied back to the checkout that produced it.","examples":["chk_abc123"],"title":"External Id"}},"required":["merchant_id"],"title":"UcpStripePaymentsHandlerConfig","type":"object"},"UcpStripeSptDynamicSellerConfig":{"additionalProperties":false,"description":"Aggregate declaration whose concrete Stripe seller is chosen at checkout.","properties":{"selection":{"$ref":"#/components/schemas/UcpStripeSptSellerSelection","default":"checkout_response","description":"Where the settling seller account is decided. `checkout_response` means the seller is named in the checkout answer rather than fixed at publication."}},"title":"UcpStripeSptDynamicSellerConfig","type":"object"},"UcpStripeSptHandlerConfig":{"additionalProperties":false,"description":"Seller identity required to mint a checkout-scoped Stripe SPT.\n\n``network_id`` is the Stripe Network Business Profile identifier. The\noptional ``external_id`` narrows the credential to this merchant during\ndiscovery and to the concrete checkout in runtime responses.","properties":{"network_id":{"description":"Stripe network identifier the shared payment token is minted for.","maxLength":255,"minLength":1,"title":"Network Id","type":"string"},"external_id":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional buyer-side reference echoed back on the receipt.","title":"External Id"}},"required":["network_id"],"title":"UcpStripeSptHandlerConfig","type":"object"},"UcpStripeSptSellerSelection":{"description":"How an aggregate business profile defers concrete seller selection.","enum":["checkout_response"],"title":"UcpStripeSptSellerSelection","type":"string"},"UcpTransport":{"description":"Transport bindings supported by the UCP service.","enum":["rest"],"title":"UcpTransport","type":"string"},"UcpBusinessProfile":{"additionalProperties":false,"description":"Public UCP business profile served at ``/.well-known/ucp``.\n\nThe signing keys are one list with two wire spellings: the first\nimplemented release publishes them as ``signing_keys``; later releases\npublish the canonical RFC 7517 ``keys`` array and dropped the old name.\nThe profile's own ``ucp.version`` picks the spelling, so a release leaf\nand the current profile each use their release's field.","properties":{"ucp":{"$ref":"#/components/schemas/UcpBusinessProfileMetadata","description":"Protocol metadata: version, services, capabilities, handlers."},"signing_keys":{"description":"Public keys that verify this merchant's RFC-9421 message signatures. Match a request's `keyid` against `kid` here.","items":{"$ref":"#/components/schemas/UcpJsonWebKey"},"title":"Signing Keys","type":"array"}},"required":["ucp"],"title":"UcpBusinessProfile","type":"object"},"CountryCode":{"description":"ISO 3166-1 alpha-2 country code used by profile identity/address records.","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"title":"CountryCode","type":"string"},"CurrencyCode":{"description":"ISO 4217 currency codes accepted by persisted monetary surfaces.","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VED","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"],"title":"CurrencyCode","type":"string"},"JsonValue":{},"UcpCatalogAttribution":{"additionalProperties":{"type":"string"},"description":"URL-style referral values supplied by a UCP platform.","properties":{},"title":"UcpCatalogAttribution","type":"object"},"UcpCatalogContext":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"description":"Provisional, non-authoritative localization and buyer-intent hints.","properties":{"dev.openmerchant.market":{"anyOf":[{"maxLength":32,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"OpenMerchant extension selecting one merchant-defined market. When present, it takes precedence over geographic and currency hints.","examples":["eu"],"title":"Dev.Openmerchant.Market"},"address_country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"default":null,"description":"ISO-3166-1 alpha-2 country the buyer is shopping from. Coarse enough to localize price and tax without identifying anyone."},"address_region":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"State, province, or region the buyer is shopping from.","examples":["OR"],"title":"Address Region"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Postal code used to estimate destination tax and shipping before a full address is known.","examples":["97209"],"title":"Postal Code"},"intent":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-form description of what the buyer is shopping for. Retained for the merchant; never forwarded to inventory pricing.","examples":["Team offsite catering for 40 people"],"title":"Intent"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BCP-47 language tag for buyer-facing copy.","examples":["en-US"],"title":"Language"},"currency":{"anyOf":[{"$ref":"#/components/schemas/CurrencyCode"},{"type":"null"}],"default":null,"description":"ISO-4217 currency the buyer wants to be quoted in. The merchant may decline and answer in its own currency."},"eligibility":{"description":"Provisional, unverified entitlement claims. Advisory only — a benefit that changes the price must arrive as a validated eligibility reference.","examples":[["dev.openmerchant.member"]],"items":{"type":"string"},"title":"Eligibility","type":"array"}},"title":"UcpCatalogContext","type":"object"},"UcpCatalogSignals":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"description":"Platform-observed risk and environment signals for catalog calls.","properties":{"dev.ucp.buyer_ip":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer's originating IP, forwarded for fraud and geo decisions. Never used as a pricing input.","examples":["203.0.113.42"],"title":"Dev.Ucp.Buyer Ip"},"dev.ucp.user_agent":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer's user-agent string, forwarded for fraud decisions.","title":"Dev.Ucp.User Agent"}},"title":"UcpCatalogSignals","type":"object"},"UcpPaginationRequest":{"additionalProperties":false,"description":"Cursor pagination requested by a catalog client.","properties":{"cursor":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor from a previous response's pagination block. Omit for the first page.","title":"Cursor"},"limit":{"default":10,"description":"How many products to return in this page.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"UcpPaginationRequest","type":"object"},"UcpPriceFilter":{"additionalProperties":false,"description":"Optional catalog price bounds in minor currency units.","properties":{"min":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Lowest acceptable price, in minor units.","title":"Min"},"max":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Highest acceptable price, in minor units.","title":"Max"}},"title":"UcpPriceFilter","type":"object"},"UcpSearchFilters":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"description":"Standard UCP catalog filters plus accepted extension fields.","properties":{"categories":{"description":"Restrict results to these merchant categories.","examples":[["espresso"]],"items":{"type":"string"},"title":"Categories","type":"array"},"price":{"anyOf":[{"$ref":"#/components/schemas/UcpPriceFilter"},{"type":"null"}],"default":null,"description":"Restrict results to a price band."}},"title":"UcpSearchFilters","type":"object"},"UcpCatalogSearchRequest":{"additionalProperties":false,"description":"Request body for ``POST /catalog/search``.","properties":{"query":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search over the merchant's catalog.","examples":["oat milk latte"],"title":"Query"},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogContext"},{"type":"null"}],"default":null,"description":"Provisional localization hints — country, region, language, currency."},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Non-identifying request signals forwarded for fraud and routing decisions."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Free-form attribution key/values recorded with the request."},"filters":{"anyOf":[{"$ref":"#/components/schemas/UcpSearchFilters"},{"type":"null"}],"default":null,"description":"Restrict results by category or price band."},"pagination":{"anyOf":[{"$ref":"#/components/schemas/UcpPaginationRequest"},{"type":"null"}],"default":null,"description":"Page size and cursor; omit for the first page of ten."}},"title":"UcpCatalogSearchRequest","type":"object"},"AgenticCatalogPriceKind":{"description":"How a public catalog amount should be interpreted by a buyer.\n\nCatalog amounts are discovery-time prices, not an order total.  A\n``booking_rate`` must be resolved through a quote for an exact booking,\nwhile ``price_on_request`` has no public amount until a merchant answers.","enum":["unit_price","booking_rate","price_on_request"],"title":"AgenticCatalogPriceKind","type":"string"},"AgenticCustomizationPricingBasis":{"description":"How a customization price delta contributes to an order line.","enum":["per_item","per_pricing_unit","flat_per_line"],"title":"AgenticCustomizationPricingBasis","type":"string"},"AgenticCustomizationSelectionMode":{"description":"How a buyer may select choices in one customization group.","enum":["single","multiple","quantity"],"title":"AgenticCustomizationSelectionMode","type":"string"},"AgenticFulfillmentType":{"description":"How a purchased catalog item is fulfilled to the buyer.\n\n``DELIVERY`` is local/courier delivery; ``SHIP`` is carrier parcel\nshipment (and forces ``requires_fulfillment_address`` on the listing).","enum":["delivery","pickup","digital","service_booking","ship"],"title":"AgenticFulfillmentType","type":"string"},"AgenticPriceUnit":{"description":"Unit named beside a catalog rate on public and admin APIs.\n\nInterval calendars are currently keyed by property-local dates, so their\nsupported interval unit is ``DAY``. Seller-facing travel UI may call that\ninterval a night, while the protocol continues to expose the neutral day\nunit.","enum":["unit","day","person","hour"],"title":"AgenticPriceUnit","type":"string"},"AgenticPricingModel":{"description":"How a listing's order total is computed from its rate.\n\n``unit_amount`` is the integer-minor-unit RATE; the line total is\n``rate × unit_count × quantity`` where ``unit_count`` derives from the\norder's captured booking window / party size:\n\n- ``PER_UNIT`` — unit_count = 1 (the shipped default behavior).\n- ``PER_INTERVAL`` — unit_count = whole day intervals in the half-open\n  booking window (booking_end date − booking_start date); requires at\n  least one interval. Travel UI presents a day interval as a night.\n- ``PER_PERSON`` — unit_count = the order's ``party_size``.\n- ``PER_HOUR`` — unit_count = the appointment booking's\n  ``duration_minutes`` expressed in whole-and-fractional hours; the line\n  base amount is ``rate × duration_minutes / 60`` rounded half-up once.\n- ``QUOTED`` — no fixed rate (``unit_amount`` is absent); a merchant\n  responder returns authoritative offers and the buyer purchases one by\n  passing its ``quote_offer_id`` on an order line.","enum":["per_unit","per_interval","per_person","per_hour","quoted"],"title":"AgenticPricingModel","type":"string"},"AppointmentAvailabilityRead":{"description":"Open appointment starts for one variant over a bounded window.","properties":{"type":{"const":"appointment","default":"appointment","description":"Discriminator selecting the appointment answer shape.","title":"Type","type":"string"},"variant_id":{"description":"Variant these starts belong to.","examples":["om_agcv_4c1a"],"title":"Variant Id","type":"string"},"timezone":{"description":"IANA timezone every instant below is anchored to.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"duration_minutes":{"description":"Appointment length the starts were enumerated for.","title":"Duration Minutes","type":"integer"},"slots":{"description":"Open starts, in chronological order. Empty means nothing is open.","items":{"$ref":"#/components/schemas/AppointmentSlotRead"},"title":"Slots","type":"array"},"truncated":{"default":false,"description":"True when enumeration stopped at the option cap before covering the full requested window; window.date_until is narrowed to the last fully-enumerated day — re-query from there.","title":"Truncated","type":"boolean"},"window":{"$ref":"#/components/schemas/DayWindowRead","description":"The day window this answer actually covers."}},"required":["variant_id","timezone","duration_minutes","window"],"title":"AppointmentAvailabilityRead","type":"object"},"AppointmentSlotRead":{"description":"One open appointment start.","properties":{"starts_at":{"description":"Timezone-aware instant the appointment would begin.","examples":["2026-09-01T15:00:00Z"],"format":"date-time","title":"Starts At","type":"string"},"ends_at":{"description":"Timezone-aware instant the appointment would end.","examples":["2026-09-01T16:00:00Z"],"format":"date-time","title":"Ends At","type":"string"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Set only when the buyer filtered to one named resource.","title":"Resource Id"},"resource_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing name of that resource (a stylist, a room, a bay).","examples":["Chair 2"],"title":"Resource Name"}},"required":["starts_at","ends_at"],"title":"AppointmentSlotRead","type":"object"},"BookingType":{"description":"Commercial discriminator for one cart / checkout / order line.\n\nA line is *bookable* whenever this is not :attr:`QUANTITY`. The type\ndecides which booking_snapshot branch the line carries, which supply the offer\nis priced against, and whether a booking hold is required before\npayment. It deliberately lives on the line — one order may mix a\nshipped product with a class reservation.","enum":["quantity","appointment","scheduled_class","stay"],"title":"BookingType","type":"string"},"CatalogFxRead":{"additionalProperties":false,"description":"Buyer-presentment FX metadata; absent for native market currency.","properties":{"exchange_rate":{"anyOf":[{"exclusiveMinimum":0.0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","type":"string"}],"description":"Fee-inclusive native-to-presentment exchange rate.","title":"Exchange Rate"},"native_currency":{"$ref":"#/components/schemas/CurrencyCode","description":"Binding currency of the resolved merchant market."}},"required":["exchange_rate","native_currency"],"title":"CatalogFxRead","type":"object"},"CatalogPromotionRead":{"description":"A running seller promotion advertised beside a catalog price.\n\nAn advertisement, not an offer. ``from_unit_amount`` is the price at the\npromotion's *shallowest* arm, the one every buyer is eligible for; the arm\na buyer is actually drawn, its deadline, and whether it is reserved appear\nonly on the quote offer, checkout, or order that holds the claim. Nothing\nhere says how many redemptions remain, and the campaign id is not\npublished — buyers hold a claim, not a sale.","properties":{"title":{"description":"Name the seller gave the promotion.","title":"Title","type":"string"},"headline":{"description":"Plain description of the least a buyer gets, such as \"from 10% off\".","title":"Headline","type":"string"},"from_unit_amount":{"description":"Unit price at the promotion's shallowest arm, in minor units of `currency`. `unit_amount` stays the regular price.","minimum":0,"title":"From Unit Amount","type":"integer"},"ends_at":{"description":"When the promotion stops making new offers.","format":"date-time","title":"Ends At","type":"string"},"max_discount_amount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Most the promotion takes off one order, in the market's currency.","title":"Max Discount Amount"}},"required":["title","headline","from_unit_amount","ends_at"],"title":"CatalogPromotionRead","type":"object"},"CatalogResponseAnalytics":{"additionalProperties":false,"description":"Fresh per-response token used to link discovery to commerce analytics.","properties":{"openmerchant_attribution_id":{"description":"OpenMerchant discovery token to pass into later commerce analytics.","examples":["om_attr_01J8S3Q8AZ2A7P4H3K5M6N7R8T"],"maxLength":64,"minLength":1,"title":"Openmerchant Attribution Id","type":"string"}},"required":["openmerchant_attribution_id"],"title":"CatalogResponseAnalytics","type":"object"},"ClassOccurrenceRead":{"description":"One dated class session and its remaining capacity.","properties":{"occurrence_id":{"description":"Identifier to book this specific session with.","examples":["om_agco_7f21"],"title":"Occurrence Id","type":"string"},"starts_at":{"description":"Timezone-aware instant the session begins.","examples":["2026-09-01T18:00:00Z"],"format":"date-time","title":"Starts At","type":"string"},"ends_at":{"description":"Timezone-aware instant the session ends.","examples":["2026-09-01T19:00:00Z"],"format":"date-time","title":"Ends At","type":"string"},"seats_remaining":{"description":"Seats still bookable. Zero means sold out, not unavailable.","minimum":0,"title":"Seats Remaining","type":"integer"},"capacity":{"description":"Total seats the session holds.","minimum":0,"title":"Capacity","type":"integer"}},"required":["occurrence_id","starts_at","ends_at","seats_remaining","capacity"],"title":"ClassOccurrenceRead","type":"object"},"DayWindowRead":{"description":"Echo of the day window an answer covers.","properties":{"date_from":{"description":"First day the answer covers.","examples":["2026-09-01"],"format":"date","title":"Date From","type":"string"},"date_until":{"description":"Last day the answer covers. Narrower than the request when enumeration was truncated — re-query from here.","examples":["2026-09-07"],"format":"date","title":"Date Until","type":"string"}},"required":["date_from","date_until"],"title":"DayWindowRead","type":"object"},"DurationRule":{"additionalProperties":false,"description":"Allowed appointment durations as a bounded, stepped range.\n\n``min_minutes == max_minutes`` expresses a fixed-length service (a\n60-minute massage); a wider range with a step expresses a variable one\n(cleanings in whole-hour increments).","properties":{"min_minutes":{"description":"Shortest bookable duration.","maximum":10080,"minimum":1,"title":"Min Minutes","type":"integer"},"max_minutes":{"description":"Longest bookable duration. Must be reachable from `min_minutes` in whole `step_minutes` increments.","maximum":10080,"minimum":1,"title":"Max Minutes","type":"integer"},"step_minutes":{"default":15,"description":"Increment between allowed durations.","maximum":1440,"minimum":1,"title":"Step Minutes","type":"integer"}},"required":["min_minutes","max_minutes"],"title":"DurationRule","type":"object"},"LocaleCode":{"description":"BCP 47 locale tags accepted by profile localization preferences.","enum":["ar-AE","ar-SA","cs-CZ","da-DK","de-AT","de-CH","de-DE","el-GR","en-AU","en-CA","en-GB","en-HK","en-IE","en-IN","en-NZ","en-SG","en-US","en-ZA","es-AR","es-CL","es-CO","es-ES","es-MX","es-PE","fi-FI","fr-BE","fr-CA","fr-CH","fr-FR","he-IL","hu-HU","id-ID","it-CH","it-IT","ja-JP","ko-KR","ms-MY","nb-NO","nl-BE","nl-NL","pl-PL","pt-BR","pt-PT","ro-RO","sv-SE","th-TH","tr-TR","vi-VN","zh-CN","zh-HK","zh-TW"],"title":"LocaleCode","type":"string"},"PartySizeRule":{"additionalProperties":false,"description":"Inclusive bounds on how many people one line may cover.","properties":{"min":{"default":1,"description":"Fewest people one line may cover.","maximum":1000,"minimum":1,"title":"Min","type":"integer"},"max":{"default":1,"description":"Most people one line may cover.","maximum":1000,"minimum":1,"title":"Max","type":"integer"}},"title":"PartySizeRule","type":"object"},"PublicAppointmentBookingRead":{"description":"Buyer-visible appointment bounds; internal resources stay private.","properties":{"type":{"const":"appointment","default":"appointment","description":"Discriminator marking an appointment-bookable variant.","title":"Type","type":"string"},"timezone":{"description":"IANA timezone the merchant authored this schedule in; every wall-clock rule above is evaluated in it.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"duration":{"$ref":"#/components/schemas/DurationRule","description":"Durations this variant can be booked for."},"party_size":{"$ref":"#/components/schemas/PartySizeRule","description":"How many people one booking may cover."},"lead_time_minutes":{"description":"Minimum notice before a start becomes bookable.","title":"Lead Time Minutes","type":"integer"},"horizon_days":{"description":"How far ahead the calendar is open.","title":"Horizon Days","type":"integer"},"resources":{"description":"Nameable resources a buyer may pin; empty when unnamed.","items":{"$ref":"#/components/schemas/ResourceRule"},"title":"Resources","type":"array"}},"required":["timezone","duration","party_size","lead_time_minutes","horizon_days"],"title":"PublicAppointmentBookingRead","type":"object"},"PublicCatalogItemType":{"description":"Catalog item categories manageable through the public v1 API.","enum":["product","service","travel_booking"],"title":"PublicCatalogItemType","type":"string"},"PublicCatalogRequirementsRead":{"description":"Complete buyer information requirements returned by public v1.","properties":{"fulfillment_address":{"description":"An order must carry a fulfillment address before it can be placed.","title":"Fulfillment Address","type":"boolean"},"customer_email":{"description":"An order must carry a buyer email address.","title":"Customer Email","type":"boolean"},"customer_phone":{"description":"An order must carry a buyer phone number.","title":"Customer Phone","type":"boolean"},"customer_name":{"description":"An order must name the person the order is for.","title":"Customer Name","type":"boolean"},"date_of_birth":{"description":"An order must carry the buyer's structured date of birth.","title":"Date Of Birth","type":"boolean"},"scheduling":{"description":"An order must pick an appointment or class occurrence — the listing cannot be bought without a scheduled time.","title":"Scheduling","type":"boolean"},"booking_window":{"description":"An order must carry a start/end window, as a stay or a per-night / per-day listing does.","title":"Booking Window","type":"boolean"}},"required":["fulfillment_address","customer_email","customer_phone","customer_name","date_of_birth","scheduling","booking_window"],"title":"PublicCatalogRequirementsRead","type":"object"},"PublicCatalogVariantInventoryRead":{"description":"Quantity stock returned for one finite variant.","properties":{"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Units of this variant on hand. Null means the merchant does not track a finite count, which is not the same as zero.","title":"Quantity"}},"title":"PublicCatalogVariantInventoryRead","type":"object"},"PublicFulfillmentServiceRead":{"additionalProperties":false,"description":"One buyer-facing fulfillment service advertised beside a catalog listing.\n\nThis is the \"what will it cost to get this to me, and how fast?\" answer an\nagent needs *before* it opens a checkout. ``amount_from`` is a starting\nprice, not a quote: a tiered card's cheapest band and a carrier card's\nunknowable live rate are both honest answers, and the second is ``null``\nrather than a guess the buyer would later be charged more than.","properties":{"rate_card_id":{"description":"Stable id of the service, quotable as `rate_card_id`.","examples":["om_agrc_9f21"],"title":"Rate Card Id","type":"string"},"title":{"description":"Buyer-facing service name.","examples":["FedEx Ground"],"title":"Title","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Merchant's own copy for the service, when it has any.","title":"Description"},"amount_from":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Lowest charge this service can produce, in currency minor units. Zero for a free service; null when only a live carrier quote can answer.","examples":[695],"title":"Amount From"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency `amount_from` is expressed in."},"min_transit_days":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Fastest published transit time in days, when published.","title":"Min Transit Days"},"max_transit_days":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Slowest published transit time in days, when published.","title":"Max Transit Days"}},"required":["rate_card_id","title","currency"],"title":"PublicFulfillmentServiceRead","type":"object"},"PublicQuoteFulfillmentRead":{"additionalProperties":false,"description":"Exactly one fulfillment choice resolved on an authoritative offer.","properties":{"type":{"$ref":"#/components/schemas/AgenticFulfillmentType","description":"Fulfillment mode the merchant priced for this offer."},"option_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Stable catalog option id selected for this offer, when published.","title":"Option Id"},"location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Canonical business location priced by this offer.","title":"Location Id"},"rate_card_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Published fulfillment service this offer priced, when the buyer constrained the quote to one.","examples":["om_agrc_9f21"],"title":"Rate Card Id"},"services":{"description":"Published services that can fulfill this listing this way in the resolved market, cheapest first. Empty on an offer, which already names the one service it priced.","items":{"$ref":"#/components/schemas/PublicFulfillmentServiceRead"},"title":"Services","type":"array"}},"required":["type"],"title":"PublicQuoteFulfillmentRead","type":"object"},"PublicScheduledClassBookingRead":{"description":"Buyer-visible class bounds.","properties":{"type":{"const":"scheduled_class","default":"scheduled_class","description":"Discriminator marking a class-bookable variant.","title":"Type","type":"string"},"timezone":{"description":"IANA timezone the merchant authored this schedule in; every wall-clock rule above is evaluated in it.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"party_size":{"$ref":"#/components/schemas/PartySizeRule","description":"How many seats one booking may reserve."}},"required":["timezone","party_size"],"title":"PublicScheduledClassBookingRead","type":"object"},"PublicStayBookingRead":{"description":"Buyer-visible stay bounds.","properties":{"type":{"const":"stay","default":"stay","description":"Discriminator marking a stay-bookable variant.","title":"Type","type":"string"},"timezone":{"description":"IANA timezone the merchant authored this schedule in; every wall-clock rule above is evaluated in it.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"minimum_nights":{"description":"Shortest stay the property accepts.","title":"Minimum Nights","type":"integer"},"maximum_nights":{"description":"Longest stay the property accepts.","title":"Maximum Nights","type":"integer"},"maximum_rooms":{"description":"Most rooms one booking may reserve.","title":"Maximum Rooms","type":"integer"},"max_guests_per_room":{"description":"Occupancy ceiling per room, adults and children combined.","title":"Max Guests Per Room","type":"integer"}},"required":["timezone","minimum_nights","maximum_nights","maximum_rooms","max_guests_per_room"],"title":"PublicStayBookingRead","type":"object"},"ResourceRule":{"additionalProperties":false,"description":"One named bookable resource (a staff member, room, or chair).\n\nOptional: a variant with no named resources books against a plain\n``concurrency`` count. Naming them enables buyer-visible preference\n(\"book me with Anna\") and per-resource overlap accounting.","properties":{"id":{"description":"Identifier a buyer pins the booking to.","examples":["res_anna"],"maxLength":64,"minLength":1,"title":"Id","type":"string"},"name":{"description":"Buyer-facing name of the resource.","examples":["Anna"],"maxLength":255,"minLength":1,"title":"Name","type":"string"}},"required":["id","name"],"title":"ResourceRule","type":"object"},"ScheduledClassAvailabilityRead":{"description":"Class occurrences for one variant over a bounded window.","properties":{"type":{"const":"scheduled_class","default":"scheduled_class","description":"Discriminator selecting the scheduled-class answer shape.","title":"Type","type":"string"},"variant_id":{"description":"Variant these occurrences belong to.","examples":["om_agcv_4c1a"],"title":"Variant Id","type":"string"},"timezone":{"description":"IANA timezone every instant below is anchored to.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"occurrences":{"description":"Dated sessions in chronological order, each with its seat count.","items":{"$ref":"#/components/schemas/ClassOccurrenceRead"},"title":"Occurrences","type":"array"},"truncated":{"default":false,"description":"True when the occurrence list hit the option cap before covering the full requested window; re-query from the last occurrence.","title":"Truncated","type":"boolean"},"window":{"$ref":"#/components/schemas/DayWindowRead","description":"The day window this answer actually covers."}},"required":["variant_id","timezone","window"],"title":"ScheduledClassAvailabilityRead","type":"object"},"StayAvailabilityRead":{"description":"Nightly calendar and range verdict for one stay variant.","properties":{"type":{"const":"stay","default":"stay","description":"Discriminator selecting the stay answer shape.","title":"Type","type":"string"},"variant_id":{"description":"Variant this calendar belongs to.","examples":["om_agcv_4c1a"],"title":"Variant Id","type":"string"},"timezone":{"description":"IANA timezone the intervals are anchored to.","examples":["America/Los_Angeles"],"title":"Timezone","type":"string"},"price_unit":{"$ref":"#/components/schemas/AgenticPriceUnit","default":"day","description":"Unit represented by each dated stay interval."},"nights":{"description":"One entry per interval in the requested range, in order.","items":{"$ref":"#/components/schemas/StayNightRead"},"title":"Nights","type":"array"},"range_available":{"description":"True only when every night in the range can seat the requested rooms. An empty nights list means no calendar exists, which is not the same as availability being unknown.","title":"Range Available","type":"boolean"},"window":{"$ref":"#/components/schemas/StayWindowRead","description":"The stay range this calendar covers."}},"required":["variant_id","timezone","range_available","window"],"title":"StayAvailabilityRead","type":"object"},"StayNightRead":{"description":"One dated interval of a stay calendar.","properties":{"date":{"description":"The interval being described, in the property timezone.","examples":["2026-09-01"],"format":"date","title":"Date","type":"string"},"available_rooms":{"description":"Rooms open for this interval. Zero blocks any range covering it.","minimum":0,"title":"Available Rooms","type":"integer"},"per_interval_rate":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Effective rate for this interval in the listing currency, in minor units. Null when the merchant prices the stay as a whole rather than per interval.","title":"Per Interval Rate"}},"required":["date","available_rooms"],"title":"StayNightRead","type":"object"},"StayWindowRead":{"description":"Echo of the stay range an answer covers.","properties":{"check_in":{"description":"First night the calendar covers.","examples":["2026-09-01"],"format":"date","title":"Check In","type":"string"},"check_out":{"description":"Departure day the calendar was evaluated against.","examples":["2026-09-04"],"format":"date","title":"Check Out","type":"string"}},"required":["check_in","check_out"],"title":"StayWindowRead","type":"object"},"UcpAvailability":{"additionalProperties":false,"description":"Current purchase availability for a catalog variant.","properties":{"available":{"description":"Whether the variant can be bought right now.","title":"Available","type":"boolean"},"status":{"$ref":"#/components/schemas/UcpAvailabilityStatus","description":"Why it is or is not available — in stock, sold out, preorder."}},"required":["available","status"],"title":"UcpAvailability","type":"object"},"UcpAvailabilityStatus":{"description":"Well-known UCP variant inventory states emitted by OpenMerchant.","enum":["in_stock","out_of_stock"],"title":"UcpAvailabilityStatus","type":"string"},"UcpCatalogMerchant":{"additionalProperties":false,"description":"Owning merchant attached to every aggregate catalog result.","properties":{"id":{"description":"Merchant identifier.","examples":["om_agm_2f7c"],"title":"Id","type":"string"},"slug":{"description":"URL segment identifying the storefront.","examples":["coffee-cart"],"title":"Slug","type":"string"},"display_name":{"description":"Buyer-facing merchant name.","examples":["Coffee Cart"],"title":"Display Name","type":"string"},"profile_url":{"description":"Absolute URL of the merchant's UCP business profile.","title":"Profile Url","type":"string"},"network_business_profile_id":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Stripe Network Business Profile identifier used to scope Shared Payment Token issuance for this internal OpenMerchant seller.","title":"Network Business Profile Id"}},"required":["id","slug","display_name","profile_url"],"title":"UcpCatalogMerchant","type":"object"},"UcpCatalogMessage":{"additionalProperties":false,"description":"Typed UCP catalog business outcome, warning, or informational note.","properties":{"type":{"$ref":"#/components/schemas/UcpCatalogMessageType","description":"Whether this note reports an error or is informational."},"code":{"$ref":"#/components/schemas/UcpCatalogMessageCode","description":"Machine-readable code the client can branch on."},"content":{"description":"Human-readable explanation of the note.","title":"Content","type":"string"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"JSON path into the request that the note is about.","examples":["filters.price"],"title":"Path"},"content_type":{"$ref":"#/components/schemas/UcpMessageContentType","default":"plain","description":"Format of `content`."},"severity":{"anyOf":[{"$ref":"#/components/schemas/UcpMessageSeverity"},{"type":"null"}],"default":null,"description":"For errors: whether retrying with a corrected request can succeed. Absent on informational notes."}},"required":["type","code","content"],"title":"UcpCatalogMessage","type":"object"},"UcpCatalogMessageCode":{"description":"Catalog message codes emitted by the UCP adapter.","enum":["search_results_limited","search_keyword_only","catalog_search_unavailable","not_found","invalid_cursor","price_filter_ignored","currency_not_offered","request_too_large","unsupported_pricing_model","booking_disabled","variant_not_bookable","resource_not_found","availability_window_invalid","inventory_provider_unavailable","inventory_provider_response_invalid","availability_unavailable","requires_quote"],"title":"UcpCatalogMessageCode","type":"string"},"UcpCatalogMessageType":{"description":"Kinds of UCP catalog business-outcome messages.","enum":["error","info"],"title":"UcpCatalogMessageType","type":"string"},"UcpCatalogResponseMetadata":{"additionalProperties":false,"description":"UCP metadata echoed on every catalog response.","properties":{"version":{"$ref":"#/components/schemas/UcpProtocolVersion","description":"UCP protocol release this document conforms to."},"status":{"$ref":"#/components/schemas/UcpResponseStatus","default":"success","description":"Whether the request succeeded, partially succeeded, or failed."},"capabilities":{"additionalProperties":{"items":{"$ref":"#/components/schemas/UcpEntityReference"},"type":"array"},"description":"Capabilities exercised while producing this response.","propertyNames":{"$ref":"#/components/schemas/UcpCapabilityName"},"title":"Capabilities","type":"object"}},"required":["version","capabilities"],"title":"UcpCatalogResponseMetadata","type":"object"},"UcpCategory":{"additionalProperties":false,"description":"One category value in the merchant's own taxonomy.","properties":{"value":{"description":"Category value within the named taxonomy.","examples":["espresso"],"title":"Value","type":"string"},"taxonomy":{"$ref":"#/components/schemas/UcpCategoryTaxonomy","default":"merchant","description":"Which taxonomy `value` belongs to."}},"required":["value"],"title":"UcpCategory","type":"object"},"UcpCategoryTaxonomy":{"description":"Category taxonomies emitted by OpenMerchant catalog merchants.\n\n``MERCHANT`` is the seller's own listing vocabulary. ``GOOGLE`` is the\nnormalized Google product taxonomy id, emitted alongside it once an item\nhas a resolved category — the same value both product feeds publish, so\nan agent reading the catalog and an ad reading the feed agree.","enum":["merchant","google"],"title":"UcpCategoryTaxonomy","type":"string"},"UcpCustomizationChoice":{"additionalProperties":false,"description":"OpenMerchant extension choice for an order-time dynamic customization.","properties":{"id":{"description":"Identifier to select this choice with on a line.","examples":["om_agcc_oat"],"title":"Id","type":"string"},"label":{"description":"Buyer-facing label of the choice.","examples":["Oat milk"],"title":"Label","type":"string"},"price_delta":{"$ref":"#/components/schemas/UcpPriceDelta","description":"How much selecting this choice moves the price; may be negative."},"pricing_basis":{"$ref":"#/components/schemas/AgenticCustomizationPricingBasis","description":"Whether the delta applies per line or per selected unit."},"min_quantity":{"description":"Fewest of this choice that may be selected.","minimum":0,"title":"Min Quantity","type":"integer"},"max_quantity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Most that may be selected; null means unbounded.","title":"Max Quantity"},"default_quantity":{"description":"How many are selected when the buyer says nothing.","minimum":0,"title":"Default Quantity","type":"integer"},"available":{"description":"Whether the choice can currently be selected.","title":"Available","type":"boolean"}},"required":["id","label","price_delta","pricing_basis","min_quantity","default_quantity","available"],"title":"UcpCustomizationChoice","type":"object"},"UcpCustomizationGroup":{"additionalProperties":false,"description":"Namespaced OpenMerchant extension for dynamic order-time configuration.","properties":{"id":{"description":"Identifier to reference this group with on a line.","examples":["om_agcg_milk"],"title":"Id","type":"string"},"name":{"description":"Buyer-facing name of the group.","examples":["Milk"],"title":"Name","type":"string"},"selection_mode":{"$ref":"#/components/schemas/AgenticCustomizationSelectionMode","description":"Whether the buyer picks one choice or several."},"min_total_quantity":{"description":"Fewest selections across the whole group. Above zero makes the group mandatory.","minimum":0,"title":"Min Total Quantity","type":"integer"},"max_total_quantity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Most selections across the group; null means unbounded.","title":"Max Total Quantity"},"choices":{"description":"Selectable choices, in merchant display order.","items":{"$ref":"#/components/schemas/UcpCustomizationChoice"},"minItems":1,"title":"Choices","type":"array"}},"required":["id","name","selection_mode","min_total_quantity","choices"],"title":"UcpCustomizationGroup","type":"object"},"UcpDescription":{"additionalProperties":false,"description":"Catalog description content in supported display formats.","properties":{"plain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Plain-text description, safe to render anywhere.","title":"Plain"},"html":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"HTML description as authored by the merchant.","title":"Html"},"markdown":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Markdown description as authored by the merchant.","title":"Markdown"}},"title":"UcpDescription","type":"object"},"UcpInputCorrelation":{"additionalProperties":false,"description":"Lookup request identifier correlated to a returned variant.","properties":{"id":{"description":"Identifier of the request input this result answers.","title":"Id","type":"string"},"match":{"$ref":"#/components/schemas/UcpInputMatch","description":"How closely the variant matches that input."}},"required":["id","match"],"title":"UcpInputCorrelation","type":"object"},"UcpInputMatch":{"description":"How a catalog lookup identifier resolved to a returned variant.","enum":["exact","featured"],"title":"UcpInputMatch","type":"string"},"UcpMedia":{"additionalProperties":false,"description":"One public product or variant media resource.","properties":{"type":{"$ref":"#/components/schemas/UcpMediaType","description":"What kind of media this is."},"url":{"description":"Absolute URL of the asset.","title":"Url","type":"string"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Accessible description of the asset.","title":"Alt Text"}},"required":["type","url"],"title":"UcpMedia","type":"object"},"UcpMediaType":{"description":"Media types emitted for catalog products and variants.","enum":["image"],"title":"UcpMediaType","type":"string"},"UcpMessageContentType":{"description":"Content formats used by UCP catalog messages.","enum":["plain"],"title":"UcpMessageContentType","type":"string"},"UcpMessageSeverity":{"description":"Recovery guidance for UCP catalog errors.","enum":["recoverable","unrecoverable"],"title":"UcpMessageSeverity","type":"string"},"UcpOption":{"additionalProperties":false,"description":"One core UCP finite product option axis.","properties":{"name":{"description":"Option axis name.","examples":["Size"],"title":"Name","type":"string"},"values":{"description":"Every value the axis offers across this product's variants.","items":{"$ref":"#/components/schemas/UcpOptionValue"},"minItems":1,"title":"Values","type":"array"}},"required":["name","values"],"title":"UcpOption","type":"object"},"UcpOptionValue":{"additionalProperties":false,"description":"One allowed core UCP finite option value.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Identifier of this value, when the merchant publishes one.","examples":["om_agov_large"],"title":"Id"},"label":{"description":"Buyer-facing label of the value.","examples":["Large"],"title":"Label","type":"string"},"available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Whether a variant carrying this value can be bought now.","title":"Available"},"exists":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Whether any variant carries this value at all — distinct from existing but being sold out.","title":"Exists"}},"required":["label"],"title":"UcpOptionValue","type":"object"},"UcpPaginationResponse":{"additionalProperties":false,"description":"Cursor state returned from catalog search.","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor to pass back for the next page.","title":"Cursor"},"has_next_page":{"description":"Whether another page exists after this one.","title":"Has Next Page","type":"boolean"},"total_count":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Total products matching the request, across all pages.","title":"Total Count"}},"required":["has_next_page"],"title":"UcpPaginationResponse","type":"object"},"UcpPrice":{"additionalProperties":false,"description":"One price in integer ISO-4217 minor units.","properties":{"amount":{"description":"Amount in the currency's minor units.","examples":[500],"minimum":0,"title":"Amount","type":"integer"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency of the amount."}},"required":["amount","currency"],"title":"UcpPrice","type":"object"},"UcpPriceDelta":{"additionalProperties":false,"description":"Signed money adjustment used by OpenMerchant customization metadata.","properties":{"amount":{"description":"Signed price change in minor units; may be negative.","examples":[75],"title":"Amount","type":"integer"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency of the delta."}},"required":["amount","currency"],"title":"UcpPriceDelta","type":"object"},"UcpPriceRange":{"additionalProperties":false,"description":"Minimum and maximum prices across a product's variants.","properties":{"min":{"$ref":"#/components/schemas/UcpPrice","description":"Cheapest variant of the product."},"max":{"$ref":"#/components/schemas/UcpPrice","description":"Most expensive variant of the product."}},"required":["min","max"],"title":"UcpPriceRange","type":"object"},"UcpProduct":{"additionalProperties":false,"description":"One UCP product containing all concrete fixed-price variants.","properties":{"id":{"description":"Product identifier; several variants share it.","examples":["om_agci_4c1a"],"title":"Id","type":"string"},"title":{"description":"Buyer-facing product name.","examples":["Espresso"],"title":"Title","type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the product on the merchant's own site.","title":"Url"},"description":{"$ref":"#/components/schemas/UcpDescription","description":"Merchant copy in whichever formats were authored."},"categories":{"description":"Categories the product is filed under.","items":{"$ref":"#/components/schemas/UcpCategory"},"title":"Categories","type":"array"},"price_range":{"$ref":"#/components/schemas/UcpPriceRange","description":"Cheapest and most expensive variant of this product."},"media":{"description":"Images for the product, in display order.","items":{"$ref":"#/components/schemas/UcpMedia"},"title":"Media","type":"array"},"options":{"description":"Finite option axes a buyer chooses between to reach a variant.","items":{"$ref":"#/components/schemas/UcpOption"},"title":"Options","type":"array"},"selected":{"anyOf":[{"items":{"$ref":"#/components/schemas/UcpSelectedOption"},"type":"array"},{"type":"null"}],"default":null,"description":"Option choices the request pinned, echoed back.","title":"Selected"},"variants":{"description":"Every current variant; at least one always exists.","items":{"$ref":"#/components/schemas/UcpVariant"},"minItems":1,"title":"Variants","type":"array"},"metadata":{"$ref":"#/components/schemas/UcpProductMetadata","description":"Merchant, fulfillment, pricing, and booking metadata."},"dev.openmerchant.availability":{"anyOf":[{"discriminator":{"mapping":{"appointment":"#/components/schemas/AppointmentAvailabilityRead","scheduled_class":"#/components/schemas/ScheduledClassAvailabilityRead","stay":"#/components/schemas/StayAvailabilityRead"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AppointmentAvailabilityRead"},{"$ref":"#/components/schemas/ScheduledClassAvailabilityRead"},{"$ref":"#/components/schemas/StayAvailabilityRead"}]},{"type":"null"}],"default":null,"description":"OpenMerchant extension: concrete availability for the selected variant when dev.openmerchant.booking supplied a date window.","title":"Dev.Openmerchant.Availability"}},"required":["id","title","description","price_range","variants","metadata"],"title":"UcpProduct","type":"object"},"UcpProductMetadata":{"additionalProperties":false,"description":"Typed OpenMerchant listing details that do not have a core UCP field.","properties":{"merchant":{"$ref":"#/components/schemas/UcpCatalogMerchant","description":"The merchant that owns and fulfills this listing."},"market":{"description":"Merchant market whose catalog facts are represented.","maxLength":32,"minLength":1,"title":"Market","type":"string"},"locale":{"$ref":"#/components/schemas/LocaleCode","description":"Resolved locale used for buyer-facing catalog copy."},"fx":{"anyOf":[{"$ref":"#/components/schemas/CatalogFxRead"},{"type":"null"}],"default":null,"description":"Optional conversion metadata when prices are presented outside the resolved market's native currency."},"purchasable":{"description":"Whether this catalog surface currently accepts commerce for the owning merchant. Aggregate results additionally require aggregate commerce to be enabled. This is independent from variant inventory availability.","title":"Purchasable","type":"boolean"},"item_type":{"$ref":"#/components/schemas/PublicCatalogItemType","description":"Listing family — a physical good, a service, a stay, and so on."},"fulfillment_options":{"description":"Every supported fulfillment mode, with stable public ids accepted by quote fulfillment constraints.","items":{"$ref":"#/components/schemas/PublicQuoteFulfillmentRead"},"title":"Fulfillment Options","type":"array"},"pricing_model":{"$ref":"#/components/schemas/AgenticPricingModel","description":"How the line total derives from the rate — per unit, interval, or person — or `quoted` for price on request."},"price_unit":{"anyOf":[{"$ref":"#/components/schemas/AgenticPriceUnit"},{"type":"null"}],"default":null,"description":"What one priced unit is, when the price is per unit."},"price_range":{"anyOf":[{"$ref":"#/components/schemas/UcpPriceRange"},{"type":"null"}],"default":null,"description":"Effective variant unit-price bounds; interval-priced listings derive these from their published calendar."},"original_price_range":{"anyOf":[{"$ref":"#/components/schemas/UcpPriceRange"},{"type":"null"}],"default":null,"description":"Optional pre-discount bounds in the presented currency."},"price_kind":{"$ref":"#/components/schemas/AgenticCatalogPriceKind","description":"Whether the price is a unit price or a starting-from rate."},"quote_required":{"description":"The listing cannot be bought directly; raise a quote and purchase the resulting offer.","title":"Quote Required","type":"boolean"},"original_price":{"anyOf":[{"$ref":"#/components/schemas/UcpPrice"},{"type":"null"}],"default":null,"description":"Optional pre-discount variant rate in minor units."},"promotion":{"anyOf":[{"$ref":"#/components/schemas/CatalogPromotionRead"},{"type":"null"}],"default":null,"description":"Seller promotion running on this variant, if any. `price` stays the regular price, so filters and sorts are unaffected; `from_unit_amount` is the least any buyer pays. The price a particular buyer is offered, and the deadline it is valid until, appear on their checkout or quote (`dev.openmerchant.promotions`)."},"inventory":{"$ref":"#/components/schemas/PublicCatalogVariantInventoryRead","description":"Stock position for this variant."},"requirements":{"$ref":"#/components/schemas/PublicCatalogRequirementsRead","description":"Item-level buyer data required for every variant — address, contact details, scheduling — before an order will be accepted."},"booking_type":{"$ref":"#/components/schemas/BookingType","default":"quantity","description":"Commercial discriminator. Anything but `quantity` is booked against live availability through a quote offer."},"booking":{"anyOf":[{"discriminator":{"mapping":{"appointment":"#/components/schemas/PublicAppointmentBookingRead","scheduled_class":"#/components/schemas/PublicScheduledClassBookingRead","stay":"#/components/schemas/PublicStayBookingRead"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/PublicAppointmentBookingRead"},{"$ref":"#/components/schemas/PublicScheduledClassBookingRead"},{"$ref":"#/components/schemas/PublicStayBookingRead"}]},{"type":"null"}],"default":null,"description":"Buyer-visible booking bounds for a bookable listing; null for ordinary quantity listings.","title":"Booking"},"quote_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Absolute UCP quote endpoint (POST) that prices this listing; null for ordinary quantity listings.","title":"Quote Url"},"availability_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Absolute UCP product endpoint (POST). Send the product id and the dev.openmerchant.booking window to receive concrete dev.openmerchant.availability in the response.","title":"Availability Url"},"attributes":{"additionalProperties":{"type":"string"},"description":"Merchant display attributes (roast, material, plan tier, …).","examples":[{"roast":"dark"}],"title":"Attributes","type":"object"},"customizations":{"description":"Order-time choices a buyer may make on this variant.","items":{"$ref":"#/components/schemas/UcpCustomizationGroup"},"title":"Customizations","type":"array"}},"required":["merchant","market","locale","purchasable","item_type","pricing_model","price_kind","quote_required","inventory","requirements"],"title":"UcpProductMetadata","type":"object"},"UcpResponseStatus":{"description":"Application-level status carried in UCP response metadata.","enum":["success","error"],"title":"UcpResponseStatus","type":"string"},"UcpSelectedOption":{"additionalProperties":false,"description":"One product option selection in a UCP product-detail request.","properties":{"name":{"description":"Option axis name.","examples":["Size"],"title":"Name","type":"string"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Identifier of the selected value, when the merchant publishes one.","examples":["om_agov_large"],"title":"Id"},"label":{"description":"Buyer-facing label of the selected value.","examples":["Large"],"title":"Label","type":"string"}},"required":["name","label"],"title":"UcpSelectedOption","type":"object"},"UcpVariant":{"additionalProperties":false,"description":"One purchasable UCP variant backed by a catalog listing.","properties":{"id":{"description":"Variant identifier; buy this exact variant by id.","examples":["om_agcv_9d10"],"title":"Id","type":"string"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Merchant SKU for the variant.","examples":["ESP-1-L"],"title":"Sku"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of this variant on the merchant's own site.","title":"Url"},"title":{"description":"Buyer-facing name of the variant.","examples":["Espresso — Large"],"title":"Title","type":"string"},"description":{"$ref":"#/components/schemas/UcpDescription","description":"Merchant copy in whichever formats were authored."},"price":{"$ref":"#/components/schemas/UcpPrice","description":"Current price of this variant."},"availability":{"$ref":"#/components/schemas/UcpAvailability","description":"Whether this variant can be bought right now, and why."},"media":{"description":"Images for the variant, in display order.","items":{"$ref":"#/components/schemas/UcpMedia"},"title":"Media","type":"array"},"options":{"description":"Option axis / value pairs that identify this variant.","items":{"$ref":"#/components/schemas/UcpSelectedOption"},"title":"Options","type":"array"},"metadata":{"$ref":"#/components/schemas/UcpProductMetadata","description":"Merchant, fulfillment, pricing, and booking metadata."},"inputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/UcpInputCorrelation"},"type":"array"},{"type":"null"}],"default":null,"description":"Which request inputs this variant answers, and how closely. Present on lookup responses.","title":"Inputs"}},"required":["id","title","description","price","availability","metadata"],"title":"UcpVariant","type":"object"},"UcpCatalogSearchResponse":{"additionalProperties":false,"description":"Response body for ``POST /catalog/search``.","properties":{"messages":{"description":"Business-outcome notes about this response — ignored fields, partial matches.","items":{"$ref":"#/components/schemas/UcpCatalogMessage"},"title":"Messages","type":"array"},"analytics":{"anyOf":[{"$ref":"#/components/schemas/CatalogResponseAnalytics"},{"type":"null"}],"default":null,"description":"OpenMerchant discovery token extension for later commerce attribution."},"pagination":{"anyOf":[{"$ref":"#/components/schemas/UcpPaginationResponse"},{"type":"null"}],"default":null,"description":"Cursor and totals for fetching the next page."},"ucp":{"$ref":"#/components/schemas/UcpCatalogResponseMetadata","description":"Protocol metadata: version, response status, and capabilities used."},"products":{"description":"Matching products, each with its full variant list.","items":{"$ref":"#/components/schemas/UcpProduct"},"title":"Products","type":"array"}},"required":["ucp","products"],"title":"UcpCatalogSearchResponse","type":"object"},"UcpCatalogLookupRequest":{"additionalProperties":false,"description":"Request body for ``POST /catalog/lookup``.","properties":{"ids":{"description":"Product ids to fetch. At least one is required; OpenMerchant's seller transport returns request_too_large above 100 ids.","examples":[["om_agci_4c1a"]],"items":{"type":"string"},"minItems":1,"title":"Ids","type":"array"},"filters":{"anyOf":[{"$ref":"#/components/schemas/UcpSearchFilters"},{"type":"null"}],"default":null,"description":"Restrict results by category or price band."},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogContext"},{"type":"null"}],"default":null,"description":"Provisional localization hints — country, region, language, currency."},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Non-identifying request signals forwarded for fraud and routing decisions."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Free-form attribution key/values recorded with the request."}},"required":["ids"],"title":"UcpCatalogLookupRequest","type":"object"},"UcpCatalogLookupResponse":{"additionalProperties":false,"description":"Response body for ``POST /catalog/lookup``.","properties":{"messages":{"description":"Business-outcome notes about this response — ignored fields, partial matches.","items":{"$ref":"#/components/schemas/UcpCatalogMessage"},"title":"Messages","type":"array"},"analytics":{"anyOf":[{"$ref":"#/components/schemas/CatalogResponseAnalytics"},{"type":"null"}],"default":null,"description":"OpenMerchant discovery token extension for later commerce attribution."},"ucp":{"$ref":"#/components/schemas/UcpCatalogResponseMetadata","description":"Protocol metadata: version, response status, and capabilities used."},"products":{"description":"Products resolved from the requested ids, in request order.","items":{"$ref":"#/components/schemas/UcpProduct"},"title":"Products","type":"array"}},"required":["ucp","products"],"title":"UcpCatalogLookupResponse","type":"object"},"UcpCatalogBookingRequest":{"additionalProperties":false,"description":"OpenMerchant extension for a live UCP product availability question.","properties":{"date_from":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"First local day of an appointment or scheduled-class availability window.","examples":["2026-09-01"],"title":"Date From"},"date_until":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"Last local day of an appointment or scheduled-class availability window, inclusive.","examples":["2026-09-07"],"title":"Date Until"},"duration_minutes":{"anyOf":[{"maximum":10080,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Requested appointment duration; omission uses the shortest allowed.","title":"Duration Minutes"},"party_size":{"default":1,"description":"Number of guests the appointment or class must accommodate.","maximum":1000,"minimum":1,"title":"Party Size","type":"integer"},"resource_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Optional exact appointment resource to search.","title":"Resource Id"},"include_full":{"default":true,"description":"Whether full scheduled-class occurrences remain in the answer.","title":"Include Full","type":"boolean"},"check_in":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"First night of a stay availability window.","examples":["2026-09-01"],"title":"Check In"},"check_out":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"Departure day of a stay availability window.","examples":["2026-09-04"],"title":"Check Out"},"rooms":{"default":1,"description":"Number of rooms the stay must accommodate.","maximum":100,"minimum":1,"title":"Rooms","type":"integer"},"adults":{"default":1,"description":"Number of adult stay guests.","maximum":100,"minimum":1,"title":"Adults","type":"integer"},"children":{"default":0,"description":"Number of child stay guests.","maximum":100,"minimum":0,"title":"Children","type":"integer"}},"title":"UcpCatalogBookingRequest","type":"object"},"UcpCatalogGetProductRequest":{"additionalProperties":false,"description":"Request body for ``POST /catalog/product``.","properties":{"id":{"description":"Product to fetch.","examples":["om_agci_4c1a"],"title":"Id","type":"string"},"selected":{"description":"Option choices narrowing the response to one variant.","items":{"$ref":"#/components/schemas/UcpSelectedOption"},"title":"Selected","type":"array"},"preferences":{"description":"Soft preferences applied when several variants qualify.","items":{"type":"string"},"title":"Preferences","type":"array"},"filters":{"anyOf":[{"$ref":"#/components/schemas/UcpSearchFilters"},{"type":"null"}],"default":null,"description":"Restrict results by category or price band."},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogContext"},{"type":"null"}],"default":null,"description":"Provisional localization hints — country, region, language, currency."},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Non-identifying request signals forwarded for fraud and routing decisions."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Free-form attribution key/values recorded with the request."},"dev.openmerchant.booking":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogBookingRequest"},{"type":"null"}],"default":null,"description":"OpenMerchant extension: ask for live availability for the selected variant without leaving the UCP product operation."}},"required":["id"],"title":"UcpCatalogGetProductRequest","type":"object"},"UcpCatalogGetProductResponse":{"additionalProperties":false,"description":"Successful response body for ``POST /catalog/product``.","properties":{"messages":{"description":"Business-outcome notes about this response — ignored fields, partial matches.","items":{"$ref":"#/components/schemas/UcpCatalogMessage"},"title":"Messages","type":"array"},"analytics":{"anyOf":[{"$ref":"#/components/schemas/CatalogResponseAnalytics"},{"type":"null"}],"default":null,"description":"OpenMerchant discovery token extension for later commerce attribution."},"ucp":{"$ref":"#/components/schemas/UcpCatalogResponseMetadata","description":"Protocol metadata: version, response status, and capabilities used."},"product":{"$ref":"#/components/schemas/UcpProduct","description":"The requested product."}},"required":["ucp","product"],"title":"UcpCatalogGetProductResponse","type":"object"},"UcpCatalogErrorResponse":{"additionalProperties":false,"description":"Application-level UCP error returned with HTTP 200.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCatalogResponseMetadata","description":"Protocol metadata: version, response status, and capabilities used."},"messages":{"description":"Why the request failed, and whether a corrected retry can succeed.","items":{"$ref":"#/components/schemas/UcpCatalogMessage"},"title":"Messages","type":"array"},"continue_url":{"description":"Where the buyer can complete the action outside the protocol.","title":"Continue Url","type":"string"}},"required":["ucp","messages","continue_url"],"title":"UcpCatalogErrorResponse","type":"object"},"AppointmentBookingRequest":{"additionalProperties":false,"description":"A requested appointment start, duration, and optional resource pin.\n\n``ends_at`` is never an input — the server derives it from\n``duration_minutes`` so the two can never disagree.","properties":{"type":{"const":"appointment","default":"appointment","description":"Discriminator selecting the appointment request shape.","title":"Type","type":"string"},"starts_at":{"description":"Requested start; MUST carry a UTC offset.","examples":["2026-09-01T15:00:00Z"],"format":"date-time","title":"Starts At","type":"string"},"duration_minutes":{"anyOf":[{"maximum":10080,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Omit for fixed-duration services; the config supplies it.","title":"Duration Minutes"},"party_size":{"default":1,"description":"How many people the appointment is for.","maximum":1000,"minimum":1,"title":"Party Size","type":"integer"},"resource_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Optional buyer preference; otherwise assigned server-side.","title":"Resource Id"}},"required":["starts_at"],"title":"AppointmentBookingRequest","type":"object"},"BuyerDob":{"description":"Buyer DOB write shape without a minimum-age requirement.\n\nBuyer information capture is a merchant fulfillment input rather than a\ncardholder-eligibility decision, so a valid DOB belonging to a minor must\nbe accepted.","properties":{"day":{"description":"Day of the month (1-31).","example":15,"maximum":31,"minimum":1,"title":"Day","type":"integer"},"month":{"description":"Month of the year (1-12).","example":6,"maximum":12,"minimum":1,"title":"Month","type":"integer"},"year":{"description":"Four-digit birth year.","example":1990,"minimum":1900,"title":"Year","type":"integer"}},"required":["day","month","year"],"title":"BuyerDob","type":"object"},"GuestCounts":{"additionalProperties":false,"description":"Occupancy for a stay booking.","properties":{"adults":{"default":1,"description":"Adult occupants across the booked rooms.","maximum":100,"minimum":1,"title":"Adults","type":"integer"},"children":{"default":0,"description":"Child occupants, counted separately for occupancy rules.","maximum":100,"minimum":0,"title":"Children","type":"integer"}},"title":"GuestCounts","type":"object"},"QuantityBookingRequest":{"additionalProperties":false,"description":"Explicit \"this is an ordinary units line\" marker.","properties":{"type":{"const":"quantity","default":"quantity","description":"Discriminator marking an ordinary units line — nothing is scheduled, so the branch carries no other fields.","title":"Type","type":"string"}},"title":"QuantityBookingRequest","type":"object"},"QuoteEligibilityReference":{"additionalProperties":false,"description":"Opaque merchant-verifiable entitlement bound to a quote price.","properties":{"claim":{"description":"Reverse-domain identifier naming what the buyer claims to be entitled to. Lower-cased on the way in; it names the benefit, never the buyer.","examples":["dev.openmerchant.member","com.example.corporate_rate"],"maxLength":255,"minLength":3,"title":"Claim","type":"string"},"reference":{"description":"Opaque token the merchant validates against its own system before applying the benefit. Never inspected or interpreted here.","examples":["mbr_9f2c41d0a7"],"maxLength":255,"minLength":1,"title":"Reference","type":"string"}},"required":["claim","reference"],"title":"QuoteEligibilityReference","type":"object"},"QuotePriceProposal":{"additionalProperties":false,"description":"A unit price a buyer proposes for the item being quoted.\n\nA typed number, deliberately not prose: the free-form ``message`` on a\nquote never affects a price, and this is the only input that can ask for a\nlower one. It is answered by the seller's own rules (a promotion marked\nnegotiable, down to its floor), or passed to a merchant that prices its own\nquotes. It can only lower a price, never extends an offer's deadline, and\na quote may make a limited number of them.","properties":{"unit_amount":{"description":"Proposed price for one unit, in minor units, before fulfillment and tax.","maximum":2147483647,"minimum":1,"title":"Unit Amount","type":"integer"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"Currency of the proposal. Must be the market's own currency, the one the item is priced in, which may differ from a requested presentment currency."}},"required":["unit_amount","currency"],"title":"QuotePriceProposal","type":"object"},"ScheduledClassBookingRequest":{"additionalProperties":false,"description":"A requested seat count on one existing class occurrence.","properties":{"type":{"const":"scheduled_class","default":"scheduled_class","description":"Discriminator selecting the scheduled-class request shape.","title":"Type","type":"string"},"occurrence_id":{"description":"The dated session to reserve, from the availability answer.","examples":["om_agco_7f21"],"maxLength":64,"minLength":1,"title":"Occurrence Id","type":"string"},"party_size":{"default":1,"description":"Seats to reserve on that occurrence.","maximum":1000,"minimum":1,"title":"Party Size","type":"integer"}},"required":["occurrence_id"],"title":"ScheduledClassBookingRequest","type":"object"},"StayBookingRequest":{"additionalProperties":false,"description":"A requested date range, room count, and occupancy.","properties":{"type":{"const":"stay","default":"stay","description":"Discriminator selecting the stay request shape.","title":"Type","type":"string"},"check_in":{"description":"First night of the stay, in the property timezone.","examples":["2026-09-01"],"format":"date","title":"Check In","type":"string"},"check_out":{"description":"Departure day; the night before it is the last one booked.","examples":["2026-09-04"],"format":"date","title":"Check Out","type":"string"},"rooms":{"default":1,"description":"Rooms to reserve for every night of the range.","maximum":100,"minimum":1,"title":"Rooms","type":"integer"},"guests":{"$ref":"#/components/schemas/GuestCounts","description":"Occupancy across those rooms."},"rate_plan_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Optional plan pin; omission fans out over every plan.","title":"Rate Plan Id"}},"required":["check_in","check_out"],"title":"StayBookingRequest","type":"object"},"UcpBuyer":{"additionalProperties":false,"description":"Buyer identity progressively collected by Cart or Checkout.","properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer email, used for fulfillment and receipts only. Never a tax or pricing input.","example":"user@example.com","examples":["buyer@example.com"],"title":"Email"},"first_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer given name.","examples":["Riley"],"title":"First Name"},"last_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer family name.","examples":["Chen"],"title":"Last Name"},"phone_number":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer phone, for fulfillment contact only.","examples":["+15035550123"],"title":"Phone Number"},"dev.openmerchant.dob":{"anyOf":[{"$ref":"#/components/schemas/BuyerDob"},{"type":"null"}],"default":null,"description":"OpenMerchant extension: buyer date of birth as day, month, and year."}},"title":"UcpBuyer","type":"object"},"UcpCustomizationChoiceRequest":{"additionalProperties":false,"description":"One order-time customization choice requested for a line.","properties":{"choice_id":{"description":"The published choice being selected.","examples":["om_agcc_oat"],"maxLength":64,"title":"Choice Id","type":"string"},"quantity":{"default":1,"description":"How many of the choice to apply. Zero explicitly declines a choice the group would otherwise default in.","maximum":1000,"minimum":0,"title":"Quantity","type":"integer"}},"required":["choice_id"],"title":"UcpCustomizationChoiceRequest","type":"object"},"UcpCustomizationGroupRequest":{"additionalProperties":false,"description":"Selections for one dynamic customization group.","properties":{"group_id":{"description":"The published customization group these selections belong to.","examples":["om_agcg_milk"],"maxLength":64,"title":"Group Id","type":"string"},"choices":{"description":"Selections within the group; an empty list declines it entirely.","items":{"$ref":"#/components/schemas/UcpCustomizationChoiceRequest"},"maxItems":100,"title":"Choices","type":"array"}},"required":["group_id"],"title":"UcpCustomizationGroupRequest","type":"object"},"UcpPostalAddress":{"additionalProperties":false,"description":"UCP postal address used for shipping and billing destinations.","properties":{"extended_address":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Apartment, suite, floor, or other secondary address line.","examples":["Suite 400"],"title":"Extended Address"},"street_address":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Street number and name.","examples":["811 NW Couch St"],"title":"Street Address"},"address_locality":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"City or town.","examples":["Portland"],"title":"Address Locality"},"address_region":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"State, province, or region.","examples":["OR"],"title":"Address Region"},"address_country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"default":null,"description":"ISO-3166-1 alpha-2 country code."},"postal_code":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Postal or ZIP code.","examples":["97209"],"title":"Postal Code"},"first_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Recipient given name at this address.","examples":["Riley"],"title":"First Name"},"last_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Recipient family name at this address.","examples":["Chen"],"title":"Last Name"},"phone_number":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Contact phone for this delivery.","examples":["+15035550123"],"title":"Phone Number"}},"title":"UcpPostalAddress","type":"object"},"UcpQuoteContext":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"description":"UCP quote context with merchant-verifiable eligibility references.","properties":{"address_country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"default":null,"description":"ISO-3166-1 alpha-2 country the buyer is shopping from. Coarse enough to localize price and tax without identifying anyone."},"address_region":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"State, province, or region the buyer is shopping from.","examples":["OR"],"title":"Address Region"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Postal code used to estimate destination tax and shipping before a full address is known.","examples":["97209"],"title":"Postal Code"},"intent":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-form description of what the buyer is shopping for. Retained for the merchant; never forwarded to inventory pricing.","examples":["Team offsite catering for 40 people"],"title":"Intent"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BCP-47 language tag for buyer-facing copy.","examples":["en-US"],"title":"Language"},"currency":{"anyOf":[{"$ref":"#/components/schemas/CurrencyCode"},{"type":"null"}],"default":null,"description":"ISO-4217 currency the buyer wants to be quoted in. The merchant may decline and answer in its own currency."},"dev.openmerchant.market":{"anyOf":[{"maxLength":32,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"OpenMerchant extension selecting one merchant-defined market. It takes precedence over geographic and currency hints.","examples":["eu"],"title":"Dev.Openmerchant.Market"},"eligibility":{"description":"Typed opaque entitlement references the merchant must validate before applying a benefit to the quoted price.","examples":[[{"claim":"dev.openmerchant.member","reference":"mbr_9f2c41d0a7"}]],"items":{"$ref":"#/components/schemas/QuoteEligibilityReference"},"maxItems":20,"title":"Eligibility","type":"array"}},"title":"UcpQuoteContext","type":"object"},"UcpQuoteFulfillmentRequest":{"additionalProperties":false,"description":"UCP quote fulfillment constraint with its optional destination.","properties":{"type":{"$ref":"#/components/schemas/AgenticFulfillmentType","description":"Fulfillment mode every accepted offer must use."},"option_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Stable catalog fulfillment-option id. Null accepts any advertised option of the requested type.","title":"Option Id"},"location_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Canonical public business location selected by the buyer.","title":"Location Id"},"rate_card_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Exact published fulfillment service to price (\"quote me FedEx 2Day\"). Null lets the merchant pick the cheapest service that serves the item.","examples":["om_agrc_9f21"],"title":"Rate Card Id"},"address":{"anyOf":[{"$ref":"#/components/schemas/UcpPostalAddress"},{"type":"null"}],"default":null,"description":"Destination used for shipping or delivery pricing and tax. Omit for pickup, digital, and service-booking fulfillment."}},"required":["type"],"title":"UcpQuoteFulfillmentRequest","type":"object"},"UcpQuoteRequest":{"additionalProperties":false,"description":"UCP-native request for an expiring merchant quote.\n\nBuyer identity, signals, attribution, free-form intent, and provisional\neligibility references are accepted as normal UCP request context. Only\ncoarse location hints, a relevant fulfillment address, and those opaque\nreferences enter the signed pricing request.","properties":{"catalog_item_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Catalog item to quote. Provide it alone for the default variant, or with catalog_variant_id to pin an exact variant.","title":"Catalog Item Id"},"catalog_variant_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Exact catalog variant to quote. It may be supplied alone or alongside catalog_item_id.","title":"Catalog Variant Id"},"quantity":{"default":1,"description":"How many units to quote.","maximum":1000,"minimum":1,"title":"Quantity","type":"integer"},"booking":{"anyOf":[{"discriminator":{"mapping":{"appointment":"#/components/schemas/AppointmentBookingRequest","quantity":"#/components/schemas/QuantityBookingRequest","scheduled_class":"#/components/schemas/ScheduledClassBookingRequest","stay":"#/components/schemas/StayBookingRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/QuantityBookingRequest"},{"$ref":"#/components/schemas/AppointmentBookingRequest"},{"$ref":"#/components/schemas/ScheduledClassBookingRequest"},{"$ref":"#/components/schemas/StayBookingRequest"}]},{"type":"null"}],"default":null,"description":"Exact dates, times, occupancy, resource, or rate plan to price. Omit only for an asynchronous price-on-request listing.","title":"Booking"},"dev.openmerchant.customizations":{"description":"Customization selections resolved and bound to every resulting offer.","items":{"$ref":"#/components/schemas/UcpCustomizationGroupRequest"},"maxItems":50,"title":"Dev.Openmerchant.Customizations","type":"array"},"buyer":{"anyOf":[{"$ref":"#/components/schemas/UcpBuyer"},{"type":"null"}],"default":null,"description":"Buyer contact retained for fulfillment. Identity fields are not forwarded to merchant inventory pricing."},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpQuoteContext"},{"type":"null"}],"default":null,"description":"UCP context. Only optional language and coarse country, region, or postal hints plus merchant-verifiable eligibility references may enter pricing; intent is excluded."},"fulfillment":{"anyOf":[{"$ref":"#/components/schemas/UcpQuoteFulfillmentRequest"},{"type":"null"}],"default":null,"description":"Optional fulfillment constraint and destination. Listings that require a shipping or delivery address must provide it under fulfillment.address; other listings may omit fulfillment."},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Accepted UCP signals; never forwarded to inventory pricing."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Accepted UCP attribution; never forwarded to inventory pricing."},"message":{"anyOf":[{"maxLength":5000,"type":"string"},{"type":"null"}],"default":null,"description":"Free-form merchant note. It is not an inventory pricing input and cannot affect a binding offer.","title":"Message"},"dev.openmerchant.price_proposal":{"anyOf":[{"$ref":"#/components/schemas/QuotePriceProposal"},{"type":"null"}],"default":null,"description":"A unit price the buyer proposes. Answered in the quote's `dev.openmerchant.negotiation` block. It can only lower the price, never extends an offer's deadline, and a quote may make a limited number of them."}},"title":"UcpQuoteRequest","type":"object"},"AgenticQuoteStatus":{"description":"Lifecycle of one buyer-owned, merchant-authoritative quote.","enum":["requested","priced","unavailable","requires_input","declined","failed","expired","consumed"],"title":"AgenticQuoteStatus","type":"string"},"AppliedPromotionLineRead":{"description":"What one applied promotion took off one line.","properties":{"line_key":{"description":"Position key of the line within its basket, such as line_0.","title":"Line Key","type":"string"},"discount_amount":{"description":"Discount on this line, in minor units of the charged currency.","title":"Discount Amount","type":"integer"}},"required":["line_key","discount_amount"],"title":"AppliedPromotionLineRead","type":"object"},"AppliedPromotionRead":{"description":"One seller promotion as applied to a quote offer, checkout, or order.\n\nThe buyer-facing view of a claim. It deliberately says nothing about the\ncampaign — not its id, caps, remaining redemptions, or other arms. The\nbuyer is told what they were offered and until when. The campaign id\nstays on merchant-facing API responses and webhooks.","properties":{"claim_id":{"description":"This buyer's claim for the offer (`om_agpc_…`). Unique to this basket, written with `expires_at`, and never reused. A quote, checkout, and order for the same issuance share this id.","title":"Claim Id","type":"string"},"title":{"description":"Name the seller gave the promotion.","title":"Title","type":"string"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"Currency discount_amount is in."},"discount_amount":{"description":"Total discount from this promotion, in minor units.","title":"Discount Amount","type":"integer"},"expires_at":{"description":"Instant the promotional price stops being valid. It was fixed when the offer was made and is never extended, by a refresh or otherwise.","format":"date-time","title":"Expires At","type":"string"},"reserved":{"description":"Whether the promotion is reserved for this buyer. False for an anonymous quote: the price is honored only while the campaign still has capacity when the order is created.","title":"Reserved","type":"boolean"},"redeemed":{"description":"Whether a payment has redeemed this promotion.","title":"Redeemed","type":"boolean"},"terms":{"description":"One plain sentence an agent can relay to the person it is buying for: what is offered and until when.","title":"Terms","type":"string"},"lines":{"description":"The discount per line it applied to.","items":{"$ref":"#/components/schemas/AppliedPromotionLineRead"},"title":"Lines","type":"array"}},"required":["claim_id","title","currency","discount_amount","expires_at","reserved","redeemed","terms","lines"],"title":"AppliedPromotionRead","type":"object"},"AppointmentBookingSnapshot":{"additionalProperties":false,"description":"A resolved appointment: exact start, end, duration, and assignment.","properties":{"type":{"const":"appointment","default":"appointment","description":"Discriminator selecting the resolved appointment shape.","title":"Type","type":"string"},"starts_at":{"description":"Exact instant the appointment begins.","examples":["2026-09-01T15:00:00Z"],"format":"date-time","title":"Starts At","type":"string"},"ends_at":{"description":"Exact instant it ends. Always `starts_at + duration_minutes`; never an input, so the two can never disagree.","examples":["2026-09-01T16:00:00Z"],"format":"date-time","title":"Ends At","type":"string"},"duration_minutes":{"description":"Resolved length of the appointment.","maximum":10080,"minimum":1,"title":"Duration Minutes","type":"integer"},"party_size":{"default":1,"description":"People the appointment was booked for.","maximum":1000,"minimum":1,"title":"Party Size","type":"integer"},"resource_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Resource the appointment was assigned to, if any.","examples":["res_anna"],"title":"Resource Id"},"resource_name":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing name of that resource at booking time.","examples":["Anna"],"title":"Resource Name"},"timezone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"IANA timezone the appointment was scheduled in.","examples":["America/Los_Angeles"],"title":"Timezone"}},"required":["starts_at","ends_at","duration_minutes"],"title":"AppointmentBookingSnapshot","type":"object"},"PublicMppCustomizationSelectionRead":{"description":"One customization selection snapshotted on an order or quote.","properties":{"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Group the selection came from, when it is still published.","examples":["om_agcg_milk"],"title":"Group Id"},"choice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Choice that was selected, when it is still published.","examples":["om_agcc_oat"],"title":"Choice Id"},"group_name":{"description":"Group name snapshotted at purchase, so later edits cannot rewrite it.","examples":["Milk"],"title":"Group Name","type":"string"},"choice_label":{"description":"Choice label snapshotted at purchase.","examples":["Oat milk"],"title":"Choice Label","type":"string"},"quantity":{"description":"How many of the choice were applied.","title":"Quantity","type":"integer"},"price_delta_cents":{"description":"Per-unit price effect of the choice, in minor units.","title":"Price Delta Cents","type":"integer"},"pricing_basis":{"$ref":"#/components/schemas/AgenticCustomizationPricingBasis","description":"Whether the delta applied per line or per selected unit."},"amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Total contribution of this selection to the line, in minor units.","title":"Amount Cents"}},"required":["group_name","choice_label","quantity","price_delta_cents","pricing_basis"],"title":"PublicMppCustomizationSelectionRead","type":"object"},"PublicMppQuoteItemRead":{"description":"The listing a quote was requested for (snapshot).","properties":{"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"SKU of the listing the quote covers.","examples":["ESP-1-L"],"title":"Sku"},"name":{"description":"Listing name snapshotted when the quote was raised — authoritative even if the catalog later changes.","examples":["Espresso — Large"],"title":"Name","type":"string"},"catalog_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Catalog item the quote covers.","examples":["om_agci_4c1a"],"title":"Catalog Item Id"},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Exact variant the quote covers.","examples":["om_agcv_9d10"],"title":"Variant Id"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Variant name snapshotted when the quote was raised.","examples":["Large"],"title":"Variant Name"},"variant_options":{"description":"Option axis / value pairs identifying that variant.","items":{"$ref":"#/components/schemas/PublicMppVariantOptionRead"},"title":"Variant Options","type":"array"},"customizations":{"description":"Customization selections captured with the quote request.","items":{"$ref":"#/components/schemas/PublicMppCustomizationSelectionRead"},"title":"Customizations","type":"array"}},"required":["name"],"title":"PublicMppQuoteItemRead","type":"object"},"PublicMppQuoteMessageRead":{"description":"One machine-readable note about a quote or its offers.\n\nUsed by the refresh path to say ``price_changed`` (with the previous\ntotal) or ``booking_unavailable`` — never to silently substitute.","properties":{"code":{"description":"Machine-readable note code.","examples":["price_changed","booking_unavailable"],"title":"Code","type":"string"},"message":{"description":"Human-readable explanation of the same note.","title":"Message","type":"string"},"offer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"The offer the note is about, when it targets one.","examples":["om_agqo_5e8b"],"title":"Offer Id"},"previous_total_amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"For `price_changed`: what the total was before the refresh, in minor units.","title":"Previous Total Amount Cents"}},"required":["code","message"],"title":"PublicMppQuoteMessageRead","type":"object"},"PublicMppVariantOptionRead":{"description":"One finite option selection identifying a catalog variant.","properties":{"option_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Identifier of the option axis, when the merchant publishes one.","examples":["om_agco_size"],"title":"Option Id"},"option_name":{"description":"Buyer-facing name of the option axis.","examples":["Size"],"title":"Option Name","type":"string"},"value_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Identifier of the selected value on that axis.","examples":["om_agov_large"],"title":"Value Id"},"value_label":{"description":"Buyer-facing label of the selected value.","examples":["Large"],"title":"Value Label","type":"string"}},"required":["option_name","value_label"],"title":"PublicMppVariantOptionRead","type":"object"},"QuantityBookingSnapshot":{"additionalProperties":false,"description":"Resolved ordinary-units line.","properties":{"type":{"const":"quantity","default":"quantity","description":"Discriminator marking a resolved ordinary-units line.","title":"Type","type":"string"}},"title":"QuantityBookingSnapshot","type":"object"},"QuoteNegotiationRead":{"additionalProperties":false,"description":"What became of the unit price a buyer proposed on this quote.","properties":{"proposed_unit_amount":{"description":"The unit price last proposed, in minor units.","title":"Proposed Unit Amount","type":"integer"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"Currency of the proposal: the market's own."},"outcome":{"anyOf":[{"$ref":"#/components/schemas/QuoteProposalOutcome"},{"type":"null"}],"default":null,"description":"The answer. `accepted`: the offer is at or below the proposal. `countered`: too low, and the offer is the seller's lowest price instead. `declined`: too low, and the offer stands where it was. `not_negotiable`: nothing on this quote takes proposals. `forwarded`: the merchant prices this quote and received the proposal; the offer is their answer. Null while the quote is still being priced. The offers are always authoritative: buy the price an offer states, never the price proposed."},"rounds_used":{"description":"Proposals this quote has made so far.","minimum":0,"title":"Rounds Used","type":"integer"}},"required":["proposed_unit_amount","currency","rounds_used"],"title":"QuoteNegotiationRead","type":"object"},"QuoteNextAction":{"description":"Machine-readable action a buyer may take from the current quote state.","enum":["purchase","poll","resubmit"],"title":"QuoteNextAction","type":"string"},"QuoteOfferAvailabilityStatus":{"description":"Whether the exact booking behind an offer can still be sold.","enum":["available","unavailable","unknown"],"title":"QuoteOfferAvailabilityStatus","type":"string"},"QuoteProposalOutcome":{"description":"What became of the unit price a buyer proposed on a quote.\n\n``ACCEPTED`` means the offer is at or below the proposal. ``COUNTERED``\nmeans the proposal was too low and the offer is the seller's lowest price\ninstead. ``DECLINED`` means it was too low and the offer stands where it\nwas. ``NOT_NEGOTIABLE`` means nothing on this quote takes proposals.\n``FORWARDED`` means the merchant prices this quote themselves: the\nproposal was passed to their pricing, and the offer's price is the answer.","enum":["accepted","countered","declined","not_negotiable","forwarded"],"title":"QuoteProposalOutcome","type":"string"},"ScheduledClassBookingSnapshot":{"additionalProperties":false,"description":"A resolved class reservation carrying the occurrence's own times.","properties":{"type":{"const":"scheduled_class","default":"scheduled_class","description":"Discriminator selecting the resolved class-reservation shape.","title":"Type","type":"string"},"occurrence_id":{"description":"The reserved session.","examples":["om_agco_7f21"],"maxLength":64,"minLength":1,"title":"Occurrence Id","type":"string"},"starts_at":{"description":"When the session begins. Owned by the occurrence, not the buyer.","examples":["2026-09-01T18:00:00Z"],"format":"date-time","title":"Starts At","type":"string"},"ends_at":{"description":"When the session ends.","examples":["2026-09-01T19:00:00Z"],"format":"date-time","title":"Ends At","type":"string"},"party_size":{"default":1,"description":"Seats reserved on the occurrence.","maximum":1000,"minimum":1,"title":"Party Size","type":"integer"},"timezone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"IANA timezone the session is scheduled in.","examples":["America/Los_Angeles"],"title":"Timezone"}},"required":["occurrence_id","starts_at","ends_at"],"title":"ScheduledClassBookingSnapshot","type":"object"},"StayBookingSnapshot":{"additionalProperties":false,"description":"A resolved stay: exact dates, rooms, occupancy, and plan.","properties":{"type":{"const":"stay","default":"stay","description":"Discriminator selecting the resolved stay shape.","title":"Type","type":"string"},"check_in":{"description":"First night of the reserved stay.","examples":["2026-09-01"],"format":"date","title":"Check In","type":"string"},"check_out":{"description":"Departure day of the reserved stay.","examples":["2026-09-04"],"format":"date","title":"Check Out","type":"string"},"nights":{"description":"Nights between check-in and check-out; derived, never an input.","maximum":365,"minimum":1,"title":"Nights","type":"integer"},"rooms":{"default":1,"description":"Rooms reserved for every night of the range.","maximum":100,"minimum":1,"title":"Rooms","type":"integer"},"guests":{"$ref":"#/components/schemas/GuestCounts","description":"Occupancy the rate was priced for."},"rate_plan_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Rate plan the stay resolved to.","examples":["rp_flex"],"title":"Rate Plan Id"},"timezone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"IANA timezone the property calendar is kept in.","examples":["America/Los_Angeles"],"title":"Timezone"}},"required":["check_in","check_out","nights"],"title":"StayBookingSnapshot","type":"object"},"TaxTreatment":{"description":"How tax is represented in a quote or aggregate price snapshot.\n\n``itemized`` has one or more numeric tax lines, ``included`` discloses tax\ntextually inside the subtotal without adding it again, and\n``not_applicable`` has no tax. ``mixed`` and ``unspecified`` are reserved\nfor aggregate or backfilled internal history.","enum":["itemized","included","not_applicable","mixed","unspecified"],"title":"TaxTreatment","type":"string"},"UcpAvailableInstrument":{"additionalProperties":false,"description":"Instrument category available through one payment handler.","properties":{"type":{"$ref":"#/components/schemas/UcpPaymentInstrumentType","description":"Instrument type the handler accepts."},"constraints":{"anyOf":[{"$ref":"#/components/schemas/UcpPublishedCardConstraints"},{"type":"null"}],"default":null,"description":"Tokenization constraints for card instruments."}},"required":["type"],"title":"UcpAvailableInstrument","type":"object"},"UcpCommerceMessage":{"additionalProperties":false,"description":"Typed UCP business outcome returned with an HTTP-success response.","properties":{"type":{"$ref":"#/components/schemas/UcpCommerceMessageType","description":"Whether this note reports an error or is informational."},"code":{"$ref":"#/components/schemas/UcpCommerceMessageCode","description":"Machine-readable code the client can branch on."},"content":{"description":"Human-readable explanation of the note.","title":"Content","type":"string"},"severity":{"anyOf":[{"$ref":"#/components/schemas/UcpCommerceMessageSeverity"},{"type":"null"}],"default":null,"description":"For errors: whether a corrected retry can succeed. Absent on informational notes."},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"JSON path into the request that the note is about.","examples":["line_items[0].quantity"],"title":"Path"}},"required":["type","code","content"],"title":"UcpCommerceMessage","type":"object"},"UcpCommerceMessageCode":{"description":"Business outcome codes returned by hosted UCP commerce.","enum":["not_found","unauthorized","purchasing_unavailable","item_unavailable","invalid","expired","canceled","payment_failed","total_below_minimum_charge","total_above_maximum_charge","payment_currency_unsupported","unsupported_item","unsupported_fulfillment","fulfillment_unavailable","merchant_limit_exceeded","booking_offer_expired","promotion_expired","promotion_redemption_limit_reached","requires_buyer_email","requires_buyer_phone","requires_buyer_name","requires_buyer_dob","requires_fulfillment_address","field_required","eligibility_invalid","requote_required","market_changed","identity_required","identity_optional","insufficient_scope","checkout_completing","quantity_unit_mismatch"],"title":"UcpCommerceMessageCode","type":"string"},"UcpCommerceMessageSeverity":{"description":"Whether a platform can recover from a business outcome.","enum":["recoverable","unrecoverable","requires_buyer_review"],"title":"UcpCommerceMessageSeverity","type":"string"},"UcpCommerceMessageType":{"description":"Kinds of checkout business-outcome messages.","enum":["error","warning","info"],"title":"UcpCommerceMessageType","type":"string"},"UcpCommerceResponseMetadata":{"additionalProperties":false,"description":"Negotiated UCP metadata attached to commerce responses.\n\n``version`` is the release negotiated for the request. It also decides\nthe wire shape of every release-sensitive field in the same response (see\n:mod:`ucp_wire`), so the stated release and the rendered one cannot differ.","properties":{"version":{"$ref":"#/components/schemas/UcpProtocolVersion","description":"UCP protocol release this response conforms to."},"status":{"$ref":"#/components/schemas/UcpResponseStatus","default":"success","description":"Whether the request succeeded or failed."},"capabilities":{"additionalProperties":{"items":{"$ref":"#/components/schemas/UcpEntityReference"},"type":"array"},"description":"Capabilities exercised while producing this response.","propertyNames":{"$ref":"#/components/schemas/UcpCapabilityName"},"title":"Capabilities","type":"object"},"payment_handlers":{"anyOf":[{"additionalProperties":{"items":{"$ref":"#/components/schemas/UcpPaymentHandler"},"type":"array"},"propertyNames":{"$ref":"#/components/schemas/UcpPaymentHandlerName"},"type":"object"},{"type":"null"}],"default":null,"description":"Handlers accepted at checkout completion, keyed by handler name. Present on checkout responses.","title":"Payment Handlers"}},"required":["version","capabilities"],"title":"UcpCommerceResponseMetadata","type":"object"},"UcpPaymentHandler":{"additionalProperties":false,"description":"Declaration of the Stripe payment handler this seller advertises.\n\nCarries either Stripe's unified ``com.stripe.payments`` config or the\nproprietary SPT config, depending on which namespace is advertised. The\nversion is a plain string because a handler contract versions separately\nfrom the UCP protocol release, and must match the profile's declaration.","properties":{"id":{"$ref":"#/components/schemas/UcpPaymentHandlerId","default":"procura_stripe_spt","description":"Identifier of the payment handler."},"version":{"description":"Version of the handler contract this declaration conforms to.","maxLength":64,"minLength":1,"title":"Version","type":"string"},"spec":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the specification the handler implements.","title":"Spec"},"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the JSON Schema describing the handler's config.","title":"Schema"},"available_instruments":{"description":"Instrument types this handler accepts at completion.","items":{"$ref":"#/components/schemas/UcpAvailableInstrument"},"title":"Available Instruments","type":"array"},"config":{"anyOf":[{"$ref":"#/components/schemas/UcpStripePaymentsHandlerConfig"},{"$ref":"#/components/schemas/UcpStripeSptHandlerConfig"}],"description":"Handler configuration; its shape follows the advertised namespace.","title":"Config"}},"required":["version","available_instruments","config"],"title":"UcpPaymentHandler","type":"object"},"UcpQuoteOfferRead":{"additionalProperties":false,"description":"UCP projection of one binding quote offer.","properties":{"id":{"description":"Stable identifier used to select this exact offer.","title":"Id","type":"string"},"catalog_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Hosted catalog item this offer prices, when catalog-backed.","title":"Catalog Item Id"},"catalog_variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Resolved hosted catalog variant this offer prices.","title":"Catalog Variant Id"},"booking_snapshot":{"anyOf":[{"discriminator":{"mapping":{"appointment":"#/components/schemas/AppointmentBookingSnapshot","quantity":"#/components/schemas/QuantityBookingSnapshot","scheduled_class":"#/components/schemas/ScheduledClassBookingSnapshot","stay":"#/components/schemas/StayBookingSnapshot"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/QuantityBookingSnapshot"},{"$ref":"#/components/schemas/AppointmentBookingSnapshot"},{"$ref":"#/components/schemas/ScheduledClassBookingSnapshot"},{"$ref":"#/components/schemas/StayBookingSnapshot"}]},{"type":"null"}],"default":null,"description":"Exact booking, occupancy, resource, and rate plan this price binds; null for quantity inventory.","title":"Booking Snapshot"},"pricing_model":{"$ref":"#/components/schemas/AgenticPricingModel","description":"How the total derives from the rate for this offer."},"unit_count":{"description":"Billable units the total covers — nights, seats, or sessions.","title":"Unit Count","type":"integer"},"unit_amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Rate per billable unit, in minor units. Null when the merchant priced the offer as a whole.","title":"Unit Amount Cents"},"total_amount_cents":{"description":"Authoritative final payable amount in currency minor units.","title":"Total Amount Cents","type":"integer"},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency shared by the offer and every total entry."},"tax_treatment":{"$ref":"#/components/schemas/TaxTreatment","description":"How tax is represented by the ordered totals."},"totals":{"description":"Canonical subtotals projected to UCP names without recomputation or reordering; description becomes display_text and amount is preserved.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"availability_status":{"$ref":"#/components/schemas/QuoteOfferAvailabilityStatus","description":"Availability assertion for this exact offer."},"available_quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Units currently available for this offer, when quantity is known.","title":"Available Quantity"},"fulfillment":{"$ref":"#/components/schemas/PublicQuoteFulfillmentRead","description":"Exactly one fulfillment choice resolved for this offer."},"merchant_offer_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Merchant-authored reference for support and reconciliation.","title":"Merchant Offer Reference"},"expires_at":{"description":"Deadline after which the offer must be refreshed before checkout.","format":"date-time","title":"Expires At","type":"string"},"dev.openmerchant.promotion":{"anyOf":[{"$ref":"#/components/schemas/AppliedPromotionRead"},{"type":"null"}],"default":null,"description":"Seller promotion this offer was priced with, if any. Its discount is already in `totals` as `items_discount`. When present, `expires_at` is the promotion's fixed deadline, and refreshing the quote does not move it."},"superseded_by_offer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Set on a refreshed offer; buy the successor instead.","examples":["om_agqo_7a3f"],"title":"Superseded By Offer Id"}},"required":["id","pricing_model","unit_count","total_amount_cents","currency","tax_treatment","totals","availability_status","fulfillment","expires_at"],"title":"UcpQuoteOfferRead","type":"object"},"UcpQuoteResourceRead":{"additionalProperties":false,"description":"Protocol-native quote resource beneath the UCP response envelope.","properties":{"id":{"description":"Quote identifier; poll and purchase against it.","examples":["om_agq_9d10"],"title":"Id","type":"string"},"merchant_slug":{"description":"Storefront the quote was raised against.","examples":["coffee-cart"],"title":"Merchant Slug","type":"string"},"status":{"$ref":"#/components/schemas/AgenticQuoteStatus","description":"Where the quote stands. `requested` means keep polling; `priced` means the offers below are buyable."},"item":{"$ref":"#/components/schemas/PublicMppQuoteItemRead","description":"Snapshot of the listing the quote was requested for."},"quantity":{"description":"How many units the quote covers.","title":"Quantity","type":"integer"},"booking":{"anyOf":[{"discriminator":{"mapping":{"appointment":"#/components/schemas/AppointmentBookingRequest","quantity":"#/components/schemas/QuantityBookingRequest","scheduled_class":"#/components/schemas/ScheduledClassBookingRequest","stay":"#/components/schemas/StayBookingRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/QuantityBookingRequest"},{"$ref":"#/components/schemas/AppointmentBookingRequest"},{"$ref":"#/components/schemas/ScheduledClassBookingRequest"},{"$ref":"#/components/schemas/StayBookingRequest"}]},{"type":"null"}],"default":null,"description":"The typed booking request this quote answers; null for non-bookable listings.","title":"Booking"},"offers":{"description":"Current immutable price alternatives. Empty means responder pricing is pending or the requested supply was unavailable.","items":{"$ref":"#/components/schemas/UcpQuoteOfferRead"},"title":"Offers","type":"array"},"messages":{"description":"Machine-readable notes such as `price_changed`.","items":{"$ref":"#/components/schemas/PublicMppQuoteMessageRead"},"title":"Messages","type":"array"},"decline_note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Merchant explanation when the quote was declined.","title":"Decline Note"},"dev.openmerchant.negotiation":{"anyOf":[{"$ref":"#/components/schemas/QuoteNegotiationRead"},{"type":"null"}],"default":null,"description":"The answer to the price this quote proposed; null when it never proposed one."},"next":{"anyOf":[{"$ref":"#/components/schemas/QuoteNextAction"},{"type":"null"}],"default":null,"description":"Typed next action for the current quote state."},"resolution_generation":{"description":"Monotonic merchant-resolution attempt number for this quote.","minimum":1,"title":"Resolution Generation","type":"integer"},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Order created from this quote, once consumed.","examples":["om_agmo_2f7c"],"title":"Order Id"},"created_at":{"description":"When the quote was raised.","examples":["2026-09-01T15:00:00Z"],"format":"date-time","title":"Created At","type":"string"}},"required":["id","merchant_slug","status","item","quantity","resolution_generation","created_at"],"title":"UcpQuoteResourceRead","type":"object"},"UcpTotal":{"additionalProperties":false,"description":"One signed monetary total in integer ISO-4217 minor units.\n\nUCP represents discounts as negative contributions and every other core\ntotal as a non-negative contribution. The non-total entries must sum to\nthe single ``total`` entry; the commerce service enforces that invariant.","properties":{"type":{"$ref":"#/components/schemas/UcpTotalType","description":"Contribution category. Exactly one subtotal and one total are required; tax and fee categories may repeat."},"amount":{"description":"Signed integer in the checkout currency minor unit. Discounts are non-positive; all other categories are non-negative.","title":"Amount","type":"integer"},"display_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing label. For OpenMerchant quotes this is the canonical subtotal description, preserved in provider order.","title":"Display Text"}},"required":["type","amount"],"title":"UcpTotal","type":"object"},"UcpTotalType":{"description":"Core total categories emitted by the hosted commerce surface.","enum":["subtotal","items_discount","discount","fulfillment","tax","fee","tip","total"],"title":"UcpTotalType","type":"string"},"UcpQuoteRead":{"additionalProperties":false,"description":"Response body for ``dev.openmerchant.quotes`` operations.\n\n``quote`` projects the same persisted quote used by MPP while retaining\nUCP field names: canonical ``subtotals`` become ordered ``totals`` and\n``description`` becomes ``display_text``. The envelope adds negotiated\nresponse metadata and typed business-outcome messages.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCommerceResponseMetadata","description":"Protocol metadata: version, status, capabilities, and payment handlers."},"quote":{"$ref":"#/components/schemas/UcpQuoteResourceRead","description":"The quote and its current priced alternatives."},"dev.openmerchant.market":{"description":"OpenMerchant market in which this quote was priced.","title":"Dev.Openmerchant.Market","type":"string"},"messages":{"description":"Business-outcome notes about this response.","items":{"$ref":"#/components/schemas/UcpCommerceMessage"},"title":"Messages","type":"array"}},"required":["ucp","quote","dev.openmerchant.market"],"title":"UcpQuoteRead","type":"object"},"UcpBookingExtensionRequest":{"additionalProperties":false,"description":"The OpenMerchant offer-selection extension on a request line.\n\nA quoted quantity or bookable line carries only the offer reference: the\noffer already pins the exact selection, price, fulfillment, and expiry,\nso restating those terms on the wire could only introduce disagreement.\n``type`` remains a cheap client-intent assertion; a mismatch is reported\nrather than ignored.","properties":{"type":{"$ref":"#/components/schemas/BookingType","description":"Booking family this line buys. Anything but `quantity` must name a quote offer."},"quote_offer_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Required for every merchant-authoritative quoted line.","examples":["om_agqo_5e8b"],"title":"Quote Offer Id"}},"required":["type"],"title":"UcpBookingExtensionRequest","type":"object"},"UcpLineItemRequest":{"additionalProperties":false,"description":"One requested variant line, including OpenMerchant extensions.","properties":{"id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Server-assigned line identifier. On update, send the id from the latest read to keep that line and its reservation; omit it to add a new line. An id that is not a line of this cart or checkout, or that appears twice, is rejected. Ignored on create.","title":"Id"},"item":{"$ref":"#/components/schemas/UcpLineItemRequestItem","description":"Which catalog variant this line buys."},"quantity":{"default":1,"description":"How many of the variant to buy on this line.","maximum":1000,"minimum":1,"title":"Quantity","type":"integer"},"dev.openmerchant.customizations":{"description":"OpenMerchant extension: order-time customization selections for this line. A base-UCP client omits it.","items":{"$ref":"#/components/schemas/UcpCustomizationGroupRequest"},"maxItems":50,"title":"Dev.Openmerchant.Customizations","type":"array"},"dev.openmerchant.booking":{"anyOf":[{"$ref":"#/components/schemas/UcpBookingExtensionRequest"},{"type":"null"}],"default":null,"description":"OpenMerchant offer-selection extension. Omit for ordinary catalog-priced quantity lines; include a quantity offer when the merchant authored the price or availability."}},"required":["item"],"title":"UcpLineItemRequest","type":"object"},"UcpLineItemRequestItem":{"additionalProperties":false,"description":"Minimal item reference accepted in cart and checkout requests.","properties":{"id":{"description":"Catalog variant id, or the merchant SKU, identifying what to buy.","examples":["om_agcv_9d10"],"maxLength":120,"title":"Id","type":"string"},"quantity_unit":{"anyOf":[{"$ref":"#/components/schemas/UcpQuantityUnit"},{"type":"null"}],"default":null,"description":"Optional assertion of the sale basis `quantity` is counted in. Every line here is sold each (`C62`); asserting another basis is refused with a recoverable `quantity_unit_mismatch`."}},"required":["id"],"title":"UcpLineItemRequestItem","type":"object"},"UcpQuantityUnit":{"additionalProperties":false,"description":"A sale-basis descriptor (UCP ``quantity_unit``) a platform may assert.\n\nEvery OpenMerchant line is sold ``each`` (UN/CEFACT ``C62`` at scale 0),\nwhich responses encode by omitting the descriptor. A platform that asserts\na descriptor is checked against that basis by its machine identity\n(``unit`` and effective ``scale``); ``display_text`` and ``increment`` are\nnever compared.","properties":{"unit":{"description":"Stable unit identifier, preferably a UN/CEFACT Rec20 code.","examples":["C62"],"maxLength":32,"minLength":1,"title":"Unit","type":"string"},"scale":{"default":0,"description":"One step is 10^-scale of the unit; 0 when omitted.","maximum":15,"minimum":0,"title":"Scale","type":"integer"},"display_text":{"description":"Printable unit label; not part of the unit identity.","examples":["each"],"maxLength":64,"minLength":1,"title":"Display Text","type":"string"},"increment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Ordering granularity in steps; not part of the unit identity.","title":"Increment"}},"required":["unit","display_text"],"title":"UcpQuantityUnit","type":"object"},"UcpCartRequest":{"additionalProperties":false,"description":"Create or full-replacement update request for a UCP cart.","properties":{"id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Existing cart to replace; omit to create a new one.","title":"Id"},"line_items":{"description":"The complete set of lines the cart should contain.","items":{"$ref":"#/components/schemas/UcpLineItemRequest"},"maxItems":100,"minItems":1,"title":"Line Items","type":"array"},"buyer":{"anyOf":[{"$ref":"#/components/schemas/UcpBuyer"},{"type":"null"}],"default":null,"description":"Buyer contact retained for fulfillment, never for pricing."},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogContext"},{"type":"null"}],"default":null,"description":"Provisional localization hints. Only language and coarse country / region / postal enter pricing."},"dev.openmerchant.eligibility_references":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuoteEligibilityReference"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"description":"OpenMerchant extension: entitlement references the merchant must validate before applying a benefit.","title":"Dev.Openmerchant.Eligibility References"},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Accepted UCP signals; never forwarded to inventory pricing."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Accepted UCP attribution; never forwarded to inventory pricing."}},"required":["line_items"],"title":"UcpCartRequest","type":"object"},"BookingHoldStatus":{"description":"Lifecycle of one expiring booking hold.\n\n``HELD`` is the only state that occupies supply. ``CONSUMED`` means the\norder or checkout completed and the seat/night became a booking;\n``RELEASED`` is an explicit give-back; ``EXPIRED`` is the sweep's\ngive-back after the TTL lapsed.","enum":["held","consumed","released","expired"],"title":"BookingHoldStatus","type":"string"},"BookingStatus":{"description":"Mutable post-order lifecycle of one confirmed booking.\n\nDistinct from the order-line booking snapshot, which is immutable:\nthis row is what changes when the provider confirms, the service is\ndelivered, or the buyer no-shows.","enum":["pending","confirmed","completed","cancelled","failed","no_show"],"title":"BookingStatus","type":"string"},"UcpBookingExtensionRead":{"additionalProperties":false,"description":"The OpenMerchant offer-selection extension on a response line.\n\nCarries the exact resolved quantity or booking selection plus, depending\non the stage, the offer's expiry (cart), a booking hold (checkout), or the\nresulting booking lifecycle (order). A client that did not negotiate the\nextension still gets a valid base UCP line.","properties":{"booking_snapshot":{"description":"The exact server-resolved booking for this line.","discriminator":{"mapping":{"appointment":"#/components/schemas/AppointmentBookingSnapshot","quantity":"#/components/schemas/QuantityBookingSnapshot","scheduled_class":"#/components/schemas/ScheduledClassBookingSnapshot","stay":"#/components/schemas/StayBookingSnapshot"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/QuantityBookingSnapshot"},{"$ref":"#/components/schemas/AppointmentBookingSnapshot"},{"$ref":"#/components/schemas/ScheduledClassBookingSnapshot"},{"$ref":"#/components/schemas/StayBookingSnapshot"}],"title":"Booking Snapshot"},"quote_offer_id":{"description":"The priced offer this line consumed.","examples":["om_agqo_5e8b"],"title":"Quote Offer Id","type":"string"},"offer_expires_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"Cart stage: when this price must be re-resolved.","title":"Offer Expires At"},"reservation":{"anyOf":[{"$ref":"#/components/schemas/UcpReservationRead"},{"type":"null"}],"default":null,"description":"Checkout stage: the hold occupying the supply."},"booking":{"anyOf":[{"$ref":"#/components/schemas/UcpLineBookingRead"},{"type":"null"}],"default":null,"description":"Order stage: live booking lifecycle state."}},"required":["booking_snapshot","quote_offer_id"],"title":"UcpBookingExtensionRead","type":"object"},"UcpItemRead":{"additionalProperties":false,"description":"Resolved item snapshot attached to a UCP line.","properties":{"id":{"description":"Catalog variant this line bought.","examples":["om_agcv_9d10"],"title":"Id","type":"string"},"title":{"description":"Buyer-facing listing name, snapshotted at the time of purchase.","examples":["Espresso — Large"],"title":"Title","type":"string"},"price":{"description":"Unit price in the checkout currency minor unit.","examples":[500],"minimum":0,"title":"Price","type":"integer"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Primary image for the listing.","title":"Image Url"}},"required":["id","title","price"],"title":"UcpItemRead","type":"object"},"UcpLineBookingRead":{"additionalProperties":false,"description":"Booking lifecycle published on an order line.","properties":{"status":{"$ref":"#/components/schemas/BookingStatus","description":"Where the booking stands right now."},"confirmation_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Merchant-facing reference once the provider confirmed.","title":"Confirmation Reference"}},"required":["status"],"title":"UcpLineBookingRead","type":"object"},"UcpLineItemRead":{"additionalProperties":false,"description":"Resolved and priced cart or checkout line item.","properties":{"id":{"description":"Line identifier; send it back to update or remove the line.","title":"Id","type":"string"},"item":{"$ref":"#/components/schemas/UcpItemRead","description":"What this line bought."},"quantity":{"description":"How many units the line covers.","minimum":1,"title":"Quantity","type":"integer"},"totals":{"description":"Ordered authoritative breakdown for this resolved line.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"dev.openmerchant.booking":{"anyOf":[{"$ref":"#/components/schemas/UcpBookingExtensionRead"},{"type":"null"}],"default":null,"description":"OpenMerchant offer-selection extension; null only for lines that did not select a quote offer."}},"required":["id","item","quantity","totals"],"title":"UcpLineItemRead","type":"object"},"UcpLink":{"additionalProperties":false,"description":"Buyer-facing legal or support link.","properties":{"type":{"$ref":"#/components/schemas/UcpLinkType","description":"What the link is for — terms, privacy, buyer support."},"url":{"description":"Absolute URL of the linked document.","title":"Url","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing label for the link.","title":"Title"}},"required":["type","url"],"title":"UcpLink","type":"object"},"UcpLinkType":{"description":"Well-known legal link types published during checkout.","enum":["privacy_policy","terms_of_service","refund_policy"],"title":"UcpLinkType","type":"string"},"UcpReservationRead":{"additionalProperties":false,"description":"The live hold protecting a checkout line's bookable supply.","properties":{"id":{"description":"Identifier of the inventory hold protecting this line.","title":"Id","type":"string"},"status":{"$ref":"#/components/schemas/BookingHoldStatus","description":"Whether the hold is active, released, or already consumed."},"expires_at":{"description":"When the hold lapses and the supply returns to the pool.","examples":["2026-09-01T15:15:00Z"],"format":"date-time","title":"Expires At","type":"string"}},"required":["id","status","expires_at"],"title":"UcpReservationRead","type":"object"},"UcpCartRead":{"additionalProperties":false,"description":"Response body for UCP Cart operations.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCommerceResponseMetadata","description":"Protocol metadata: version, status, capabilities, and payment handlers."},"id":{"description":"Cart identifier; pass it as `cart_id` to check out.","title":"Id","type":"string"},"dev.openmerchant.market":{"description":"OpenMerchant market in which this cart was priced.","title":"Dev.Openmerchant.Market","type":"string"},"line_items":{"description":"Resolved lines, each with its own price breakdown.","items":{"$ref":"#/components/schemas/UcpLineItemRead"},"title":"Line Items","type":"array"},"buyer":{"anyOf":[{"$ref":"#/components/schemas/UcpBuyer"},{"type":"null"}],"default":null,"description":"Buyer contact captured on the cart."},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency every total on the cart is in."},"totals":{"description":"Ordered cart breakdown ending in one authoritative final total.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"messages":{"description":"Business-outcome notes about this response.","items":{"$ref":"#/components/schemas/UcpCommerceMessage"},"title":"Messages","type":"array"},"links":{"description":"Merchant legal and support links to surface to the buyer.","items":{"$ref":"#/components/schemas/UcpLink"},"title":"Links","type":"array"},"continue_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Where the buyer can finish this cart outside the protocol.","title":"Continue Url"},"expires_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"When the cart and its held prices lapse.","examples":["2026-09-01T15:15:00Z"],"title":"Expires At"}},"required":["ucp","id","dev.openmerchant.market","line_items","currency","totals"],"title":"UcpCartRead","type":"object"},"UcpBusinessLocationDestination":{"additionalProperties":false,"description":"A merchant pickup location offered on a UCP pickup method.\n\nBusiness-authored and response-only: a platform picks one through the\nmethod's ``selected_destination_id``.","properties":{"id":{"description":"Canonical merchant store identifier.","examples":["store_pdx_01"],"title":"Id","type":"string"},"name":{"description":"Buyer-facing store name.","examples":["Coffee Cart — Pearl District"],"title":"Name","type":"string"},"address":{"anyOf":[{"$ref":"#/components/schemas/UcpPostalAddress"},{"type":"null"}],"default":null,"description":"Where the store is, for buyer orientation."},"type":{"const":"business_location","default":"business_location","description":"Destination discriminator.","title":"Type","type":"string"}},"required":["id","name"],"title":"UcpBusinessLocationDestination","type":"object"},"UcpFulfillment":{"additionalProperties":false,"description":"Checkout fulfillment state.","properties":{"methods":{"description":"Fulfillment methods covering the lines on this checkout.","items":{"$ref":"#/components/schemas/UcpFulfillmentMethod"},"title":"Methods","type":"array"}},"title":"UcpFulfillment","type":"object"},"UcpFulfillmentGroup":{"additionalProperties":false,"description":"Merchant-generated group of lines sharing fulfillment options.","properties":{"id":{"description":"Group identifier.","examples":["grp_1"],"title":"Id","type":"string"},"line_item_ids":{"description":"Lines shipped together under one chosen option.","items":{"type":"string"},"title":"Line Item Ids","type":"array"},"options":{"description":"Options available for this group of lines.","items":{"$ref":"#/components/schemas/UcpFulfillmentOption"},"title":"Options","type":"array"},"selected_option_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Which option the buyer chose; null until one is selected.","title":"Selected Option Id"}},"required":["id","line_item_ids"],"title":"UcpFulfillmentGroup","type":"object"},"UcpFulfillmentMethod":{"additionalProperties":false,"description":"Shipping or pickup method selected for checkout lines.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Method identifier, assigned by the server on read.","title":"Id"},"type":{"$ref":"#/components/schemas/UcpFulfillmentMethodType","description":"How the lines reach the buyer — shipping, pickup, or digital."},"line_item_ids":{"description":"Lines this method covers; empty means every line.","items":{"type":"string"},"title":"Line Item Ids","type":"array"},"destinations":{"description":"Candidate destinations — addresses for shipping, stores for pickup.","items":{"anyOf":[{"$ref":"#/components/schemas/UcpShippingAddressDestination"},{"$ref":"#/components/schemas/UcpBusinessLocationDestination"}]},"title":"Destinations","type":"array"},"selected_destination_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Which destination the buyer chose, by its `id`.","examples":["home"],"title":"Selected Destination Id"},"groups":{"description":"How the lines split across separately-shipped groups.","items":{"$ref":"#/components/schemas/UcpFulfillmentGroup"},"title":"Groups","type":"array"}},"required":["type"],"title":"UcpFulfillmentMethod","type":"object"},"UcpFulfillmentMethodType":{"description":"Fulfillment method vocabulary supported by UCP checkout.","enum":["shipping","pickup","digital"],"title":"UcpFulfillmentMethodType","type":"string"},"UcpFulfillmentOption":{"additionalProperties":false,"description":"Merchant-authoritative fulfillment option for one checkout group.","properties":{"id":{"description":"Option identifier, quoted back as `selected_option_id`.","examples":["ship_standard"],"title":"Id","type":"string"},"title":{"description":"Buyer-facing name of the option.","examples":["Standard shipping"],"title":"Title","type":"string"},"description":{"anyOf":[{"$ref":"#/components/schemas/UcpDescription"},{"type":"null"}],"default":null,"description":"Delivery estimate or other buyer-facing detail. Sessions at the first implemented release receive the plain text as a string.","examples":[{"plain":"Arrives in 3–5 business days"}]},"carrier":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Who performs the shipment, when the option names a carrier.","examples":["fedex"],"title":"Carrier"},"earliest_fulfillment_time":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"Earliest ISO 8601 instant this option is expected to arrive or be ready; null when the merchant publishes no promise.","examples":["2026-09-08T00:00:00Z"],"title":"Earliest Fulfillment Time"},"latest_fulfillment_time":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"Latest ISO 8601 instant this option is expected to arrive or be ready; null when the merchant publishes no promise.","examples":["2026-09-11T00:00:00Z"],"title":"Latest Fulfillment Time"},"totals":{"description":"What choosing this option adds to the order total.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"}},"required":["id","title","totals"],"title":"UcpFulfillmentOption","type":"object"},"UcpShippingAddressDestination":{"additionalProperties":false,"description":"A postal destination on a UCP shipping method.\n\nPlatforms may omit ``id`` and ``type`` when sending an address; responses\nalways carry both. The first implemented release had no ``type``; its\ndestination schemas are open, so the extra member is harmless there.","properties":{"extended_address":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Apartment, suite, floor, or other secondary address line.","examples":["Suite 400"],"title":"Extended Address"},"street_address":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Street number and name.","examples":["811 NW Couch St"],"title":"Street Address"},"address_locality":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"City or town.","examples":["Portland"],"title":"Address Locality"},"address_region":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"State, province, or region.","examples":["OR"],"title":"Address Region"},"address_country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"default":null,"description":"ISO-3166-1 alpha-2 country code."},"postal_code":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Postal or ZIP code.","examples":["97209"],"title":"Postal Code"},"first_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Recipient given name at this address.","examples":["Riley"],"title":"First Name"},"last_name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Recipient family name at this address.","examples":["Chen"],"title":"Last Name"},"phone_number":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Contact phone for this delivery.","examples":["+15035550123"],"title":"Phone Number"},"id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Destination handle. Responses always include it; a request may omit it for a single address, which is then selected.","examples":["home"],"title":"Id"},"type":{"const":"shipping_address","default":"shipping_address","description":"Destination discriminator.","title":"Type","type":"string"}},"title":"UcpShippingAddressDestination","type":"object"},"UcpCheckoutRequest":{"additionalProperties":false,"description":"Create or full-replacement update request for a UCP checkout.","properties":{"id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Existing cart to replace; omit to create a new one.","title":"Id"},"line_items":{"description":"Lines to check out. With `cart_id` the cart's lines are used and lines sent here are ignored, so leave it empty.","items":{"$ref":"#/components/schemas/UcpLineItemRequest"},"maxItems":100,"title":"Line Items","type":"array"},"buyer":{"anyOf":[{"$ref":"#/components/schemas/UcpBuyer"},{"type":"null"}],"default":null,"description":"Buyer contact retained for fulfillment, never for pricing."},"context":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogContext"},{"type":"null"}],"default":null,"description":"Provisional localization hints. Only language and coarse country / region / postal enter pricing."},"dev.openmerchant.eligibility_references":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuoteEligibilityReference"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"description":"OpenMerchant extension: entitlement references the merchant must validate before applying a benefit.","title":"Dev.Openmerchant.Eligibility References"},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Accepted UCP signals; never forwarded to inventory pricing."},"attribution":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogAttribution"},{"type":"null"}],"default":null,"description":"Accepted UCP attribution; never forwarded to inventory pricing."},"cart_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Cart to convert into this checkout. The cart's lines, market, and currency are used, and so is its buyer when the cart has one; this request's versions of those fields are ignored. While the cart has an active checkout, that checkout is returned instead of a new one; update it to make changes.","title":"Cart Id"},"fulfillment":{"anyOf":[{"$ref":"#/components/schemas/UcpFulfillment"},{"type":"null"}],"default":null,"description":"Chosen delivery methods and destinations."}},"title":"UcpCheckoutRequest","type":"object"},"UcpPaymentCredential":{"additionalProperties":false,"description":"One-time Stripe payment credential; never used in response models.","properties":{"type":{"$ref":"#/components/schemas/UcpPaymentCredentialType","description":"Credential family accepted by the selected Stripe handler."},"token":{"description":"The bearer credential itself. Accepted only on completion and never echoed in a response.","maxLength":512,"minLength":8,"title":"Token","type":"string"},"expires_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"Expiration returned by Stripe for tokenized card credentials. Shared Payment Token expiry remains provider-managed.","title":"Expires At"}},"required":["type","token"],"title":"UcpPaymentCredential","type":"object"},"UcpPaymentCredentialType":{"description":"Credential discriminators accepted at checkout completion.\n\n``STRIPE_PAYMENT_TOKEN`` covers either a checkout-scoped card token or a\nShared Payment Token carried by Stripe's ``com.stripe.payments`` handler.\n``SHARED_PAYMENT_TOKEN`` is the proprietary spelling retained so a\ncheckout quoted before the namespace cutover can still complete.","enum":["stripe_payment_token","shared_payment_token"],"title":"UcpPaymentCredentialType","type":"string"},"UcpPaymentInstrument":{"additionalProperties":false,"description":"Selected payment instrument supplied only during completion.","properties":{"id":{"description":"Caller-assigned handle for this instrument within the request.","examples":["card_1"],"maxLength":120,"title":"Id","type":"string"},"handler_id":{"$ref":"#/components/schemas/UcpPaymentHandlerId","description":"Which published payment handler settles this instrument. Must be one the checkout response advertised."},"type":{"$ref":"#/components/schemas/UcpPaymentInstrumentType","description":"Instrument type, which the handler must list as available."},"selected":{"default":true,"description":"Whether to actually charge this instrument.","title":"Selected","type":"boolean"},"billing_address":{"anyOf":[{"$ref":"#/components/schemas/UcpPostalAddress"},{"type":"null"}],"default":null,"description":"Billing address for the instrument, when the handler needs one."},"credential":{"$ref":"#/components/schemas/UcpPaymentCredential","description":"The bearer credential authorizing the charge."}},"required":["id","handler_id","type","credential"],"title":"UcpPaymentInstrument","type":"object"},"UcpPaymentRequest":{"additionalProperties":false,"description":"Payment instruments supplied to complete a checkout.","properties":{"instruments":{"description":"Instruments to settle the checkout with; at least one is required.","items":{"$ref":"#/components/schemas/UcpPaymentInstrument"},"maxItems":10,"minItems":1,"title":"Instruments","type":"array"}},"required":["instruments"],"title":"UcpPaymentRequest","type":"object"},"UcpCheckoutCompleteRequest":{"additionalProperties":false,"description":"Completion request containing the selected one-time payment instrument.","properties":{"payment":{"anyOf":[{"$ref":"#/components/schemas/UcpPaymentRequest"},{"type":"null"}],"default":null,"description":"Required for positive totals; accepted and ignored for free orders."},"signals":{"anyOf":[{"$ref":"#/components/schemas/UcpCatalogSignals"},{"type":"null"}],"default":null,"description":"Accepted UCP signals, forwarded for fraud decisions only."}},"title":"UcpCheckoutCompleteRequest","type":"object"},"UcpCheckoutStatus":{"description":"Checkout resource states defined by the UCP checkout capability.","enum":["incomplete","requires_escalation","ready_for_complete","complete_in_progress","completed","canceled"],"title":"UcpCheckoutStatus","type":"string"},"UcpOrderConfirmation":{"additionalProperties":false,"description":"Order reference embedded in a completed checkout.","properties":{"id":{"description":"Identifier of the order the checkout produced.","examples":["om_agmo_2f7c"],"title":"Id","type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing order number, when the merchant assigns one.","examples":["#1042"],"title":"Label"},"permalink_url":{"description":"Stable URL where the buyer can view the order.","title":"Permalink Url","type":"string"}},"required":["id","permalink_url"],"title":"UcpOrderConfirmation","type":"object"},"UcpCheckoutRead":{"additionalProperties":false,"description":"Response body for UCP Checkout operations.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCommerceResponseMetadata","description":"Protocol metadata: version, status, capabilities, and payment handlers."},"id":{"description":"Checkout identifier; complete or cancel against it.","title":"Id","type":"string"},"dev.openmerchant.market":{"description":"OpenMerchant market in which this checkout was priced.","title":"Dev.Openmerchant.Market","type":"string"},"line_items":{"description":"Resolved lines, each with its own locked price breakdown.","items":{"$ref":"#/components/schemas/UcpLineItemRead"},"title":"Line Items","type":"array"},"status":{"$ref":"#/components/schemas/UcpCheckoutStatus","description":"Where the checkout stands — ready, completed, or cancelled."},"buyer":{"anyOf":[{"$ref":"#/components/schemas/UcpBuyer"},{"type":"null"}],"default":null,"description":"Buyer contact captured on the checkout."},"fulfillment":{"anyOf":[{"$ref":"#/components/schemas/UcpFulfillment"},{"type":"null"}],"default":null,"description":"Chosen delivery methods and destinations."},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency every total on the checkout is in."},"totals":{"description":"Locked ordered checkout breakdown. Checkout consumes quote-backed amounts without repricing them.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"messages":{"description":"Business-outcome notes about this response.","items":{"$ref":"#/components/schemas/UcpCommerceMessage"},"title":"Messages","type":"array"},"links":{"description":"Merchant legal and support links to surface before payment.","items":{"$ref":"#/components/schemas/UcpLink"},"title":"Links","type":"array"},"expires_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"When the locked prices lapse and the checkout must be rebuilt.","examples":["2026-09-01T15:15:00Z"],"title":"Expires At"},"continue_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Where the buyer can finish this checkout outside the protocol.","title":"Continue Url"},"order":{"anyOf":[{"$ref":"#/components/schemas/UcpOrderConfirmation"},{"type":"null"}],"default":null,"description":"The resulting order; present once the checkout completes."},"dev.openmerchant.promotions":{"description":"OpenMerchant extension: seller promotions these totals were priced with. Their discounts are already in the `items_discount` total; this names them and gives the fixed deadline the promotional price is valid until. A lapsed one is reported as a `promotion_expired` message instead.","items":{"$ref":"#/components/schemas/AppliedPromotionRead"},"title":"Dev.Openmerchant.Promotions","type":"array"}},"required":["ucp","id","dev.openmerchant.market","line_items","status","currency","totals","links"],"title":"UcpCheckoutRead","type":"object"},"UcpExpectationLineItem":{"additionalProperties":false,"description":"Line quantity assigned to a fulfillment expectation.","properties":{"id":{"description":"Order line this expectation covers.","title":"Id","type":"string"},"quantity":{"description":"Units of that line included in this shipment.","minimum":1,"title":"Quantity","type":"integer"}},"required":["id","quantity"],"title":"UcpExpectationLineItem","type":"object"},"UcpFulfillmentEvent":{"additionalProperties":false,"description":"Typed minimal fulfillment event reserved for later lifecycle updates.","properties":{"id":{"description":"Event identifier.","title":"Id","type":"string"},"type":{"$ref":"#/components/schemas/UcpFulfillmentEventType","description":"What happened — shipped, delivered, ready for pickup, fulfilled."},"occurred_at":{"description":"When it happened.","examples":["2026-09-03T18:00:00Z"],"format":"date-time","title":"Occurred At","type":"string"}},"required":["id","type","occurred_at"],"title":"UcpFulfillmentEvent","type":"object"},"UcpFulfillmentEventType":{"description":"Fulfillment event vocabulary reserved for order lifecycle updates.","enum":["shipped","delivered","ready_for_pickup","fulfilled"],"title":"UcpFulfillmentEventType","type":"string"},"UcpOrderExpectation":{"additionalProperties":false,"description":"Buyer-facing expectation for how selected order lines will arrive.","properties":{"id":{"description":"Expectation identifier.","title":"Id","type":"string"},"line_items":{"description":"Which lines, and how many units, this shipment covers.","items":{"$ref":"#/components/schemas/UcpExpectationLineItem"},"title":"Line Items","type":"array"},"method_type":{"$ref":"#/components/schemas/UcpFulfillmentMethodType","description":"How these lines reach the buyer."},"destination":{"$ref":"#/components/schemas/UcpPostalAddress","description":"Where they are going."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing note about this shipment.","title":"Description"},"fulfillable_on":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Earliest date the merchant expects to fulfill, ISO-8601.","examples":["2026-09-03"],"title":"Fulfillable On"}},"required":["id","line_items","method_type","destination"],"title":"UcpOrderExpectation","type":"object"},"UcpOrderFulfillment":{"additionalProperties":false,"description":"Order fulfillment expectations and append-only event list.","properties":{"expectations":{"description":"What the merchant intends to ship, and where.","items":{"$ref":"#/components/schemas/UcpOrderExpectation"},"title":"Expectations","type":"array"},"events":{"description":"What has actually happened so far, in chronological order.","items":{"$ref":"#/components/schemas/UcpFulfillmentEvent"},"title":"Events","type":"array"}},"title":"UcpOrderFulfillment","type":"object"},"UcpOrderLineItem":{"additionalProperties":false,"description":"Current post-purchase state of one line item.","properties":{"id":{"description":"Line identifier on the order.","title":"Id","type":"string"},"item":{"$ref":"#/components/schemas/UcpItemRead","description":"What this line bought."},"quantity":{"$ref":"#/components/schemas/UcpOrderQuantity","description":"Ordered, current, and fulfilled unit counts for the line."},"totals":{"description":"Immutable ordered monetary breakdown for this purchased line.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"status":{"$ref":"#/components/schemas/UcpOrderLineStatus","description":"Where this line stands in fulfillment."},"dev.openmerchant.booking":{"anyOf":[{"$ref":"#/components/schemas/UcpBookingExtensionRead"},{"type":"null"}],"default":null,"description":"OpenMerchant booking extension carrying the immutable purchased booking and its live booking state."}},"required":["id","item","quantity","totals","status"],"title":"UcpOrderLineItem","type":"object"},"UcpOrderLineStatus":{"description":"Protocol-defined derived status of one UCP order line.","enum":["processing","partial","fulfilled","removed"],"title":"UcpOrderLineStatus","type":"string"},"UcpOrderQuantity":{"additionalProperties":false,"description":"Original, active, and fulfilled quantity counters for an order line.","properties":{"original":{"description":"Units ordered when the order was placed.","minimum":0,"title":"Original","type":"integer"},"total":{"description":"Units currently on the line after any adjustments.","minimum":0,"title":"Total","type":"integer"},"fulfilled":{"description":"Units already shipped, picked up, or delivered.","minimum":0,"title":"Fulfilled","type":"integer"}},"required":["original","total","fulfilled"],"title":"UcpOrderQuantity","type":"object"},"UcpOrderRead":{"additionalProperties":false,"description":"Full UCP Order snapshot returned synchronously and by webhook.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCommerceResponseMetadata","description":"Protocol metadata: version, status, capabilities, and payment handlers."},"id":{"description":"Order identifier.","examples":["om_agmo_2f7c"],"title":"Id","type":"string"},"dev.openmerchant.market":{"description":"OpenMerchant market in which this order was priced.","title":"Dev.Openmerchant.Market","type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Buyer-facing order number, when the merchant assigns one.","examples":["#1042"],"title":"Label"},"checkout_id":{"description":"The checkout this order was created from.","title":"Checkout Id","type":"string"},"permalink_url":{"description":"Stable URL where the buyer can view the order.","title":"Permalink Url","type":"string"},"line_items":{"description":"Immutable purchased lines with their fulfillment state.","items":{"$ref":"#/components/schemas/UcpOrderLineItem"},"title":"Line Items","type":"array"},"fulfillment":{"$ref":"#/components/schemas/UcpOrderFulfillment","description":"What the merchant intends to ship, and what has happened."},"currency":{"$ref":"#/components/schemas/CurrencyCode","description":"ISO-4217 currency every total on the order is in."},"totals":{"description":"Canonical ordered final-price ledger returned on reads and order webhooks.","items":{"$ref":"#/components/schemas/UcpTotal"},"title":"Totals","type":"array"},"messages":{"description":"Business-outcome notes about this response.","items":{"$ref":"#/components/schemas/UcpCommerceMessage"},"title":"Messages","type":"array"}},"required":["ucp","id","dev.openmerchant.market","checkout_id","permalink_url","line_items","fulfillment","currency","totals"],"title":"UcpOrderRead","type":"object"},"UcpCommerceErrorResponse":{"additionalProperties":false,"description":"Recoverable UCP business outcome returned as HTTP 200.\n\nQuote pricing uses ``field_required`` messages for additional country,\nregion, postal, fulfillment-address, or eligibility-reference inputs and\n``eligibility_invalid`` when the merchant rejects an opaque reference.\nNo priced offer is produced for either outcome.","properties":{"ucp":{"$ref":"#/components/schemas/UcpCommerceResponseMetadata","description":"Protocol metadata: version, status, capabilities, and payment handlers."},"messages":{"description":"Why the request failed, and whether a corrected retry can succeed.","items":{"$ref":"#/components/schemas/UcpCommerceMessage"},"title":"Messages","type":"array"},"continue_url":{"description":"Where the buyer can complete the action outside the protocol.","title":"Continue Url","type":"string"}},"required":["ucp","messages","continue_url"],"title":"UcpCommerceErrorResponse","type":"object"},"UcpProtocolErrorResponse":{"additionalProperties":false,"description":"Transport/authentication error returned with a non-2xx HTTP status.","properties":{"code":{"description":"Machine-readable protocol error code.","examples":["invalid_request"],"title":"Code","type":"string"},"content":{"description":"Human-readable explanation of the protocol error.","title":"Content","type":"string"},"continue_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Web page where the buyer can finish without the agent, returned with negotiation failures such as `version_unsupported`.","title":"Continue Url"}},"required":["code","content"],"title":"UcpProtocolErrorResponse","type":"object"},"UcpCredentialProviderSessionCreateRequest":{"additionalProperties":false,"description":"Request from a verified UCP platform for one buyer-facing frame session.","properties":{"buyer_origin":{"description":"Exact HTTP(S) origin that will embed the hosted frame.","examples":["https://buyer.example"],"maxLength":2048,"minLength":1,"title":"Buyer Origin","type":"string"}},"required":["buyer_origin"],"title":"UcpCredentialProviderSessionCreateRequest","type":"object"},"UcpCredentialProviderMessageContract":{"additionalProperties":false,"description":"postMessage names used to initialize the frame and receive its result.","properties":{"initialize":{"$ref":"#/components/schemas/UcpCredentialProviderMessageType","default":"procura:ucp_credential_initialize","description":"Parent-to-frame message carrying the checkout-scoped client secret."},"ready":{"$ref":"#/components/schemas/UcpCredentialProviderMessageType","default":"procura:ucp_credential_provider_ready","description":"Frame-to-parent message indicating that initialization may begin."},"complete":{"$ref":"#/components/schemas/UcpCredentialProviderMessageType","default":"procura:ucp_credential_complete","description":"Frame-to-parent message carrying the checkout-ready UCP card instrument."},"error":{"$ref":"#/components/schemas/UcpCredentialProviderMessageType","default":"procura:error","description":"Frame-to-parent message reporting a credential collection failure."}},"title":"UcpCredentialProviderMessageContract","type":"object"},"UcpCredentialProviderMessageType":{"description":"Cross-origin messages used by the hosted UCP credential frame.","enum":["procura:ucp_credential_initialize","procura:ucp_credential_provider_ready","procura:ucp_credential_complete","procura:error"],"title":"UcpCredentialProviderMessageType","type":"string"},"UcpCredentialProviderSessionCreateResponse":{"additionalProperties":false,"description":"One-time session bootstrap material returned to the external platform.","properties":{"id":{"description":"Opaque identifier for this checkout-scoped provider session.","title":"Id","type":"string"},"client_secret":{"description":"Short-lived bearer secret. Keep it in memory and deliver it to the iframe through the initialize postMessage; never put it in a URL.","title":"Client Secret","type":"string"},"frame_url":{"description":"Hosted card-collection frame URL safe to place in an iframe source.","title":"Frame Url","type":"string"},"expires_at":{"description":"UTC time after which the provider session and secret are rejected.","format":"date-time","title":"Expires At","type":"string"},"message_contract":{"$ref":"#/components/schemas/UcpCredentialProviderMessageContract","description":"Exact postMessage type names used by the hosted frame protocol."}},"required":["id","client_secret","frame_url","expires_at"],"title":"UcpCredentialProviderSessionCreateResponse","type":"object"},"RateLimitDimension":{"description":"Stable caller identity used to partition a rate-limit bucket.","enum":["user","ip","account","platform","customer"],"title":"RateLimitDimension","type":"string"},"RateLimitExceededResponse":{"description":"Response returned when a caller exhausts a rate-limit bucket.","properties":{"detail":{"description":"Stable human-readable error summary.","title":"Detail","type":"string"},"dimension":{"$ref":"#/components/schemas/RateLimitDimension","description":"Caller identity dimension used by the exhausted bucket."},"limit":{"description":"Maximum requests in the window.","exclusiveMinimum":0,"title":"Limit","type":"integer"},"window_seconds":{"description":"Bucket window length in seconds.","exclusiveMinimum":0,"title":"Window Seconds","type":"integer"},"retry_after":{"description":"Seconds until the caller should retry.","exclusiveMinimum":0,"title":"Retry After","type":"integer"}},"required":["detail","dimension","limit","window_seconds","retry_after"],"title":"RateLimitExceededResponse","type":"object"}}}}