---
title: "Retrieve fulfillment data for orders"
method: POST
path: "/v1/chains/{chain_name}/orders/fulfillment-data"
tags: ["orders"]
---

# Retrieve fulfillment data for orders

`POST /v1/chains/{chain_name}/orders/fulfillment-data`

Retrieve signed fulfillment data based on the list of order IDs and corresponding fees.

## Path parameters

- `chain_name` string, required — The name of chain

## Request body

- FulfillmentDataRequest[]
  - `order_id` string, uuid, required
  - `taker_address` string, required — Address of the intended account fulfilling the order
  - `fees` Fee[], required
    - `amount` string, required — Fee payable to recipient upon settlement
    - `type` 'ROYALTY' | 'MAKER_ECOSYSTEM' | 'TAKER_ECOSYSTEM' | 'PROTOCOL', required — Fee type
    - `recipient_address` string, required — Wallet address of fee recipient
  - `token_id` string — Token ID for the ERC721 or ERC1155 token when fulfilling a collection order

## Response `200`

Successful response

- object
  - `result` object, required
    - `fulfillable_orders` FulfillableOrder[], required
      - `order` Order, required
        - `account_address` string, required
        - `buy` Item[], required
          - union
            - NativeItem
              - …
            - ERC20Item
              - …
            - ERC721Item
              - …
            - ERC1155Item
              - …
            - ERC721CollectionItem
              - …
            - ERC1155CollectionItem
              - …
        - `fees` Fee[], required
          - `amount` string, required — Fee payable to recipient upon settlement
          - `type` 'ROYALTY' | 'MAKER_ECOSYSTEM' | 'TAKER_ECOSYSTEM' | 'PROTOCOL', required — Fee type
          - `recipient_address` string, required — Wallet address of fee recipient
        - `chain` Chain, required — The chain details
          - `id` string, required — The id of chain
          - `name` string, required — The name of chain
        - `created_at` string, date-time, required — Time the Order is created
        - `end_at` string, date-time, required — Time after which the Order is considered expired
        - `id` string, required — Global Order identifier
        - `order_hash` string, required
        - `protocol_data` ProtocolData, required
          - `order_type` 'FULL_RESTRICTED' | 'PARTIAL_RESTRICTED', required — Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED
          - `counter` string, required — big.Int or uint256 string for order counter
          - `zone_address` string, required — Immutable zone address
          - `seaport_address` string, required — Immutable Seaport contract address
          - `seaport_version` string, required — Immutable Seaport contract version
        - `salt` string, required — A random value added to the create Order request
        - `sell` Item[], required
          - union
            - NativeItem
              - …
            - ERC20Item
              - …
            - ERC721Item
              - …
            - ERC1155Item
              - …
            - ERC721CollectionItem
              - …
            - ERC1155CollectionItem
              - …
        - `signature` string, required — Digital signature generated by the user for the specific Order
        - `start_at` string, date-time, required — Time after which Order is considered active
        - `status` union, required — The Order status
          - CancelledOrderStatus
            - `name` 'CANCELLED', required — The order status indicating a order is has been cancelled or about to be cancelled.
            - `pending` boolean, required — Whether the cancellation of the order is pending
            - `cancellation_type` 'ON_CHAIN' | 'OFF_CHAIN' | 'UNDERFUNDED', required — Whether the cancellation was done on-chain or off-chain or as a result of an underfunded account
          - PendingOrderStatus
            - `name` 'PENDING', required — The order status that indicates the order is yet to be active due to various reasons.
            - `evaluated` boolean, required — Whether the order has been evaluated after its creation
            - `started` boolean, required — Whether the order has reached its specified start time
          - ActiveOrderStatus
            - `name` 'ACTIVE', required — The order status that indicates an order can be fulfilled.
          - InactiveOrderStatus
            - `name` 'INACTIVE', required — The order status that indicates an order cannot be fulfilled.
            - `sufficient_approvals` boolean, required — Whether the order offerer has sufficient approvals
            - `sufficient_balances` boolean, required — Whether the order offerer still has sufficient balance to complete the order
          - FilledOrderStatus
            - `name` 'FILLED', required — A terminal order status indicating that an order has been fulfilled.
          - ExpiredOrderStatus
            - `name` 'EXPIRED', required — A terminal order status indicating that an order cannot be fulfilled due to expiry.
        - `type` 'LISTING' | 'BID' | 'COLLECTION_BID' | 'TRAIT_BID' | 'METADATA_BID', required — Order type
        - `updated_at` string, date-time, required — Time the Order is last updated
        - `fill_status` FillStatus, required — The ratio of the order that has been filled, an order that has been fully filled will have the same numerator and denominator values.
          - `numerator` string, required — The numerator of the fill status
          - `denominator` string, required — The denominator of the fill status
        - `trait_criteria` TraitFilter[] — Trait filters for TRAIT_BID orders; omitted for other order types.
          - `trait_type` string, required — The trait type (attribute name)
          - `values` string[], required — The trait values to match against
        - `metadata_id` string, uuid — Metadata identifier for METADATA_BID orders created with a single metadata stack. Omitted for other order types and for metadata bids created with `metadata_criteria`.
        - `metadata_criteria` MetadataFieldFilter[] — Field-level metadata filters for METADATA_BID orders created with criteria instead of a `metadata_id`. Omitted for other order types and for metadata bids created with a `metadata_id`.
          - `field_name` string, required — The metadata field name (top-level field or `attribute:<trait_type>`)
          - `values` string[], required — The metadata field values to match against (OR semantics)
      - `token_id` string — Token ID for the ERC721 or ERC1155 token when fulfilling a collection order
      - `extra_data` string, required
    - `unfulfillable_orders` UnfulfillableOrder[], required
      - `order_id` string, required — OrderID for the requested but unfulfillable order
      - `token_id` string — Token ID for the ERC721 or ERC1155 token when fulfilling a collection order
      - `reason` string, required — Nullable string containing error reason if the signing is unsuccessful for the order

## Other responses

- `400` — Bad Request (400)
- `404` — The specified resource was not found (404)
- `500` — Internal Server Error (500)
- `503` — Service Unavailable (503) - RPC or upstream service temporarily unavailable
- `504` — Gateway Timeout (504) - Upstream validation request timed out

---

[API](https://skmtc.dev/immutable/apis/immutable-zkevm-api.md) · [All operations](https://skmtc.dev/immutable/apis/immutable-zkevm-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/immutable/immutable-zkevm-api/revisions/59f94155fcd0/schema)
