> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sipariş Doğrula

> Dry-run order validation. Calculates pricing with optional discount code and checks if the user can afford the plan. Does not create any records.



## OpenAPI

````yaml POST /customer/v2/orders/validate
openapi: 3.0.3
info:
  title: OrbitFlare Customer API
  description: >-
    API documentation for the OrbitFlare Customer API. This API allows
    authenticated customers to manage their licenses, whitelist IPs, reset keys,
    and retrieve associated data. Supports v1 (API key only) and v2 (Bearer
    token or API key) with extended features including device/wallet auth, API
    keys management, profile, Solana USDC balance top-up, and RPC plan
    purchasing.
  version: 2.1.0
servers:
  - url: https://orbitflare.com/api
    description: OrbitFlare Production server
security:
  - api_key: []
tags:
  - name: Auth
    description: Authentication (device flow, wallet signature, session)
  - name: Licenses
    description: License management
  - name: API Keys
    description: API key management
  - name: Profile
    description: User profile and balance
  - name: Invoices
    description: Invoice listing, detail, and balance payment
  - name: Top-Up
    description: Balance top-up via Solana USDC
  - name: RPC Plans
    description: Solana RPC plan catalog
  - name: Orders
    description: Order management (validate, purchase, list)
paths:
  /customer/v2/orders/validate:
    post:
      tags:
        - Orders
      summary: Validate Order
      description: >-
        Dry-run order validation. Calculates pricing with optional discount code
        and checks if the user can afford the plan. Does not create any records.
      operationId: validateOrder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '200':
          description: Order validated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                  data:
                    $ref: '#/components/schemas/OrderValidationResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
        '404':
          description: Product not found or not an RPC plan.
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
      security:
        - bearer_token: []
        - api_key: []
components:
  schemas:
    OrderRequest:
      type: object
      required:
        - product_slug
      properties:
        product_slug:
          type: string
          description: Slug of the RPC plan product.
        billing_period:
          type: string
          enum:
            - monthly
            - quarterly
            - semi-annual
            - annual
          default: monthly
        discount_code:
          type: string
          nullable: true
          description: Optional coupon code.
    OrderValidationResponse:
      type: object
      properties:
        product:
          type: object
          properties:
            name:
              type: string
            slug:
              type: string
        billing_period:
          type: string
        pricing:
          $ref: '#/components/schemas/PricingBreakdown'
        discount:
          type: object
          nullable: true
        user_balance:
          type: number
          format: float
        can_afford:
          type: boolean
    V2ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
        errors:
          type: object
        error:
          type: string
          description: Error code (e.g. authorization_pending, slow_down)
    PricingBreakdown:
      type: object
      properties:
        base_price:
          type: number
          format: float
        period_months:
          type: integer
        period_total:
          type: number
          format: float
        discount_percent:
          type: number
          format: float
        discount_amount:
          type: number
          format: float
        final_price:
          type: number
          format: float
  securitySchemes:
    api_key:
      type: apiKey
      name: X-ORBIT-KEY
      in: header
      description: API key for v1 and v2 (when not using Bearer token)
    bearer_token:
      type: http
      scheme: bearer
      bearerFormat: Sanctum
      description: Bearer token from device or wallet auth

````