---
updatedAt: 2026-09-07T11:13:40.000Z
agentTools:
  projectIndex: https://docs.nacelle.com/llms.txt
---

# Validates an order-checkout request.

This will validate and return an order-checkout based on the input parameters.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "description": "The Order Management API is used to manage orders in the Nacelle Order Management System. This API is currently experimental and is subject to change.\n",
    "title": "Order Management API (Experimental)",
    "version": "0.1.0"
  },
  "paths": {
    "/checkout/validate": {
      "post": {
        "description": "This will validate and return an order-checkout based on the input parameters.",
        "operationId": "validateCheckout",
        "parameters": [
          {
            "in": "header",
            "name": "X-Nacelle-Space-ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderCheckout"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OrderCheckout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCheckout"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "summary": "Validates an order-checkout request.",
        "tags": [
          "checkout"
        ]
      }
    }
  },
  "security": [
    {
      "oauth2": []
    }
  ],
  "servers": [
    {
      "url": "https://noms.api.nacelle.com/api/v1"
    }
  ],
  "components": {
    "responses": {
      "400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "404": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "422": {
        "description": "Unprocessable Entity",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://authimilate.api.nacelle.com/v1/token",
            "scopes": {
              "read": "Grants read access",
              "write": "Grants write access"
            }
          }
        }
      }
    },
    "schemas": {
      "AddressCheckout": {
        "properties": {
          "address1": {
            "description": "The first line of the address.",
            "example": "1234 Elm St",
            "maximum": 500,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Address1"
          },
          "address2": {
            "description": "The second line of the address.",
            "example": "Apt 567",
            "maximum": 500,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Address2"
          },
          "city": {
            "description": "The city of the address.",
            "example": "San Francisco",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "City"
          },
          "comment": {
            "description": "Additional comments about the address.",
            "example": "Please leave the package at the door.",
            "maximum": 1000,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Comment"
          },
          "country_iso2": {
            "description": "The ISO 2-letter country code.",
            "example": "US",
            "type": "string",
            "x-go-name": "CountryIso2"
          },
          "first_name": {
            "description": "First name",
            "example": "John",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "FirstName"
          },
          "id": {
            "description": "Unique identifier for the address.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "last_name": {
            "description": "Last name",
            "example": "Doe",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "LastName"
          },
          "postal_code": {
            "description": "The postal code.",
            "example": "94107",
            "maximum": 20,
            "minimum": 4,
            "type": "string",
            "x-go-name": "PostalCode"
          },
          "province": {
            "description": "The province of the address.",
            "example": "CA",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Province"
          },
          "state": {
            "description": "The state of the address.",
            "example": "CA",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "State"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "ClientData": {
        "properties": {
          "created_at": {
            "description": "Timestamp of when the client data was created.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "CreatedAt"
          },
          "id": {
            "description": "Unique identifier for client data.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "ip_address": {
            "description": "Client's IP address (IPv4 or IPv6).",
            "example": "1.2.3.4",
            "type": "string",
            "x-go-name": "IPAddress"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Additional map-like data for any custom extra data.",
            "example": {
              "custom_external_id": "abc_123"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "modified_at": {
            "description": "Timestamp of the last modification to the client data.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "ModifiedAt"
          },
          "user_agent": {
            "description": "Client's User-Agent.",
            "example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
            "type": "string",
            "x-go-name": "UserAgent"
          }
        },
        "title": "ClientData represents client-related data.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/pkg/dto"
      },
      "CustomerCheckout": {
        "properties": {
          "addresses": {
            "description": "Addresses associated with the customer",
            "items": {
              "$ref": "#/components/schemas/AddressCheckout"
            },
            "maximum": 100,
            "type": "array",
            "x-go-name": "Addresses"
          },
          "destination_reference_id": {
            "description": "Destination reference ID",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "DestinationReferenceID"
          },
          "email": {
            "description": "Email address of the customer",
            "example": "johndoe@example.com",
            "format": "email",
            "type": "string",
            "x-go-name": "Email"
          },
          "first_name": {
            "description": "First name of the customer",
            "example": "John",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "FirstName"
          },
          "id": {
            "description": "The unique identifier for the customer",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "last_name": {
            "description": "Last name of the customer",
            "example": "Doe",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "LastName"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Metadata associated with the customer as key-value pairs",
            "example": {
              "loyalty_points": "200"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "phone": {
            "description": "Phone number of the customer",
            "example": "+1-555-555-5555",
            "maximum": 30,
            "type": "string",
            "x-go-name": "Phone"
          },
          "source_reference_id": {
            "description": "Source reference ID",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "SourceReferenceID"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "DiscountCheckout": {
        "properties": {
          "amount": {
            "description": "The amount that the discount is for in string-decimal format,",
            "example": "10.25",
            "type": "string",
            "x-go-name": "Amount"
          },
          "description": {
            "description": "A description about the discount",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Description"
          },
          "effect_type": {
            "description": "The effect type that the discount was for. Used to hint on how to deserialize the meta field",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "EffectType"
          },
          "id": {
            "description": "Unique Nacelle identifier for the discount.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Metadata field for additional props the merchant may want to use to display additional context to the user.",
            "type": "object",
            "x-go-name": "Metadata"
          },
          "name": {
            "description": "A descriptive name to display to a user",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Name"
          }
        },
        "title": "DiscountCheckout contains information about a purchase discount.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "ErrorDetail": {
        "properties": {
          "category": {
            "description": "Category of an error.",
            "example": "inventory",
            "type": "string",
            "x-go-name": "Category"
          },
          "message": {
            "description": "Human-readable error message.",
            "example": "out of stock",
            "type": "string",
            "x-go-name": "Message"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Additional map-like data for any custom extra data.",
            "example": {
              "inventory_request_id": "abc"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "response_headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "ResponseHeaders (if we have any), to be sent with the error response.",
            "type": "object",
            "x-go-name": "ResponseHeaders"
          },
          "response_status": {
            "description": "HTTP status code, to be sent with the error response.",
            "example": 500,
            "format": "int64",
            "type": "integer",
            "x-go-name": "ResponseStatus"
          },
          "responsibility": {
            "description": "Responsibility type of the error.",
            "example": "client",
            "type": "string",
            "x-go-name": "Responsibility"
          },
          "severity": {
            "description": "Severity level of the error.",
            "example": "error",
            "type": "string",
            "x-go-name": "Severity"
          }
        },
        "title": "ErrorDetail represents an error for specific API call / flow step.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/pkg/dto"
      },
      "ErrorResponse": {
        "description": "Error details are collected from multiple API calls, until we reach fatal/error severity and need to stop the flow.\nError details list can be used for deciding what errors we should show to clients (usually Fatal/Error severity).\nFor example, we can show the first Fatal/Error we found in the error details list,\nor we can show all Fatal/Error errors we have.",
        "properties": {
          "details": {
            "description": "Details to provide information about the errors.",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "type": "array",
            "x-go-name": "Details"
          }
        },
        "title": "ErrorResponse represents error details for a multi-order / multi-cart.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/pkg/dto"
      },
      "OrderCheckout": {
        "properties": {
          "applied_discounts": {
            "description": "Applied discounts.",
            "items": {
              "$ref": "#/components/schemas/DiscountCheckout"
            },
            "type": "array",
            "x-go-name": "AppliedDiscounts"
          },
          "billing_address": {
            "$ref": "#/components/schemas/AddressCheckout"
          },
          "client_data": {
            "$ref": "#/components/schemas/ClientData"
          },
          "comment": {
            "description": "Any additional comments about the order.",
            "example": "please make sure it's gift-wrapped",
            "maximum": 1000,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Comment"
          },
          "currency": {
            "description": "Currency code.",
            "example": "USD",
            "type": "string",
            "x-go-name": "Currency"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerCheckout"
          },
          "destination_reference_id": {
            "description": "External id of the order in destination service.",
            "example": "test-destination-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "DestinationReferenceID"
          },
          "discounts": {
            "description": "Total discounts.",
            "example": "5.00",
            "type": "string",
            "x-go-name": "Discounts"
          },
          "email": {
            "description": "Email of the order.",
            "example": "john.doe@example.com",
            "format": "email",
            "type": "string",
            "x-go-name": "Email"
          },
          "error": {
            "$ref": "#/components/schemas/ErrorResponse"
          },
          "id": {
            "description": "Unique identifier for the order.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Additional map-like data for any custom extra data.",
            "example": {
              "custom_external_id": "abc_123"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "order_items": {
            "description": "Order items.",
            "items": {
              "$ref": "#/components/schemas/OrderItemCheckout"
            },
            "maximum": 100,
            "minimum": 1,
            "type": "array",
            "x-go-name": "OrderItems"
          },
          "payments": {
            "description": "Payments.",
            "items": {
              "$ref": "#/components/schemas/PaymentCheckout"
            },
            "minimum": 1,
            "type": "array",
            "x-go-name": "Payments"
          },
          "phone": {
            "description": "Phone number of the order.",
            "example": "+1-555-555-5555",
            "maximum": 30,
            "type": "string",
            "x-go-name": "Phone"
          },
          "price": {
            "description": "Price.",
            "example": "12.34",
            "type": "string",
            "x-go-name": "Price"
          },
          "promotion": {
            "$ref": "#/components/schemas/PromotionCheckout"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/AddressCheckout"
          },
          "shipping_rate": {
            "$ref": "#/components/schemas/ShippingRateCheckout"
          },
          "shipping_rates": {
            "description": "Shipping rates (Order-Checkout).",
            "items": {
              "$ref": "#/components/schemas/ShippingRateCheckout"
            },
            "maximum": 100,
            "minimum": 1,
            "type": "array",
            "x-go-name": "ShippingRates"
          },
          "source_reference_id": {
            "description": "External id of the order in source service.",
            "example": "test-external-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "SourceReferenceID"
          },
          "status": {
            "description": "Optional merchant status of the order.",
            "example": "processing",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Status"
          },
          "subtotal_price": {
            "description": "Subtotal price.",
            "example": "89.99",
            "type": "string",
            "x-go-name": "SubtotalPrice"
          },
          "tax": {
            "description": "Tax amount.",
            "example": "9.99",
            "type": "string",
            "x-go-name": "Tax"
          },
          "tax_data": {
            "$ref": "#/components/schemas/TaxCheckout"
          },
          "tax_rate": {
            "description": "Tax rate.",
            "example": "0.07",
            "type": "string",
            "x-go-name": "TaxRate"
          }
        },
        "title": "OrderCheckout represents the details of an order/order-checkout.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "OrderItemCheckout": {
        "properties": {
          "applied_discounts": {
            "description": "List of applied discounts.",
            "items": {
              "$ref": "#/components/schemas/DiscountCheckout"
            },
            "minimum": 1,
            "type": "array",
            "x-go-name": "AppliedDiscounts"
          },
          "available": {
            "description": "Available (Order-Checkout).",
            "example": 2,
            "format": "uint64",
            "maximum": 9999,
            "minimum": 1,
            "type": "integer",
            "x-go-name": "Available"
          },
          "canceled_at": {
            "description": "When this Order Item was cancelled.",
            "example": "2023-01-10T14:48:00Z",
            "format": "date-time",
            "type": "string",
            "x-go-name": "CanceledAt"
          },
          "canceled_by": {
            "description": "Who cancelled this OrderItem.",
            "example": "admin",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "CanceledBy"
          },
          "canceled_reason": {
            "description": "Reason for cancelling this OrderItem.",
            "example": "wrong color",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "CanceledReason"
          },
          "comment": {
            "description": "Additional comment.",
            "example": "please make sure to verify ordered color.",
            "maximum": 1000,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Comment"
          },
          "description": {
            "description": "Short description of the product.",
            "example": "Wool shirt.",
            "maximum": 1000,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Description"
          },
          "destination_reference_id": {
            "description": "External id of the OrderItem in destination service.",
            "example": "test-destination-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "DestinationReferenceID"
          },
          "discounts_amount": {
            "description": "Discount amount.",
            "example": "0.00",
            "type": "string",
            "x-go-name": "DiscountsAmount"
          },
          "id": {
            "description": "Unique identifier for the OrderItem.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Additional map-like data for any custom extra data.",
            "example": {
              "custom_external_id": "abc_123"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "price_amount": {
            "description": "Price.",
            "example": "17.25",
            "type": "string",
            "x-go-name": "PriceAmount"
          },
          "price_book_id": {
            "description": "Nacelle Price Book ID.",
            "example": "test-price-book-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "PriceBookID"
          },
          "product_id": {
            "description": "Nacelle Product ID.",
            "example": "test-product-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ProductID"
          },
          "quantity": {
            "description": "Quantity.",
            "example": 2,
            "format": "uint64",
            "maximum": 9999,
            "minimum": 1,
            "type": "integer",
            "x-go-name": "Quantity"
          },
          "sku": {
            "description": "SKU of the product.",
            "example": "sku-123",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Sku"
          },
          "source_reference_id": {
            "description": "External id of the OrderItem in source service.",
            "example": "test-external-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "SourceReferenceID"
          },
          "status": {
            "description": "Status of the OrderItem.",
            "example": "pending",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Status"
          },
          "subtotal_price_amount": {
            "description": "Subtotal price.",
            "example": "20.00",
            "type": "string",
            "x-go-name": "SubtotalPriceAmount"
          },
          "tax_amount": {
            "description": "Tax amount.",
            "example": "2.25",
            "type": "string",
            "x-go-name": "TaxAmount"
          },
          "tax_rate": {
            "description": "Tax rate.",
            "example": "0.00",
            "type": "string",
            "x-go-name": "TaxRate"
          },
          "variant_id": {
            "description": "Nacelle Variant ID.",
            "example": "test-variant-id",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "VariantID"
          }
        },
        "title": "OrderItemCheckout represents the details of an order item.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "PaymentCheckout": {
        "properties": {
          "amount_value": {
            "description": "The amount of the payment",
            "example": "99.99",
            "type": "string",
            "x-go-name": "AmountValue"
          },
          "card_brand": {
            "description": "Brand of the card used for payment",
            "example": "Visa",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "CardBrand"
          },
          "currency": {
            "description": "Currency code for the payment.",
            "example": "USD",
            "type": "string",
            "x-go-name": "Currency"
          },
          "external_id": {
            "description": "External ID associated with the payment",
            "example": "ext_12345",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ExternalID"
          },
          "id": {
            "description": "Unique identifier for the Payment.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "payment_data": {
            "additionalProperties": {},
            "description": "Additional payment data as key-value pairs",
            "example": {
              "transaction_id": "txn_123"
            },
            "type": "object",
            "x-go-name": "PaymentData"
          },
          "payment_method_id": {
            "description": "ID of the payment method",
            "example": "pm_12345",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "PaymentMethodID"
          },
          "payment_type": {
            "description": "Type of payment, e.g., Credit Card",
            "example": "Credit Card",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "PaymentType"
          },
          "processor_name": {
            "description": "Name of the payment processor",
            "example": "Stripe",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ProcessorName"
          },
          "processor_status": {
            "description": "Status returned by the payment processor",
            "example": "Approved",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ProcessorStatus"
          },
          "status": {
            "description": "Status of the payment",
            "enum": [
              "created",
              "pending",
              "succeeded",
              "failed",
              "requires_confirmation",
              "balance_due",
              "credit_owed"
            ],
            "example": "succeeded",
            "type": "string",
            "x-go-name": "Status"
          },
          "transactions": {
            "description": "Transactions associated with the payment",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array",
            "x-go-name": "Transactions"
          }
        },
        "title": "PaymentCheckout contains information about an order payment.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "PromotionCheckout": {
        "properties": {
          "coupon_codes": {
            "description": "Any coupon codes entered.",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "type": "array",
            "x-go-name": "CouponCodes"
          },
          "id": {
            "description": "Unique Nacelle identifier for the promotion.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "identifiers": {
            "description": "Session custom identifiers that you can set limits on or use inside your rules.",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "type": "array",
            "x-go-name": "Identifiers"
          },
          "loyalty_card": {
            "description": "Any loyalty cards used.",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "LoyaltyCard"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Metadata fields to store tracking additional ids for promotion systems",
            "example": "For example, you can use IP addresses as identifiers to potentially identify devices and limit discounts abuse in case of customers creating multiple accounts",
            "type": "object",
            "x-go-name": "Metadata"
          },
          "profile_id": {
            "description": "ID of the customer profile set by your integration layer",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ProfileID"
          },
          "referral_code": {
            "description": "Any referral code entered.",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ReferralCode"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "ShippingRateCheckout": {
        "properties": {
          "amount": {
            "description": "Price of the shipping rate in string-decimal format,",
            "example": "10.25",
            "type": "string",
            "x-go-name": "Amount"
          },
          "currency": {
            "description": "Currency code in ISO 4217 three-letter format,",
            "example": "USD",
            "type": "string",
            "x-go-name": "Currency"
          },
          "delivery_estimate_max": {
            "description": "Value of the upper bound of the estimated range. If empty, represents no upper bound,",
            "example": 10,
            "format": "uint64",
            "maximum": 9999,
            "minimum": 1,
            "type": "integer",
            "x-go-name": "DeliveryEstimateMax"
          },
          "delivery_estimate_min": {
            "description": "Value of the lower bound of the estimated range. If empty, represents no lower bound,",
            "example": 2,
            "format": "uint64",
            "maximum": 9999,
            "minimum": 1,
            "type": "integer",
            "x-go-name": "DeliveryEstimateMin"
          },
          "delivery_estimate_unit": {
            "description": "Unit of the delivery estimated range,",
            "enum": [
              "hour",
              "day",
              "business_day",
              "week",
              "month"
            ],
            "example": "day",
            "type": "string",
            "x-go-name": "DeliveryEstimateUnit"
          },
          "description": {
            "description": "Detailed description of the shipping rate,",
            "example": "Ship orders within the U.S. that need to arrive in the afternoon of the next business day.",
            "maximum": 255,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Description"
          },
          "display_name": {
            "description": "The display name of the shipping rate,",
            "example": "Ground shipping",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "DisplayName"
          },
          "external_id": {
            "description": "External (non-nacelle) id of the ShippingRate object from the ShippingRate API service.",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ExternalID"
          },
          "id": {
            "description": "Unique Nacelle identifier for the shipping rate.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "service_name": {
            "description": "Name of the shipping company,",
            "example": "UPS",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ServiceName"
          },
          "tax_behavior": {
            "description": "Describes if shipping rate price includes taxes,\nexamples: unspecified / inclusive / exclusive",
            "type": "string",
            "x-go-name": "TaxBehavior"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "TaxCheckout": {
        "properties": {
          "currency": {
            "type": "string",
            "x-go-name": "Currency"
          },
          "expires_at": {
            "x-go-name": "ExpiresAt"
          },
          "external_id": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "ExternalID"
          },
          "id": {
            "description": "Unique Nacelle identifier for the Tax.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "items": {
            "$ref": "#/components/schemas/TaxItemsDataCheckout"
          },
          "service": {
            "example": "Stripe",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "Service"
          },
          "shipping": {
            "$ref": "#/components/schemas/TaxShippingDataCheckout"
          },
          "tax_date": {
            "x-go-name": "TaxDate"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "TaxEntryBreakdownCheckout": {
        "properties": {
          "amount": {
            "type": "string",
            "x-go-name": "Amount"
          },
          "created_at": {
            "description": "Creation timestamp for the TaxEntryBreakdown.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "CreatedAt"
          },
          "display_name": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "DisplayName"
          },
          "id": {
            "description": "Unique Nacelle identifier for the TaxEntryBreakdown.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "modified_at": {
            "description": "Modification timestamp for the TaxEntryBreakdown.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "ModifiedAt"
          },
          "percentage": {
            "type": "string",
            "x-go-name": "Percentage"
          },
          "tax_type": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "TaxType"
          },
          "taxability_reason": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "TaxabilityReason"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "TaxEntryCheckout": {
        "properties": {
          "amount": {
            "type": "string",
            "x-go-name": "Amount"
          },
          "breakdown": {
            "items": {
              "$ref": "#/components/schemas/TaxEntryBreakdownCheckout"
            },
            "maximum": 100,
            "type": "array",
            "x-go-name": "Breakdown"
          },
          "created_at": {
            "description": "Creation timestamp for the TaxEntry.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "CreatedAt"
          },
          "id": {
            "description": "Unique Nacelle identifier for the TaxEntry.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "modified_at": {
            "description": "Modification timestamp for the TaxEntry.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "ModifiedAt"
          },
          "order_item_id": {
            "description": "OrderItem ID (for OrderItem-related tax data only).",
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "OrderItemID"
          },
          "quantity": {
            "description": "Quantity (for OrderItem-related tax data only).",
            "format": "uint64",
            "maximum": 9999,
            "minimum": 1,
            "type": "integer",
            "x-go-name": "Quantity"
          },
          "tax": {
            "type": "string",
            "x-go-name": "Tax"
          },
          "tax_behavior": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "TaxBehavior"
          },
          "tax_code": {
            "maximum": 100,
            "minimum": 1,
            "type": "string",
            "x-go-name": "TaxCode"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "TaxItemsDataCheckout": {
        "properties": {
          "created_at": {
            "description": "Creation timestamp for the TaxItemsData.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "CreatedAt"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/TaxEntryCheckout"
            },
            "maximum": 100,
            "type": "array",
            "x-go-name": "Entries"
          },
          "id": {
            "description": "Unique Nacelle identifier for the TaxItemsData.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "modified_at": {
            "description": "Modification timestamp for the TaxItemsData.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "ModifiedAt"
          },
          "price": {
            "type": "string",
            "x-go-name": "Price"
          },
          "subtotal_price": {
            "type": "string",
            "x-go-name": "SubtotalPrice"
          },
          "tax": {
            "type": "string",
            "x-go-name": "Tax"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "TaxShippingDataCheckout": {
        "properties": {
          "created_at": {
            "description": "Creation timestamp for the TaxShippingData.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "CreatedAt"
          },
          "entries": {
            "$ref": "#/components/schemas/TaxEntryCheckout"
          },
          "id": {
            "description": "Unique Nacelle identifier for the TaxShippingData.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "modified_at": {
            "description": "Modification timestamp for the TaxShippingData.",
            "example": "2023-01-10T14:48:00Z",
            "x-go-name": "ModifiedAt"
          },
          "price": {
            "type": "string",
            "x-go-name": "Price"
          },
          "subtotal_price": {
            "type": "string",
            "x-go-name": "SubtotalPrice"
          },
          "tax": {
            "type": "string",
            "x-go-name": "Tax"
          }
        },
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/docs"
      },
      "Transaction": {
        "properties": {
          "amount": {
            "description": "The Amount of the Transaction",
            "example": "99.99",
            "type": "string",
            "x-go-name": "Amount"
          },
          "error": {
            "description": "Error encountered during the Transaction",
            "example": "test error",
            "type": "string",
            "x-go-name": "Error"
          },
          "id": {
            "description": "Unique identifier for the Transaction.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "format": "uuid",
            "type": "string",
            "x-go-name": "ID"
          },
          "metadata": {
            "additionalProperties": {},
            "description": "Metadata for the Transaction",
            "example": {
              "key": "value"
            },
            "type": "object",
            "x-go-name": "Metadata"
          },
          "operation": {
            "description": "Operation of the Transaction",
            "enum": [
              "authorization",
              "authorization_release",
              "charge",
              "refund"
            ],
            "example": "succeeded",
            "type": "string",
            "x-go-name": "Operation"
          },
          "status": {
            "description": "Status code for the Transaction.",
            "enum": [
              "pending",
              "succeeded",
              "failed"
            ],
            "example": "succeeded",
            "type": "string",
            "x-go-name": "Status"
          }
        },
        "title": "Transaction contains information about an payments transactions.",
        "type": "object",
        "x-go-package": "github.com/getnacelle/noms/pkg/dto"
      },
      "error": {
        "properties": {
          "code": {
            "description": "A numeric error code.",
            "type": "integer"
          },
          "message": {
            "description": "A description of the reason for the error.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```