Vendure · Capability

Vendure Shop API — Checkout

Vendure Shop API capability for completing checkout: set shipping and billing addresses, select eligible shipping methods, transition order state, add payments. Backed by the Shop GraphQL endpoint.

Vendure Shop API — Checkout is a Naftiko capability published by Vendure, one of 10 capabilities the APIs.io network indexes for this provider. It bundles 7 operations across the POST method rooted at /v1/checkout.

The capability includes 2 read-only operations and 5 state-changing operations. Lead operation: Set the shipping address on the active order. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Vendure, Shop, Checkout, and Payment.

Run with Naftiko VendureShopCheckoutPayment

What You Can Do

POST
Setordershippingaddress
/v1/checkout/shipping-address
POST
Setorderbillingaddress
/v1/checkout/billing-address
POST
Setordershippingmethod
/v1/checkout/shipping-method
POST
Eligibleshippingmethods
/v1/checkout/eligible-shipping-methods
POST
Eligiblepaymentmethods
/v1/checkout/eligible-payment-methods
POST
Transitionordertostate
/v1/checkout/transition
POST
Addpaymenttoorder
/v1/checkout/payment

MCP Tools

vendure-shop-set-shipping-address

Set the shipping address on the active order.

idempotent
vendure-shop-set-billing-address

Set the billing address on the active order.

idempotent
vendure-shop-set-shipping-method

Choose a shipping method.

idempotent
vendure-shop-eligible-shipping

List eligible shipping methods.

read-only idempotent
vendure-shop-eligible-payment

List eligible payment methods.

read-only idempotent
vendure-shop-transition-order

Transition the active order to a new state.

vendure-shop-add-payment

Add a payment to the active order.

Capability Spec

shop-checkout.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Vendure Shop API — Checkout
  description: >-
    Vendure Shop API capability for completing checkout: set shipping and
    billing addresses, select eligible shipping methods, transition order
    state, add payments. Backed by the Shop GraphQL endpoint.
  tags:
    - Vendure
    - Shop
    - Checkout
    - Payment
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
  - namespace: env
    keys:
      VENDURE_SHOP_API_URL: VENDURE_SHOP_API_URL
      VENDURE_AUTH_TOKEN: VENDURE_AUTH_TOKEN
capability:
  consumes:
    - type: http
      namespace: shop-checkout
      baseUri: '{{env.VENDURE_SHOP_API_URL}}'
      description: Vendure Shop GraphQL endpoint for checkout operations.
      resources:
        - name: shop-graphql
          path: /
          operations:
            - name: setOrderShippingAddress
              method: POST
              description: Set the shipping address on the active order.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: setOrderBillingAddress
              method: POST
              description: Set the billing address on the active order.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: setOrderShippingMethod
              method: POST
              description: Choose a shipping method on the active order.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: eligibleShippingMethods
              method: POST
              description: List eligible shipping methods for the active order.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: eligiblePaymentMethods
              method: POST
              description: List eligible payment methods for the active order.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: transitionOrderToState
              method: POST
              description: Transition the active order to a new state.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
            - name: addPaymentToOrder
              method: POST
              description: Add a payment to the active order using a payment method handler.
              outputRawFormat: json
              outputParameters: [ { name: result, type: object, value: $. } ]
              inputParameters: [ { name: body, in: body, type: object, required: true } ]
      authentication:
        type: bearer
        token: '{{env.VENDURE_AUTH_TOKEN}}'
  exposes:
    - type: rest
      namespace: shop-checkout-rest
      port: 8080
      description: REST adapter exposing checkout operations.
      resources:
        - path: /v1/checkout/shipping-address
          name: shipping-address
          operations:
            - method: POST
              name: setOrderShippingAddress
              call: shop-checkout.setOrderShippingAddress
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/billing-address
          name: billing-address
          operations:
            - method: POST
              name: setOrderBillingAddress
              call: shop-checkout.setOrderBillingAddress
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/shipping-method
          name: shipping-method
          operations:
            - method: POST
              name: setOrderShippingMethod
              call: shop-checkout.setOrderShippingMethod
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/eligible-shipping-methods
          name: eligible-shipping-methods
          operations:
            - method: POST
              name: eligibleShippingMethods
              call: shop-checkout.eligibleShippingMethods
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/eligible-payment-methods
          name: eligible-payment-methods
          operations:
            - method: POST
              name: eligiblePaymentMethods
              call: shop-checkout.eligiblePaymentMethods
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/transition
          name: transition
          operations:
            - method: POST
              name: transitionOrderToState
              call: shop-checkout.transitionOrderToState
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
        - path: /v1/checkout/payment
          name: payment
          operations:
            - method: POST
              name: addPaymentToOrder
              call: shop-checkout.addPaymentToOrder
              with: { body: rest.body }
              outputParameters: [ { type: object, mapping: $. } ]
    - type: mcp
      namespace: shop-checkout-mcp
      port: 9090
      transport: http
      description: MCP adapter — one tool per checkout operation.
      tools:
        - name: vendure-shop-set-shipping-address
          description: Set the shipping address on the active order.
          hints: { readOnly: false, destructive: false, idempotent: true }
          call: shop-checkout.setOrderShippingAddress
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-set-billing-address
          description: Set the billing address on the active order.
          hints: { readOnly: false, destructive: false, idempotent: true }
          call: shop-checkout.setOrderBillingAddress
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-set-shipping-method
          description: Choose a shipping method.
          hints: { readOnly: false, destructive: false, idempotent: true }
          call: shop-checkout.setOrderShippingMethod
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-eligible-shipping
          description: List eligible shipping methods.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: shop-checkout.eligibleShippingMethods
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-eligible-payment
          description: List eligible payment methods.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: shop-checkout.eligiblePaymentMethods
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-transition-order
          description: Transition the active order to a new state.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: shop-checkout.transitionOrderToState
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]
        - name: vendure-shop-add-payment
          description: Add a payment to the active order.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: shop-checkout.addPaymentToOrder
          with: { body: tools.body }
          outputParameters: [ { type: object, mapping: $. } ]