Skip to main content
Glama

create_checkout

Phase 1 of 2 in the purchase flow. Convert a cart (or inline items + customer) into a checkout. Customer name, email, and phone are required. Returns checkout_id. No payment link is minted yet — call complete_checkout for that. Use update_checkout to correct customer details before finalising.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsNo
cart_idNoEither cart_id or items required
customerNo
payment_methodNoDefault 'yoco'

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
ap2No
itemsNo
statusYes
messageNo
currencyYes
customerNo
next_stepNo
total_zarYes
created_atNo
item_countNo
checkout_idYes
payment_urlNo
payment_methodNo
payment_statusNo
provider_referenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "cart_id"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "customer": {
      +        "required": [
      +          "name",
      +          "email",
      +          "phone"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "items",
      +      "customer"
      +    ]
      +  }
      +]
    • addedInput schema / properties / customer / properties / email / description
      Added value: +"Real customer email, checked before checkout creation"
    • addedInput schema / properties / customer / properties / name / description
      Added value: +"Real customer name, checked before checkout creation"
    • addedInput schema / properties / customer / properties / phone / description
      Added value: +"South African phone number, checked before checkout creation"
    • removedInput schema / properties / customer / required
      Removed value: -[
      -  "name",
      -  "email",
      -  "phone"
      -]
    • addedInput schema / properties / items / items
      Added value: +{
      +  "properties": {
      +    "colour": {
      +      "description": "Exact available colour; validate with configure_product before adding",
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "finish": {
      +      "description": "Optional pricing finish for aluminium Venetians",
      +      "type": "string"
      +    },
      +    "height_mm": {
      +      "description": "Actual ordered drop in millimetres",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "mount_type": {
      +      "description": "Use inside for recess fit or outside for face fix",
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "product_id": {
      +      "description": "product_id returned by search_catalog or lookup_catalog",
      +      "type": "string"
      +    },
      +    "product_name": {
      +      "description": "Optional; server resolves the catalogue name",
      +      "type": "string"
      +    },
      +    "quantity": {
      +      "description": "Number of blinds; defaults to 1",
      +      "type": "number"
      +    },
      +    "total_price_zar": {
      +      "description": "Optional, ignored: server recalculates all totals",
      +      "type": "number"
      +    },
      +    "unit_price_zar": {
      +      "description": "Optional, ignored: server recalculates all prices",
      +      "type": "number"
      +    },
      +    "width_mm": {
      +      "description": "Actual ordered width in millimetres",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "product_id",
      +    "width_mm",
      +    "height_mm",
      +    "colour",
      +    "mount_type"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / items / minItems
      Added value: +1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "ap2": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "merchant_authorization": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "merchant_authorization"
      +      ],
      +      "type": "object"
      +    },
      +    "checkout_id": {
      +      "type": "string"
      +    },
      +    "created_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "currency": {
      +      "const": "ZAR",
      +      "type": "string"
      +    },
      +    "customer": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "address": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "city": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "email": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "phone": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [],
      +      "type": "object"
      +    },
      +    "item_count": {
      +      "type": "number"
      +    },
      +    "items": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "colour": {
      +                "type": "string"
      +              },
      +              "finish": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "height": {
      +                "type": "number"
      +              },
      +              "mountType": {
      +                "type": "string"
      +              },
      +              "price": {
      +                "type": "number"
      +              },
      +              "productId": {
      +                "type": "string"
      +              },
      +              "productName": {
      +                "type": "string"
      +              },
      +              "quantity": {
      +                "type": "number"
      +              },
      +              "total": {
      +                "type": "number"
      +              },
      +              "width": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "next_step": {
      +      "type": "string"
      +    },
      +    "payment_method": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "payment_status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "payment_url": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "provider_reference": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "total_zar": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "checkout_id",
      +    "status",
      +    "total_zar",
      +    "currency"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources