Orders

The Orders API provides unified access to orders from multiple marketplaces including Amazon, MercadoLibre, Shopify, and more. Manage order fulfillment, sync status, and process shipments from a single interface.

All endpoints require authentication via Bearer token with orders:read or orders:write scope.


GET/v1/orders

List orders

Returns a paginated list of orders from all connected marketplaces.

Query parameters

  • Name
    page
    Type
    integer
    Description

    Page number (default: 1).

  • Name
    per_page
    Type
    integer
    Description

    Items per page (default: 20, max: 100).

  • Name
    status
    Type
    string
    Description

    Filter by status: pending, processing, shipped, delivered, cancelled.

  • Name
    fulfillment_status
    Type
    string
    Description

    Filter by fulfillment: unfulfilled, partial, fulfilled.

  • Name
    channel
    Type
    string
    Description

    Filter by channel: amazon, meli, shopify, ebay, web.

  • Name
    date_from
    Type
    datetime
    Description

    Orders created after this date.

  • Name
    date_to
    Type
    datetime
    Description

    Orders created before this date.

  • Name
    search
    Type
    string
    Description

    Search by order number or customer name.

Request

GET
/v1/orders
curl -G https://app.price2b.com/api/v1/orders \
  -H "Authorization: Bearer {token}" \
  -d status=processing \
  -d fulfillment_status=unfulfilled \
  -d per_page=20

Response

{
  "success": true,
  "data": {
    "orders": [
      {
        "id": 5001,
        "order_number": "ORD-2026-001234",
        "channel": "amazon",
        "channel_order_id": "114-1234567-1234567",
        "status": "processing",
        "fulfillment_status": "unfulfilled",
        "financial_status": "paid",
        "customer": {
          "name": "Juan Pérez",
          "email": "juan@example.com"
        },
        "shipping_address": {
          "name": "Juan Pérez",
          "address1": "Av. Corrientes 1234",
          "city": "Buenos Aires",
          "state": "C",
          "postal_code": "C1043",
          "country": "AR"
        },
        "items": [
          {
            "id": 10001,
            "sku": "PROD-001",
            "name": "Wireless Headphones",
            "quantity": 2,
            "price": 49.99,
            "currency": "USD"
          }
        ],
        "totals": {
          "subtotal": 99.98,
          "shipping": 15.00,
          "tax": 0.00,
          "total": 114.98,
          "currency": "USD"
        },
        "created_at": "2026-01-20T14:30:00Z"
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 20,
      "total": 150,
      "last_page": 8
    }
  }
}

GET/v1/orders/:id

Get order details

Retrieves full details for an order including items, shipments, and timeline.

Request

GET
/v1/orders/5001
curl https://app.price2b.com/api/v1/orders/5001 \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "data": {
    "id": 5001,
    "order_number": "ORD-2026-001234",
    "channel": "amazon",
    "channel_order_id": "114-1234567-1234567",
    "status": "processing",
    "fulfillment_status": "unfulfilled",
    "customer": {
      "name": "Juan Pérez",
      "email": "juan@example.com",
      "phone": "+54-11-4000-0000"
    },
    "billing_address": {"..."},
    "shipping_address": {"..."},
    "items": [
      {
        "id": 10001,
        "product_id": 12345,
        "sku": "PROD-001",
        "name": "Wireless Headphones",
        "quantity": 2,
        "quantity_fulfilled": 0,
        "price": 49.99,
        "currency": "USD",
        "weight": 0.25
      }
    ],
    "totals": {
      "subtotal": 99.98,
      "shipping": 15.00,
      "discount": 0.00,
      "tax": 0.00,
      "total": 114.98,
      "currency": "USD"
    },
    "shipments": [],
    "timeline": [
      {
        "event": "order_created",
        "timestamp": "2026-01-20T14:30:00Z",
        "description": "Order received from Amazon"
      },
      {
        "event": "payment_received",
        "timestamp": "2026-01-20T14:35:00Z",
        "description": "Payment confirmed"
      }
    ],
    "notes": null,
    "created_at": "2026-01-20T14:30:00Z",
    "updated_at": "2026-01-20T14:35:00Z"
  }
}

PUT/v1/orders/:id

Update order

Updates order details. Limited fields can be updated depending on order status.

Updatable attributes

  • Name
    status
    Type
    string
    Description

    Order status (if allowed by channel).

  • Name
    notes
    Type
    string
    Description

    Internal notes.

  • Name
    shipping_address
    Type
    object
    Description

    Shipping address (before fulfillment only).

Request

PUT
/v1/orders/5001
curl -X PUT https://app.price2b.com/api/v1/orders/5001 \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Customer requested gift wrapping"
  }'

Response

{
  "success": true,
  "message": "Order updated successfully",
  "data": {
    "id": 5001,
    "notes": "Customer requested gift wrapping",
    "updated_at": "2026-01-31T10:00:00Z"
  }
}

POST/v1/orders/:id/ship

Ship order

Creates a shipment for an order and generates shipping labels.

Required attributes

  • Name
    carrier
    Type
    string
    Description

    Carrier for shipment: fedex, ups, dhl, etc.

  • Name
    service
    Type
    string
    Description

    Carrier service level.

  • Name
    packages
    Type
    array
    Description

    Package details with dimensions and items.

Optional attributes

  • Name
    warehouse_id
    Type
    integer
    Description

    Source warehouse for fulfillment.

  • Name
    notify_customer
    Type
    boolean
    Description

    Send tracking notification to customer (default: true).

Request

POST
/v1/orders/5001/ship
curl -X POST https://app.price2b.com/api/v1/orders/5001/ship \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "carrier": "fedex",
    "service": "INTERNATIONAL_ECONOMY",
    "packages": [
      {
        "weight": 0.5,
        "length": 20,
        "width": 15,
        "height": 10,
        "items": [
          {
            "order_item_id": 10001,
            "quantity": 2
          }
        ]
      }
    ],
    "warehouse_id": 1,
    "notify_customer": true
  }'

Response

{
  "success": true,
  "message": "Shipment created successfully",
  "data": {
    "order_id": 5001,
    "shipment_id": 12345,
    "tracking_number": "794644790303",
    "carrier": "fedex",
    "service": "INTERNATIONAL_ECONOMY",
    "label_url": "https://app.price2b.com/api/v1/shipping/shipments/12345/label",
    "fulfillment_status": "fulfilled",
    "notified_customer": true
  }
}

POST/v1/orders/:id/fulfill

Fulfill order

Marks an order as fulfilled with an existing tracking number (for orders shipped outside the system).

Required attributes

  • Name
    tracking_number
    Type
    string
    Description

    Carrier tracking number.

  • Name
    carrier
    Type
    string
    Description

    Carrier name.

Optional attributes

  • Name
    items
    Type
    array
    Description

    Specific items fulfilled (for partial fulfillment).

  • Name
    notify_customer
    Type
    boolean
    Description

    Send notification to customer.

Request

POST
/v1/orders/5001/fulfill
curl -X POST https://app.price2b.com/api/v1/orders/5001/fulfill \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "tracking_number": "794644790303",
    "carrier": "fedex",
    "notify_customer": true
  }'

Response

{
  "success": true,
  "message": "Order marked as fulfilled",
  "data": {
    "order_id": 5001,
    "fulfillment_status": "fulfilled",
    "tracking_number": "794644790303",
    "carrier": "fedex"
  }
}

POST/v1/orders/:id/cancel

Cancel order

Cancels an order. Only available for unfulfilled orders.

Optional attributes

  • Name
    reason
    Type
    string
    Description

    Cancellation reason.

  • Name
    notify_customer
    Type
    boolean
    Description

    Send cancellation notification.

Request

POST
/v1/orders/5001/cancel
curl -X POST https://app.price2b.com/api/v1/orders/5001/cancel \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Customer requested cancellation",
    "notify_customer": true
  }'

Response

{
  "success": true,
  "message": "Order cancelled successfully",
  "data": {
    "order_id": 5001,
    "status": "cancelled",
    "cancelled_at": "2026-01-31T10:00:00Z"
  }
}

GET/v1/orders/:id/shipments

List order shipments

Returns all shipments associated with an order.

Request

GET
/v1/orders/5001/shipments
curl https://app.price2b.com/api/v1/orders/5001/shipments \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "data": {
    "shipments": [
      {
        "id": 12345,
        "tracking_number": "794644790303",
        "carrier": "fedex",
        "service": "INTERNATIONAL_ECONOMY",
        "status": "in_transit",
        "items": [
          {
            "order_item_id": 10001,
            "sku": "PROD-001",
            "quantity": 2
          }
        ],
        "created_at": "2026-01-31T10:00:00Z"
      }
    ]
  }
}

POST/v1/orders/sync

Sync orders

Triggers a manual sync of orders from connected marketplaces.

Optional attributes

  • Name
    channels
    Type
    array
    Description

    Specific channels to sync: amazon, meli, shopify.

  • Name
    since
    Type
    datetime
    Description

    Only sync orders created after this date.

Request

POST
/v1/orders/sync
curl -X POST https://app.price2b.com/api/v1/orders/sync \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "channels": ["amazon", "meli"],
    "since": "2026-01-01T00:00:00Z"
  }'

Response

{
  "success": true,
  "message": "Order sync started",
  "data": {
    "sync_id": "SYNC-2026-001",
    "status": "processing",
    "channels": ["amazon", "meli"]
  }
}

GET/v1/orders/sync/status

Get sync status

Returns the status of the last order sync operation.

Request

GET
/v1/orders/sync/status
curl https://app.price2b.com/api/v1/orders/sync/status \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "data": {
    "last_sync": {
      "sync_id": "SYNC-2026-001",
      "status": "completed",
      "started_at": "2026-01-31T10:00:00Z",
      "completed_at": "2026-01-31T10:02:30Z",
      "channels": {
        "amazon": {
          "orders_synced": 15,
          "orders_new": 3,
          "orders_updated": 12
        },
        "meli": {
          "orders_synced": 8,
          "orders_new": 2,
          "orders_updated": 6
        }
      }
    },
    "next_scheduled_sync": "2026-01-31T10:15:00Z"
  }
}

Was this page helpful?