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

# Fulfillment inquiry

> Lets the supplier query the fulfillment result of a Mode C order from Waffo Point Topup. This is the pull-based counterpart of the fulfillment event webhook, typically used for reconciliation or when a webhook notification was missed.

At least one of `salesOrderId` and `payOrderId` is required. If the order does not exist or does not belong to the supplier, an error is returned per the common error code spec.

Authentication uses the common API signature (SHA256WithRSA) carried in the `X-SIGNATURE` header.



## OpenAPI

````yaml /api-reference/point-topup-api.json post /api/v1/gamepin/fulfillment-inquiry
openapi: 3.1.0
info:
  title: Waffo Point Topup
  description: >-
    Waffo-provided endpoints for the Waffo Point Topup supplier integration.
    Supplier-implemented endpoints (point code retrieval, direct fulfillment,
    fulfillment inquiry) are optional integrations and are documented in the
    Developer Docs instead, because their paths and contracts are defined by the
    supplier.
  termsOfService: https://www.waffo.com
  version: 1.5.1
servers:
  - url: https://api-sandbox.waffoplay.com
    description: Sandbox
security: []
tags:
  - name: Point Topup redirect
    description: >-
      Signed redirect entry point that hands a supplier user over to the Waffo
      Point Topup storefront and checkout.
  - name: Point Topup fulfillment inquiry
    description: >-
      Pull-based lookup of a Mode C order's fulfillment result, used for
      reconciliation or when a webhook notification was missed.
  - name: Point Topup fulfillment webhook
    description: >-
      Final fulfillment result pushed from Waffo Point Topup to the supplier's
      notification endpoint.
paths:
  /api/v1/gamepin/fulfillment-inquiry:
    post:
      tags:
        - Point Topup fulfillment inquiry
      summary: Fulfillment inquiry
      description: >-
        Lets the supplier query the fulfillment result of a Mode C order from
        Waffo Point Topup. This is the pull-based counterpart of the fulfillment
        event webhook, typically used for reconciliation or when a webhook
        notification was missed.


        At least one of `salesOrderId` and `payOrderId` is required. If the
        order does not exist or does not belong to the supplier, an error is
        returned per the common error code spec.


        Authentication uses the common API signature (SHA256WithRSA) carried in
        the `X-SIGNATURE` header.
      operationId: pointTopupFulfillmentInquiry
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PointTopupFulfillmentInquiryRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePointTopupFulfillmentResult'
components:
  schemas:
    PointTopupFulfillmentInquiryRequest:
      type: object
      required:
        - supplierId
      properties:
        supplierId:
          type: string
          description: Unique identifier assigned by Waffo to the supplier.
          maxLength: 64
          example: WAFFO_POINT_TOPUP_001
        salesOrderId:
          type: string
          description: >-
            Supplier's order ID provided in the signed redirect URL. Used
            together with `supplierId` as the idempotent key. Required unless
            `payOrderId` is provided.
          maxLength: 64
          example: A123456
        payOrderId:
          type: string
          description: >-
            Pay order ID generated by the Waffo Point Topup system. Required
            unless `salesOrderId` is provided.
          maxLength: 64
          example: G20250114064421745E079
    ResponsePointTopupFulfillmentResult:
      type: object
      properties:
        code:
          type: string
          description: >-
            Result code. `0` means success; see the point topup error code list
            for the rest.
          example: '0'
        msg:
          type: string
          description: Result message.
          example: success
        data:
          $ref: '#/components/schemas/PointTopupFulfillmentResult'
          description: Fulfillment result. Empty when the request fails.
    PointTopupFulfillmentResult:
      type: object
      required:
        - supplierId
        - salesOrderId
        - fulfillmentStatus
        - faceValue
        - requestedAt
      properties:
        supplierId:
          type: string
          description: Unique identifier assigned by Waffo to the supplier.
          maxLength: 64
          example: WAFFO_POINT_TOPUP_001
        salesOrderId:
          type: string
          description: >-
            Supplier's order ID provided in the signed redirect URL. The
            supplier should stay idempotent on `salesOrderId` + `supplierId`.
          maxLength: 64
          example: A123456
        fulfillmentStatus:
          type: string
          description: >-
            Fulfillment result status.


            - `SUCCESS` — fulfillment succeeded.

            - `PAY_SUCCESS` — payment succeeded. Sent to suppliers without a
            fulfillment API integration, as the trigger for their own delivery
            process.

            - `PAY_SUCCESS_SUPPLY_FAILED` — payment succeeded but fulfillment
            failed. Needs confirmation for refund or reissue.

            - `PAYMENT_FAILED` — payment failed, including user payment timeout.
          maxLength: 24
          enum:
            - SUCCESS
            - PAY_SUCCESS
            - PAY_SUCCESS_SUPPLY_FAILED
            - PAYMENT_FAILED
          example: SUCCESS
        faceValue:
          type: string
          description: Face value.
          maxLength: 32
          example: '3000'
        amount:
          type: string
          description: >-
            Actual amount paid for the order. When both face value and order
            amount are present, validating them against each other is
            recommended.
          example: '3000'
        currency:
          type: string
          description: Order pricing currency, ISO 4217.
          maxLength: 3
          minLength: 3
          example: JPY
        requestedAt:
          type: string
          description: >-
            Waffo-side request time. ISO 8601 extended format in UTC,
            millisecond precision.
          maxLength: 32
          example: '2025-01-05T10:30:00.000Z'
        completedTime:
          type: string
          description: >-
            Order completion time. ISO 8601 extended format in UTC, millisecond
            precision.
          maxLength: 32
          example: '2025-01-05T10:32:00.000Z'
        buyerInfo:
          $ref: '#/components/schemas/PointTopupBuyerInfo'
          description: Buyer information. Present in direct fulfillment scenarios.
        payMethodName:
          type: string
          description: >-
            Payment method the end user actually used, that is the provider or
            card type selected at checkout. For example `DANA` and `GCASH` for
            e-wallets, `CC_VISA` and `DC_VISA` for credit and debit cards.
          maxLength: 24
          example: DANA
        payOrderId:
          type: string
          description: >-
            Unique pay order ID generated by the Waffo Point Topup system.
            Primary reference for tracking payments, refunds and disputes on the
            Waffo Point Topup platform.
          maxLength: 64
          example: G20250114064421745E079
        productId:
          type: string
          description: >-
            Product ID defined by Waffo and used by the supplier. Required for
            multi-product suppliers, optional for single-product suppliers.
          maxLength: 64
          example: XX_POINT
        failureCode:
          type: string
          description: >-
            Failure code.


            For `PAY_SUCCESS_SUPPLY_FAILED`: `SUPPLIER_API_ERROR` (supplier API
            returned an error), `INVALID_ACCOUNT` (user account not found at
            supplier).


            For `PAYMENT_FAILED`: `PAYMENT_TIMEOUT` (user did not pay in time),
            `PAYMENT_DECLINED` (declined by the payment provider),
            `PAYMENT_CANCELLED` (user cancelled the payment).
          maxLength: 32
          example: PAYMENT_TIMEOUT
        failureReason:
          type: string
          description: Failure reason.
          maxLength: 64
          example: User did not complete payment within timeout period
    PointTopupBuyerInfo:
      type: object
      properties:
        supplierUserAccount:
          type: string
          description: Charge account ID.
          maxLength: 64
          example: supplier_user_12345

````