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.

No store we check lists this tool.

Input schema

As a store we check lists it in tools/list. Not a tool the spec's MCP binding defines at release 2026-08-25.

inputSchema
{
    "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."
        }
    }
}

Explore protocol data