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

# Purchase Gift Card

> Purchase a gift card and charge the business wallet



## OpenAPI

````yaml api-reference/vaas-services-openapi.json POST /vaas/api/v1/gift-cards/orders
openapi: 3.1.0
info:
  title: PayVessel Value-Added Services API
  description: >-
    API reference for PayVessel biller reseller, eSIM, gift card, and flight
    services.
  version: 1.0.0
servers:
  - url: https://api.payvessel.com
  - url: https://sandbox.payvessel.com
security:
  - apiKey: []
    apiSecret: []
paths:
  /vaas/api/v1/gift-cards/orders:
    post:
      tags:
        - Gift Cards
        - Gift Cards
      summary: Purchase Gift Card
      description: Purchase a gift card and charge the business managed wallet
      operationId: create_order_vaas_api_v1_gift_cards_orders_post
      parameters:
        - name: api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Api-Key
        - name: api-secret
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Api-Secret
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/api__gift_cards__schema__order__CreateOrderRequestSchema
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api__gift_cards__schema__order__CreateOrderResponseSchema
        '400':
          description: >-
            Bad request — duplicate reference, product not found, insufficient
            balance, or wallet charge failed
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Error message
                  data:
                    type: object
                    nullable: true
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-06-25T12:00:00+00:00'
                type: object
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '424':
          description: Unable to reach upstream service or purchase failed
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Error message
                  data:
                    type: object
                    nullable: true
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-06-25T12:00:00+00:00'
                type: object
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Error message
                  data:
                    type: object
                    nullable: true
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-06-25T12:00:00+00:00'
                type: object
components:
  schemas:
    api__gift_cards__schema__order__CreateOrderRequestSchema:
      properties:
        reference:
          type: string
          maxLength: 64
          title: Reference
          description: Unique merchant order reference
        operator_id:
          type: string
          title: Operator Id
        product_id:
          type: string
          title: Product Id
        webhook_url:
          anyOf:
            - type: string
              maxLength: 512
            - type: 'null'
          title: Webhook Url
          description: Webhook URL for order status notifications
      type: object
      required:
        - reference
        - operator_id
        - product_id
      title: CreateOrderRequestSchema
    api__gift_cards__schema__order__CreateOrderResponseSchema:
      properties:
        status:
          type: boolean
          title: Status
        message:
          type: string
          title: Message
        data:
          $ref: '#/components/schemas/api__gift_cards__schema__order__OrderSchema'
      type: object
      required:
        - status
        - message
        - data
      title: CreateOrderResponseSchema
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    api__gift_cards__schema__order__OrderSchema:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        business_id:
          type: string
          title: Business Id
        merchant_reference:
          type: string
          title: Merchant Reference
        order_reference:
          type: string
          title: Order Reference
        operator_id:
          type: string
          title: Operator Id
        product_id:
          type: string
          title: Product Id
        product_name:
          type: string
          title: Product Name
        country:
          type: string
          title: Country
        amount_naira:
          type: number
          title: Amount Naira
        amount_usd:
          type: number
          title: Amount Usd
        redeem_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Redeem Code
        serial_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Serial Number
        status:
          $ref: '#/components/schemas/GiftCardOrderStatus'
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
        wallet_transaction_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Wallet Transaction Id
        created_datetime:
          type: string
          format: date-time
          title: Created Datetime
        updated_datetime:
          type: string
          format: date-time
          title: Updated Datetime
        completed_datetime:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed Datetime
      type: object
      required:
        - id
        - business_id
        - merchant_reference
        - order_reference
        - operator_id
        - product_id
        - product_name
        - country
        - amount_naira
        - amount_usd
        - redeem_code
        - serial_number
        - status
        - error_message
        - wallet_transaction_id
        - created_datetime
        - updated_datetime
        - completed_datetime
      title: OrderSchema
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    GiftCardOrderStatus:
      type: string
      enum:
        - pending
        - processing
        - completed
        - cancelled
      title: GiftCardOrderStatus
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: api-key
      description: Your PayVessel business API key.
    apiSecret:
      type: apiKey
      in: header
      name: api-secret
      description: Your PayVessel business API secret.

````