# Download inventory transactions as JSON

**GET** `https://api.zoined.com/v2/download/inventoryTransactions.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&movement_type=waste`

Endpoint: GET /v2/download/inventoryTransactions.json
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer token

## Query parameters:

  - `limit` (number)
    How many entries to return

  - `offset` (number)
    Which offset to return data from

  - `start` (string)
    Return data starting from given date

  - `end` (string)
    Return data ending to given date

  - `movement_type` (string)
    Return data for given movement types only (any of purchase, waste, transfer, stock_take, adjustment)

## Response 200:

  - `200` (unknown)
    Request has been processed successfully.
**Headers**
- `Content-Type: application/json`

## Response 200 fields (application/json):

  - `organisation_id` (string, required)
    Organisation / Store ID
    Example: 540

  - `salesperson_id` (string, required)
    Sales person ID
    Example: 5401

  - `department_id` (string)
    Department ID
    Example: 54011

  - `operator_id` (string)
    Operator ID
    Example: 5402

  - `movement_date` (string, required)
    Date of transaction (yyyy-mm-dd)
    Example: 2016-02-01

  - `movement_time` (string)
    Time of transaction (HH:mm:ss).
    Example: 15:00:00

  - `delivered_date` (string)
    Date of transaction completion (yyyy-mm-dd)
    Example: 2016-02-02

  - `delivered_time` (string)
    Time of transaction completion (HH:mm:ss).
    Example: 15:00:00

  - `product_id` (string)
    1 (string, required) - Product ID
    Example: 123

  - `supplier_id` (string)
    Supplier ID
    Example: 221

  - `parent_product_id` (string)
    Parent Product ID
    Example: 123

  - `quantity` (number, required)
    Quantity moved from/to inventory
    Example: 100

  - `delivered_quantity` (number)
    Final quantity moved from/to inventory after completion.
    Example: 90

  - `expected_quantity` (number)
    Quantity expected in inventory (for stock takes).
    Example: 110

  - `movement_type` (string, required)
    Movement type
    Enum: "purchase", "waste", "transfer", "stock_take", "adjustment", "sale", "internal"

  - `movement_status` (number)
    Movement status. 1=Open, 2=Complete, 3=Complete with variances, 4=Cancelled
    Example: 2

  - `movement_batch_id` (string)
    Optional identifier for batch this movement row is part of.
    Example: june-stock-take

  - `movement_batch_line_id` (string)
    Optional line id within the batch this movement row is part of.
    Example: 1

  - `unit_purchase_price` (number)
    Unit purchase price
    Example: 12.4

  - `unit_purchase_price_wo_vat` (number)
    Unit purchase price without tax
    Example: 10

  - `unit_retail_price` (number)
    Unit retail (sales) price
    Example: 12.4

  - `unit_retail_price_wo_vat` (number)
    Unit retail (sales) price without tax
    Example: 10

  - `reason_code` (string)
    Optional reason code or description for this transaction
    Example: Theft

  - `target_organisation_id` (string)
    Organisation / Store ID for target of inventory transfer. Mandatory for type transfer.
    Example: 510

  - `currency` (string)
    Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.
    Example: EUR

  - `purchase_order_id` (string)
    Order id for purchase order this purchase movement originates from.
    Example: 1234

  - `purchase_order_line_id` (string)
    Order line item id in purchase order this purchase movement line item originates from.
    Example: 1

  - `custom_field_1` (string)
    Custom field 1
    Example: EU only

  - `custom_field_2` (string)
    Custom field 2
    Example: EU only

  - `custom_field_3` (string)
    Custom field 3
    Example: EU only

  - `custom_field_4` (string)
    Custom field 4
    Example: EU only

  - `custom_field_5` (string)
    Custom field 5
    Example: EU only

  - `custom_field_6` (string)
    Custom field 6
    Example: EU only

  - `custom_field_7` (string)
    Custom field 7
    Example: EU only

  - `custom_field_8` (string)
    Custom field 8
    Example: EU only

  - `custom_field_9` (string)
    Custom field 9
    Example: EU only

  - `custom_field_10` (string)
    Custom field 10
    Example: EU only

  - `custom_metric_1` (number)
    Custom metric 1
    Example: 1

  - `custom_metric_2` (number)
    Custom metric 2
    Example: 100

  - `custom_metric_3` (number)
    Custom metric 3
    Example: 2.2

  - `custom_metric_4` (number)
    Custom metric 4
    Example: 1.05

  - `custom_metric_5` (number)
    Custom metric 5
    Example: 10000

## Response 400:

  - `400` (unknown)
    Invalid or malformed request.
**Headers**
- `Content-Type: application/json`

## Response 400 fields (application/json):

  - `status` (string, required)
    Status of the operation OK / Not OK
    Example: Not OK

  - `msg` (string, required)
    Message describing result of operation
    Example: Reason for error

## Response 401:

  - `401` (unknown)
    Missing or invalid authorization token in header
**Headers**
- `Content-Type: application/json`

## Response 401 fields (application/json):

  - `status` (string, required)
    Status of the operation OK / Not OK
    Example: Not OK

  - `msg` (string, required)
    Message describing result of operation
    Example: Unauthorized

## Response 500:

  - `500` (unknown)
    Internal error or exception
**Headers**
- `Content-Type: application/json`

## Response 500 fields (application/json):

  - `status` (string, required)
    Status of the operation OK / Not OK
    Example: Not OK

  - `msg` (string, required)
    Message describing result of operation
    Example: Reason for error

## Response 200 examples:

  - `response` (unknown)

## Response 400 examples:

  - `response` (unknown)

## Response 401 examples:

  - `response` (unknown)

## Response 500 examples:

  - `response` (unknown)

