Spree Commerce Gift Cards API

The Gift Cards API from Spree Commerce — 4 operation(s) for gift cards.

Operations 8

GET /api/v3/admin/gift_card_batches List gift card batches
POST /api/v3/admin/gift_card_batches Create a gift card batch
GET /api/v3/admin/gift_card_batches/{id} Get a gift card batch
GET /api/v3/admin/gift_cards List gift cards
POST /api/v3/admin/gift_cards Create a gift card
GET /api/v3/admin/gift_cards/{id} Get a gift card
PATCH /api/v3/admin/gift_cards/{id} Update a gift card
DELETE /api/v3/admin/gift_cards/{id} Delete a gift card

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spree-commerce-gift-cards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spree-commerce-gift-cards-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Admin Gift Cards API
  contact:
    name: Spree Commerce
    url: https://spreecommerce.org
    email: hello@spreecommerce.org
  description: "Spree Admin API v3 - Administrative API for managing products, orders, and store settings.\n\n## Authentication\n\nThe Admin API requires a secret API key passed in the `x-spree-api-key` header.\nSecret API keys can be generated in the Spree admin dashboard.\n\n## Response Format\n\nAll responses are JSON. List endpoints return paginated responses with `data` and `meta` keys.\nSingle resource endpoints return a flat JSON object.\n\n## Resource IDs\n\nEvery resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,\n`variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,\nrequest bodies, and Ransack filters all accept them directly.\n\n## Error Handling\n\nErrors return a consistent format:\n```json\n{\n  \"error\": {\n    \"code\": \"validation_error\",\n    \"message\": \"Validation failed\",\n    \"details\": { \"name\": [\"can't be blank\"] }\n  }\n}\n```\n"
  version: v3
servers:
- url: http://{defaultHost}
  variables:
    defaultHost:
      default: localhost:3000
tags:
- name: Gift Cards
paths:
  /api/v3/admin/gift_card_batches:
    get:
      summary: List gift card batches
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Returns the gift card batches issued by the current store. Each batch

        groups the cards generated together for a campaign or bulk-issuance

        — the cards themselves live under `/admin/gift_cards` and reference

        the batch via `gift_card_batch_id`.



        **Required scope:** `read_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst { data: batches } = await client.giftCardBatches.list({ page: 1, limit: 25 })"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        description: Bearer token for admin authentication
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Page number
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Records per page
        schema:
          type: integer
      - name: q[prefix_cont]
        in: query
        required: false
        description: Filter by prefix (contains)
        schema:
          type: string
      - name: sort
        in: query
        required: false
        description: Sort by field. Prefix with `-` for descending.
        schema:
          type: string
      responses:
        '200':
          description: gift card batches found
          content:
            application/json:
              example:
                data:
                - id: gcb_UkLWZg9DAJ
                  codes_count: 2
                  currency: USD
                  prefix: WELCOME
                  created_at: '2026-05-24T17:36:57.736Z'
                  updated_at: '2026-05-24T17:36:57.736Z'
                  amount: '50.0'
                  expires_at: null
                  created_by_id: null
                meta:
                  page: 1
                  limit: 25
                  count: 1
                  pages: 1
                  from: 1
                  to: 1
                  in: 1
                  previous: null
                  next: null
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/GiftCardBatch'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                required:
                - data
                - meta
    post:
      summary: Create a gift card batch
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Issues a batch of gift cards in a single call. The server generates

        `codes_count` cards inline for small batches (configurable via

        `Spree.config.gift_card_batch_web_limit`, default 500) or enqueues

        a background job for larger ones. Each card''s code is the batch

        `prefix` followed by random hex.



        **Required scope:** `write_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst batch = await client.giftCardBatches.create({\n  prefix: 'WELCOME',\n  amount: '25.00',\n  currency: 'USD',\n  codes_count: 100,\n  expires_at: '2030-12-31',\n})"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: gift card batch created
          content:
            application/json:
              example:
                id: gcb_gbHJdmfrXB
                codes_count: 5
                currency: USD
                prefix: NEWCAMP
                created_at: '2026-05-24T17:36:58.306Z'
                updated_at: '2026-05-24T17:36:58.306Z'
                amount: '25.0'
                expires_at: '2030-12-31'
                created_by_id: admin_UkLWZg9DAJ
              schema:
                $ref: '#/components/schemas/GiftCardBatch'
        '422':
          description: validation error
          content:
            application/json:
              example:
                error:
                  code: validation_error
                  message: Prefix can't be blank
                  details:
                    prefix:
                    - can't be blank
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - prefix
              - amount
              - codes_count
              properties:
                prefix:
                  type: string
                  example: WELCOME
                  description: Lowercased and prepended to every generated code.
                amount:
                  type: string
                  example: '25.00'
                  description: Decimal amount per card, greater than zero.
                currency:
                  type: string
                  example: USD
                  description: ISO 4217 currency code. Defaults to the store currency.
                codes_count:
                  type: integer
                  example: 100
                  description: Number of cards to generate. Capped at `gift_card_batch_limit`.
                expires_at:
                  type:
                  - string
                  - 'null'
                  example: '2030-12-31'
  /api/v3/admin/gift_card_batches/{id}:
    parameters:
    - name: id
      in: path
      required: true
      description: Gift card batch prefixed ID
      schema:
        type: string
    get:
      summary: Get a gift card batch
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Returns a single batch.


        **Required scope:** `read_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst batch = await client.giftCardBatches.get('gcb_K3zr8x')"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: gift card batch found
          content:
            application/json:
              example:
                id: gcb_UkLWZg9DAJ
                codes_count: 2
                currency: USD
                prefix: WELCOME
                created_at: '2026-05-24T17:36:58.593Z'
                updated_at: '2026-05-24T17:36:58.593Z'
                amount: '50.0'
                expires_at: null
                created_by_id: null
              schema:
                $ref: '#/components/schemas/GiftCardBatch'
        '404':
          description: gift card batch not found
          content:
            application/json:
              example:
                error:
                  code: record_not_found
                  message: Gift card batch not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/v3/admin/gift_cards:
    get:
      summary: List gift cards
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Returns the gift cards issued by the current store. Filter by

        `q[code_cont]` for code search, `q[user_id_eq]` for cards issued

        to a specific customer, or `q[state_eq]` for status filtering.



        **Required scope:** `read_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst { data: giftCards } = await client.giftCards.list({\n  page: 1,\n  limit: 25,\n  expand: ['customer', 'created_by'],\n})"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        description: Bearer token for admin authentication
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Page number
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Number of records per page
        schema:
          type: integer
      - name: q[code_cont]
        in: query
        required: false
        description: Filter by gift card code (contains)
        schema:
          type: string
      - name: q[state_eq]
        in: query
        required: false
        description: Filter by status (active, redeemed, partially_redeemed, canceled)
        schema:
          type: string
      - name: sort
        in: query
        required: false
        description: Sort by field. Prefix with `-` for descending (e.g., `-created_at`).
        schema:
          type: string
      - name: fields
        in: query
        required: false
        description: Comma-separated list of fields to include. id is always included.
        schema:
          type: string
      responses:
        '200':
          description: gift cards found
          content:
            application/json:
              example:
                data:
                - id: gc_UkLWZg9DAJ
                  code: CC7B2B4D3AB3008C
                  status: active
                  currency: USD
                  amount: '50.0'
                  amount_used: '0.0'
                  amount_authorized: '0.0'
                  amount_remaining: '50.0'
                  display_amount: $50.00
                  display_amount_used: $0.00
                  display_amount_remaining: $50.00
                  expires_at: null
                  redeemed_at: null
                  expired: false
                  active: true
                  created_at: '2026-05-24T17:36:59.157Z'
                  updated_at: '2026-05-24T17:36:59.157Z'
                  customer_id: null
                  created_by_id: null
                - id: gc_gbHJdmfrXB
                  code: DDB3EA9E5861FC28
                  status: active
                  currency: USD
                  amount: '25.0'
                  amount_used: '0.0'
                  amount_authorized: '0.0'
                  amount_remaining: '25.0'
                  display_amount: $25.00
                  display_amount_used: $0.00
                  display_amount_remaining: $25.00
                  expires_at: null
                  redeemed_at: null
                  expired: false
                  active: true
                  created_at: '2026-05-24T17:36:59.158Z'
                  updated_at: '2026-05-24T17:36:59.158Z'
                  customer_id: null
                  created_by_id: null
                meta:
                  page: 1
                  limit: 25
                  count: 2
                  pages: 1
                  from: 1
                  to: 2
                  in: 2
                  previous: null
                  next: null
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/GiftCard'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                required:
                - data
                - meta
        '401':
          description: unauthorized
          content:
            application/json:
              example:
                error:
                  code: authentication_required
                  message: Authentication required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      summary: Create a gift card
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Issues a gift card scoped to the current store. The code is

        auto-generated when omitted. `currency` defaults to the store''s

        configured currency. Pass `user_id` (prefixed ID) to attach the

        card to a specific customer.



        **Required scope:** `write_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst giftCard = await client.giftCards.create({\n  amount: '25.00',\n  currency: 'USD',\n  expires_at: '2030-12-31',\n  user_id: 'cus_UkLWZg9DAJ',\n})"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: gift card created
          content:
            application/json:
              example:
                id: gc_EfhxLZ9ck8
                code: A45E3AF0F74D82E8
                status: active
                currency: USD
                amount: '25.0'
                amount_used: '0.0'
                amount_authorized: '0.0'
                amount_remaining: '25.0'
                display_amount: $25.00
                display_amount_used: $0.00
                display_amount_remaining: $25.00
                expires_at: '2030-12-31'
                redeemed_at: null
                expired: false
                active: true
                created_at: '2026-05-24T17:36:59.731Z'
                updated_at: '2026-05-24T17:36:59.731Z'
                customer_id: null
                created_by_id: admin_UkLWZg9DAJ
              schema:
                $ref: '#/components/schemas/GiftCard'
        '422':
          description: validation error
          content:
            application/json:
              example:
                error:
                  code: validation_error
                  message: Amount must be greater than 0
                  details:
                    amount:
                    - must be greater than 0
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - amount
              properties:
                amount:
                  type: string
                  example: '25.00'
                  description: Decimal amount, greater than zero.
                currency:
                  type: string
                  example: USD
                  description: ISO 4217 currency code. Defaults to the store currency.
                code:
                  type: string
                  example: WELCOME50
                  description: Optional caller-supplied code. Auto-generated when omitted.
                expires_at:
                  type:
                  - string
                  - 'null'
                  example: '2030-12-31'
                  description: ISO 8601 date.
                user_id:
                  type:
                  - string
                  - 'null'
                  example: cus_UkLWZg9DAJ
                  description: Optional customer prefixed ID.
  /api/v3/admin/gift_cards/{id}:
    parameters:
    - name: id
      in: path
      required: true
      description: Gift card prefixed ID
      schema:
        type: string
    get:
      summary: Get a gift card
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Returns a single gift card.


        **Required scope:** `read_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst giftCard = await client.giftCards.get('gc_K3zr8x', {\n  expand: ['customer', 'created_by', 'orders'],\n})"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: fields
        in: query
        required: false
        description: Comma-separated list of fields to include. id is always included.
        schema:
          type: string
      responses:
        '200':
          description: gift card found
          content:
            application/json:
              example:
                id: gc_UkLWZg9DAJ
                code: 62E9760F39DB00B8
                status: active
                currency: USD
                amount: '50.0'
                amount_used: '0.0'
                amount_authorized: '0.0'
                amount_remaining: '50.0'
                display_amount: $50.00
                display_amount_used: $0.00
                display_amount_remaining: $50.00
                expires_at: null
                redeemed_at: null
                expired: false
                active: true
                created_at: '2026-05-24T17:37:00.039Z'
                updated_at: '2026-05-24T17:37:00.039Z'
                customer_id: null
                created_by_id: null
              schema:
                $ref: '#/components/schemas/GiftCard'
        '404':
          description: gift card not found
          content:
            application/json:
              example:
                error:
                  code: record_not_found
                  message: Gift card not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    patch:
      summary: Update a gift card
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Updates an active gift card''s editable attributes. Redeemed or

        partially-redeemed cards cannot be edited.



        **Required scope:** `write_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nconst giftCard = await client.giftCards.update('gc_K3zr8x', {\n  amount: '75.00',\n})"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: gift card updated
          content:
            application/json:
              example:
                id: gc_UkLWZg9DAJ
                code: 80360376B43E9B35
                status: active
                currency: USD
                amount: '75.0'
                amount_used: '0.0'
                amount_authorized: '0.0'
                amount_remaining: '75.0'
                display_amount: $75.00
                display_amount_used: $0.00
                display_amount_remaining: $75.00
                expires_at: null
                redeemed_at: null
                expired: false
                active: true
                created_at: '2026-05-24T17:37:00.647Z'
                updated_at: '2026-05-24T17:37:00.941Z'
                customer_id: null
                created_by_id: null
              schema:
                $ref: '#/components/schemas/GiftCard'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: string
                  example: '75.00'
                expires_at:
                  type:
                  - string
                  - 'null'
                  example: '2031-12-31'
                user_id:
                  type:
                  - string
                  - 'null'
                  example: cus_UkLWZg9DAJ
    delete:
      summary: Delete a gift card
      tags:
      - Gift Cards
      security:
      - api_key: []
        bearer_auth: []
      description: 'Deletes an unused gift card. Cards that have been redeemed or

        partially redeemed cannot be deleted and return 422.



        **Required scope:** `write_gift_cards` (for API-key authentication).'
      x-codeSamples:
      - lang: javascript
        label: Spree Admin SDK
        source: "import { createAdminClient } from '@spree/admin-sdk'\n\nconst client = createAdminClient({\n  baseUrl: 'https://your-store.com',\n  secretKey: 'sk_xxx',\n})\n\nawait client.giftCards.delete('gc_K3zr8x')"
      parameters:
      - name: x-spree-api-key
        in: header
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '204':
          description: gift card deleted
        '422':
          description: redeemed gift card cannot be deleted
          content:
            application/json:
              example:
                error:
                  code: validation_error
                  message: Gift card cannot be deleted
components:
  schemas:
    PaginationMeta:
      type: object
      properties:
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 25
        count:
          type: integer
          example: 100
          description: Total number of records
        pages:
          type: integer
          example: 4
          description: Total number of pages
        from:
          type: integer
          example: 1
          description: Index of first record on this page
        to:
          type: integer
          example: 25
          description: Index of last record on this page
        in:
          type: integer
          example: 25
          description: Number of records on this page
        previous:
          type:
          - integer
          - 'null'
          example: null
          description: Previous page number
        next:
          type:
          - integer
          - 'null'
          example: 2
          description: Next page number
      required:
      - page
      - limit
      - count
      - pages
      - from
      - to
      - in
    CustomerGroup:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        customers_count:
          type: number
        created_at:
          type: string
        updated_at:
          type: string
        customers:
          type: array
          items:
            $ref: '#/components/schemas/Customer'
      required:
      - id
      - name
      - description
      - customers_count
      - created_at
      - updated_at
      x-typelizer: true
    PaymentSource:
      type: object
      properties:
        id:
          type: string
        gateway_payment_profile_id:
          type:
          - string
          - 'null'
        metadata:
          type: object
        created_at:
          type: string
        updated_at:
          type: string
      required:
      - id
      - gateway_payment_profile_id
      - metadata
      - created_at
      - updated_at
      x-typelizer: true
    AdminUser:
      type: object
      properties:
        id:
          type: string
        email:
          type: string
        first_name:
          type:
          - string
          - 'null'
        last_name:
          type:
          - string
          - 'null'
        full_name:
          type:
          - string
          - 'null'
        created_at:
          type: string
        updated_at:
          type: string
        roles:
          type: array
          items:
            $ref: '#/components/schemas/AdminUserRoleAssignment'
      required:
      - id
      - email
      - first_name
      - last_name
      - full_name
      - created_at
      - updated_at
      - roles
      x-typelizer: true
    Payment:
      type: object
      properties:
        id:
          type: string
        payment_method_id:
          type: string
        response_code:
          type:
          - string
          - 'null'
        number:
          type: string
        amount:
          type: string
        display_amount:
          type: string
        status:
          type: string
        source_type:
          type:
          - string
          - 'null'
          enum:
          - credit_card
          - store_credit
          - payment_source
        source_id:
          type:
          - string
          - 'null'
        source:
          anyOf:
          - $ref: '#/components/schemas/CreditCard'
          - $ref: '#/components/schemas/StoreCredit'
          - $ref: '#/components/schemas/PaymentSource'
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        metadata:
          type: object
        avs_response:
          type:
          - string
          - 'null'
        cvv_response_code:
          type:
          - string
          - 'null'
        cvv_response_message:
          type:
          - string
          - 'null'
        created_at:
          type: string
        updated_at:
          type: string
        captured_amount:
          type: string
        order_id:
          type:
          - string
          - 'null'
        order:
          $ref: '#/components/schemas/Order'
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/Refund'
      required:
      - id
      - payment_method_id
      - response_code
      - number
      - amount
      - display_amount
      - status
      - source_type
      - source_id
      - source
      - metadata
      - avs_response
      - cvv_response_code
      - cvv_response_message
      - created_at
      - updated_at
      - captured_amount
      - order_id
      x-typelizer: true
    Order:
      type: object
      properties:
        id:
          type: string
        market_id:
          type:
          - string
          - 'null'
        channel_id:
          type:
          - string
          - 'null'
        number:
          type: string
        email:
          type: string
        customer_note:
          type:
          - string
          - 'null'
        currency:
          type: string
        locale:
          type:
          - string
          - 'null'
        total_quantity:
          type: number
        item_total:
          type: string
        display_item_total:
          type: string
        adjustment_total:
          type: string
        display_adjustment_total:
          type: string
        discount_total:
          type: string
        display_discount_total:
          type: string
        tax_total:
          type: string
        display_tax_total:
          type: string
        included_tax_total:
          type: string
        display_included_tax_total:
          type: string
        additional_tax_total:
          type: string
        display_additional_tax_total:
          type: string
        total:
          type: string
        display_total:
          type: string
        gift_card_total:
          type: string
        display_gift_card_total:
          type: string
        amount_due:
          type: string
        display_amount_due:
          type: string
        delivery_total:
          type: string
        display_delivery_total:
          type: string
        fulfillment_status:
          type:
          - string
          - 'null'
        payment_status:
          type:
          - string
          - 'null'
        completed_at:
          type:
          - string
          - 'null'
        store_credit_total:
          type: string
        display_store_credit_total:
          type: string
        covered_by_store_credit:
          type: boolean
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        items:
          type: array
          items:
            $ref: '#/components/schemas/LineItem'
        fulfillments:
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
        billing_address:
          allOf:
          - $ref: '#/components/schemas/Address'
        shipping_address:
          allOf:
          - $ref: '#/components/schemas/Address'
        gift_card:
          allOf:
          - $ref: '#/components/schemas/GiftCard'
        market:
          allOf:
          - $ref: '#/components/schemas/Market'
        status:
          type: string
        last_ip_address:
          type:
          - string
          - 'null'
        considered_risky:
          type: boolean
        confirmation_delivered:
          type: boolean
        store_owner_notification_delivered:
          type: boolean
        payment_total:
          type: string
        display_payment_total:
          type: string
        metadata:
          type: object
        canceled_at:
          type:
          - string
          - 'null'
        approved_at:
          type:
          - string
          - 'null'
        created_at:
          type: string
        updated_at:
          type: string
        preferred_stock_location_id:
          type:
          - string
          - 'null'
        tags:
          type: array
          items:
            type: string
        internal_note:
          type:
          - string
          - 'null'
        approver_id:
          type:
          - string
          - 'null'
        canceler_id:
          type:
          - string
          - 'null'
        created_by_id:
          type:
          - string
          - 'null'
        customer_id:
          type:
          - string
          - 'null'
        channel:
          $ref: '

# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spree-commerce/refs/heads/main/openapi/spree-commerce-gift-cards-api-openapi.yml