UCP Checker

ucp.create_checkout

Create a checkout cart from storefront line items and return payment requirements. When the order is confirmed, the response includes a full order summary (items, totals, addresses, carrier) and a portal_url the customer can use to view their order in the Odoo customer portal.

Schema

Input Schema

{
    "type": "object",
    "required": [
        "line_items"
    ],
    "properties": {
        "line_items": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "offer_id",
                    "quantity"
                ],
                "properties": {
                    "offer_id": {
                        "type": "string",
                        "description": "Always pass the product variant_id returned by ucp.search_products. Other identifiers are fallback only."
                    },
                    "quantity": {
                        "type": "number",
                        "description": "Quantity to purchase.",
                        "exclusiveMinimum": 0
                    }
                }
            },
            "minItems": 1,
            "description": "Products to add to the checkout. Each item must use offer_id set to the variant_id returned by ucp.search_products."
        },
        "billing_address": {
            "type": "object",
            "required": [
                "name",
                "email",
                "street",
                "city",
                "country_code"
            ],
            "properties": {
                "zip": {
                    "type": "string",
                    "description": "Postal or ZIP code."
                },
                "city": {
                    "type": "string",
                    "description": "City or locality."
                },
                "name": {
                    "type": "string",
                    "description": "Full recipient or billing contact name."
                },
                "email": {
                    "type": "string",
                    "description": "Contact email address."
                },
                "phone": {
                    "type": "string",
                    "description": "Contact phone number."
                },
                "street": {
                    "type": "string",
                    "description": "Primary street address line."
                },
                "street2": {
                    "type": "string",
                    "description": "Apartment, suite, landmark, or secondary address line."
                },
                "state_code": {
                    "type": "string",
                    "description": "State, province, or region code when available."
                },
                "country_code": {
                    "type": "string",
                    "maxLength": 2,
                    "minLength": 2,
                    "description": "ISO 3166-1 alpha-2 country code."
                }
            },
            "description": "Optional billing address. Required to confirm the order and create payment."
        },
        "shipping_address": {
            "type": "object",
            "required": [
                "name",
                "email",
                "street",
                "city",
                "country_code"
            ],
            "properties": {
                "zip": {
                    "type": "string",
                    "description": "Postal or ZIP code."
                },
                "city": {
                    "type": "string",
                    "description": "City or locality."
                },
                "name": {
                    "type": "string",
                    "description": "Full recipient or billing contact name."
                },
                "email": {
                    "type": "string",
                    "description": "Contact email address."
                },
                "phone": {
                    "type": "string",
                    "description": "Contact phone number."
                },
                "street": {
                    "type": "string",
                    "description": "Primary street address line."
                },
                "street2": {
                    "type": "string",
                    "description": "Apartment, suite, landmark, or secondary address line."
                },
                "state_code": {
                    "type": "string",
                    "description": "State, province, or region code when available."
                },
                "country_code": {
                    "type": "string",
                    "maxLength": 2,
                    "minLength": 2,
                    "description": "ISO 3166-1 alpha-2 country code."
                }
            },
            "description": "Optional shipping address. Defaults to billing_address when omitted."
        },
        "payment_provider_id": {
            "type": "integer",
            "description": "Optional Odoo payment provider ID. When omitted, the response lists available providers for the next step."
        }
    }
}
Verified Stores
1
Member Stores

Stores exposing the ucp.create_checkout tool

Weekly UCP Report

Get the agentic commerce digest every Monday

Real adoption data, ecosystem trends, new spec versions, and the stores that broke or recovered this week. Read by founders and engineers building the next generation of commerce.

Free forever No spam Unsubscribe anytime

View a sample report →

Weekly UCP Report
Issue #52 · Sep 28, 2026
+664
new verified stores
Verified rate
Latest spec
Cart capability