naftiko: 1.0.0-alpha2 info: label: VTex Checkout API — Order Placement description: 'VTex Checkout API — Order Placement. 3 operations. Lead operation: VTex Process order. Self-contained Naftiko capability covering one Vtex business surface.' tags: - Vtex - Order Placement created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: VTEX_API_KEY: VTEX_API_KEY capability: consumes: - type: http namespace: checkout-order-placement baseUri: https://{accountName}.{environment}.com.br description: VTex Checkout API — Order Placement business capability. Self-contained, no shared references. resources: - name: api-checkout-pub-gatewayCallback-orderGroup path: /api/checkout/pub/gatewayCallback/{orderGroup} operations: - name: processorder method: POST description: VTex Process order outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orderGroup in: path type: string description: Order group. It is the part of the `orderId` that comes before the `-`. For example, the `orderGroup` of the order `123456789-01` is `123456789`. required: true - name: Cookie in: header type: string description: VTEX Chekout cookie associated with a specific order. Use the `Vtex_CHKO_Auth` and the `CheckoutDataAccess` cookies returned by the [Place order](https://develo required: true - name: api-checkout-pub-orderForm-orderFormId-transaction path: /api/checkout/pub/orderForm/{orderFormId}/transaction operations: - name: placeorderfromexistingorderform method: POST description: VTex Place order from an existing cart outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orderFormId in: path type: string description: ID of the `orderForm` corresponding to the cart from which to place the order. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-checkout-pub-orders path: /api/checkout/pub/orders operations: - name: placeorder method: PUT description: VTex Place order outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sc in: query type: integer description: Trade Policy (Sales Channel) identification. This query can be used to create an order for a specific sales channel. - name: body in: body type: object description: Request body (JSON). required: false authentication: type: apikey key: X-VTEX-API-AppKey value: '{{env.VTEX_API_KEY}}' placement: header exposes: - type: rest namespace: checkout-order-placement-rest port: 8080 description: REST adapter for VTex Checkout API — Order Placement. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/checkout/pub/gatewaycallback/{ordergroup} name: api-checkout-pub-gatewaycallback-ordergroup description: REST surface for api-checkout-pub-gatewayCallback-orderGroup. operations: - method: POST name: processorder description: VTex Process order call: checkout-order-placement.processorder with: orderGroup: rest.orderGroup Cookie: rest.Cookie outputParameters: - type: object mapping: $. - path: /v1/api/checkout/pub/orderform/{orderformid}/transaction name: api-checkout-pub-orderform-orderformid-transaction description: REST surface for api-checkout-pub-orderForm-orderFormId-transaction. operations: - method: POST name: placeorderfromexistingorderform description: VTex Place order from an existing cart call: checkout-order-placement.placeorderfromexistingorderform with: orderFormId: rest.orderFormId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/checkout/pub/orders name: api-checkout-pub-orders description: REST surface for api-checkout-pub-orders. operations: - method: PUT name: placeorder description: VTex Place order call: checkout-order-placement.placeorder with: sc: rest.sc body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: checkout-order-placement-mcp port: 9090 transport: http description: MCP adapter for VTex Checkout API — Order Placement. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: vtex-process-order description: VTex Process order hints: readOnly: false destructive: false idempotent: false call: checkout-order-placement.processorder with: orderGroup: tools.orderGroup Cookie: tools.Cookie outputParameters: - type: object mapping: $. - name: vtex-place-order-existing-cart description: VTex Place order from an existing cart hints: readOnly: false destructive: false idempotent: false call: checkout-order-placement.placeorderfromexistingorderform with: orderFormId: tools.orderFormId body: tools.body outputParameters: - type: object mapping: $. - name: vtex-place-order description: VTex Place order hints: readOnly: false destructive: false idempotent: true call: checkout-order-placement.placeorder with: sc: tools.sc body: tools.body outputParameters: - type: object mapping: $.