# FishbowlLegacyRequest

These requests where implemented into RESTfulFish to match the syntax of Fishbowl's legacy API which can be found on Fishbowl's Wiki. Refer to [this page](https://www.fishbowlinventory.com/wiki/Fishbowl_Legacy_API#Legacy_Requests) for further details.

All objects are to be passed through the body in raw format and must be within&#x20;

```markup
<FishbowlLegacyObjects>...</FishbowlLegacyObjects>
```

or

```javascript
{
    "FishbowlLegacyObjects": {
    ...
    }
}
```

depending on the query path used (i.e. http(s)://restfulfish:1234/(**xml**/**json**)/).

Refer to [this page](https://www.fishbowlinventory.com/wiki/Fishbowl_Legacy_API#Legacy_Objects) for further information regarding Fishbowl objects.

> #### Fishbowl Inventory Wiki
>
> Any occurrences of the letters DB refer to a value used as a variable within the database. For instance \<OrderTypeID>DB int\</OrderTypeID> expects one of following numbers: 1, 10, 20, 30 or 40. Each number specifies an order type. 1 being none, 10 a purchase order and so on. The values and their significance can be found by accessing your [database tables](https://www.fishbowlinventory.com/wiki/Data#Database_tables). Other indicators within the syntax include int, string, boolean, double, and date/time. These are all typical coding data types aside from date/time. Below is the format and an example for inputting date/time.
>
> * year-month-dayThours:minutes:seconds
> * 2019-08-17T15:43:51

## Add Inventory

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=AddInventoryRq`

Adds initial inventory of a part.

#### Query Parameters

| Name           | Type    | Description |
| -------------- | ------- | ----------- |
| PartNum        | string  |             |
| Quantity       | integer |             |
| UOMID          | integer |             |
| Cost           | integer |             |
| Note           | string  |             |
| LocationTagNum | integer |             |
| TagNum         | integer |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### Tracking

This object is not required.

{% tabs %}
{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "Tracking": {
         "TrackingItem": {
            "PartTracking": {
               "PartTrackingID": "int",
               "Name": "string",
               "Abbr": "string",
               "Description": "",
               "SortOrder": "int",
               "TrackingTypeID": "DB int",
               "Active": "boolean"
            },
            "TrackingValue": "int / double / string / date"
         }
      }
   }
}
```
{% endtab %}

{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<Tracking>
		<TrackingItem>
			<PartTracking>
				<PartTrackingID>int</PartTrackingID>
				<Name>string</Name>
				<Abbr>string</Abbr>
				<Description />
				<SortOrder>int</SortOrder>
				<TrackingTypeID>DB int</TrackingTypeID>
				<Active>boolean</Active>
			</PartTracking>
			<TrackingValue>int / double / string / date</TrackingValue>
		</TrackingItem>
	</Tracking>
</FishbowlLegacyObjects>
```
{% endtab %}
{% endtabs %}

## Add Memo

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=AddMemoRq`

Adds a memo to the specified object.

#### Query Parameters

| Name        | Type   | Description                                               |
| ----------- | ------ | --------------------------------------------------------- |
| ItemType    | string | Part, Product, Customer, Vendor, SO, PO, TO, MO, RMA, BOM |
| PartNum     | string |                                                           |
| ProductNum  | string |                                                           |
| OrderNum    | string |                                                           |
| CustomerNum | string |                                                           |
| VendorNum   | string |                                                           |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### Memo

This object is required.

{% tabs %}
{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "Memo": {
         "ID": "int",
         "Memo": "string",
         "UserName": "string",
         "DateCreated": "date/time"
      }
   }
}
```
{% endtab %}

{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<Memo>
		<ID>int</ID>
		<Memo>string</Memo>
		<UserName>string</UserName>
		<DateCreated>date/time</DateCreated>
	</Memo>
</FishbowlLegacyObjects>
```
{% endtab %}
{% endtabs %}

## Add SO Item

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=AddSOItemRq`

Adds an item to a Sales Order.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| OrderNum | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### SalesOrderItem

This object is required.

{% tabs %}
{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<SalesOrderItem>
		<ID>int</ID>
		<ProductNumber>string</ProductNumber>
		<SOID>int</SOID>
		<Description>string</Description>
		<CustomerPartNum>string</CustomerPartNum>
		<Taxable>boolean</Taxable>
		<Quantity>int</Quantity>
		<ProductPrice>int</ProductPrice>
		<TotalPrice>int</TotalPrice>
		<UOMCode>DB string</UOMCode>
		<ItemType>DB int</ItemType>
		<Status>DB int</Status>
		<QuickBooksClassName>DB string</QuickBooksClassName>
		<LineNumber>int</LineNumber>
		<KitItemFlag>boolean</KitItemFlag>
		<ShowItemFlag>boolean</ShowItemFlag>
		<AdjustmentAmount>double</AdjustmentAmount>
		<AdjustPercentage>int</AdjustPercentage>
		<DateLastFulfillment>date/time</DateLastFulfillment>
		<DateLastModified>date/time</DateLastModified>
		<DateScheduledFulfillment>date/time</DateScheduledFulfillment>
		<ExchangeSOLineItem>int</ExchangeSOLineItem>
		<ItemAdjustID>DB int</ItemAdjustID>
		<QtyFulfilled>int</QtyFulfilled>
		<QtyPicked>int</QtyPicked>
		<RevisionLevel>int</RevisionLevel>
		<TotalCost>double</TotalCost>
		<TaxableFlag>boolean</TaxableFlag>
	</SalesOrderItem>
</FishbowlLegacyObjects>
```
{% endtab %}

{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "SalesOrderItem": {
         "ID": "int",
         "ProductNumber": "string",
         "SOID": "int",
         "Description": "string",
         "CustomerPartNum": "string",
         "Taxable": "boolean",
         "Quantity": "int",
         "ProductPrice": "int",
         "TotalPrice": "int",
         "UOMCode": "DB string",
         "ItemType": "DB int",
         "Status": "DB int",
         "QuickBooksClassName": "DB string",
         "LineNumber": "int",
         "KitItemFlag": "boolean",
         "ShowItemFlag": "boolean",
         "AdjustmentAmount": "double",
         "AdjustPercentage": "int",
         "DateLastFulfillment": "date/time",
         "DateLastModified": "date/time",
         "DateScheduledFulfillment": "date/time",
         "ExchangeSOLineItem": "int",
         "ItemAdjustID": "DB int",
         "QtyFulfilled": "int",
         "QtyPicked": "int",
         "RevisionLevel": "int",
         "TotalCost": "double",
         "TaxableFlag": "boolean"
      }
   }
}
```
{% endtab %}
{% endtabs %}

## Add WO Item

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=AddWorkItemRq`

Add an item to an existing open WO.

#### Query Parameters

| Name        | Type    | Description |
| ----------- | ------- | ----------- |
| OrderNum    | string  |             |
| TypeId      | integer | DB int      |
| Description | string  |             |
| PartNum     | string  |             |
| Quantity    | integer |             |
| UOMCode     | string  |             |
| Cost        | integer | Money       |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Build BOM

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=BuildBomRq`

Adjust the inventory in a tag.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| BomNumber     | string  |             |
| Quantity      | integer |             |
| DateScheduled | string  | Date        |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Calculate SO

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CalculateSORq`

This generates a shipping order that is completely fictitious. You would use this request to calculate the cost etc. If you want to actually process this order you need to use the Save.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### SalesOrder

This object is required and contains multiple sub-objects. All sub-objects (CustomFields, Memos, & SalesOrderItem) may contain multiple instances of the sub-object. Refer to [Sales Order](https://www.fishbowlinventory.com/wiki/Fishbowl_Legacy_API#Sales_Order) object API for further details.

{% tabs %}
{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "SalesOrder": {
         "ID": "int",
         "Note": "string",
         "TotalPrice": "double",
         "TotalTax": "double",
         "PaymentTotal": "double",
         "ItemTotal": "double",
         "Salesman": "string",
         "Number": "string",
         "Status": "DB int",
         "Carrier": "DB string",
         "FirstShipDate": "date/time",
         "CreatedDate": "date/time",
         "IssuedDate": "date/time",
         "TaxRatePercentage": "double",
         "TaxRateName": "string",
         "ShippingCost": "double",
         "ShippingTerms": "DB string",
         "PaymentTerms": "DB string",
         "CustomerContact": "string",
         "CustomerName": "string",
         "CustomerID": "int",
         "FOB": "DB string",
         "QuickBooksClassName": "DB string",
         "LocationGroup": "DB string",
         "PriorityId": "DB int",
         "CurrencyRate": "double",
         "CurrencyName": "DB string",
         "PriceIsInHomeCurrency": "boolean",
         "BillTo": {
            "Name": "string",
            "AddressField": "string",
            "City": "string",
            "Zip": "string",
            "Country": "string",
            "State": "string"
         },
         "Ship": {
            "Name": "string",
            "AddressField": "string",
            "City": "string",
            "Zip": "string",
            "Country": "string",
            "State": "string"
         },
         "IssueFlag": "boolean",
         "VendorPO": "string",
         "CustomerPO": "string",
         "UPSServiceID": "DB int",
         "TotalIncludesTax": "boolean",
         "TypeID": "DB int",
         "URL": "string",
         "Cost": "double",
         "DateCompleted": "date/time",
         "DateLastModified": "date/time",
         "DateRevision": "date/time",
         "RegisterID": "int",
         "ResidentialFlag": "boolean",
         "SalesmanInitials": "string",
         "CustomFields": "Custom Field objects",
         "Memos": "Memo objects",
         "Items": {
            "SalesOrderItem": "Sales Order Item objects"
         }
      }
   }
}
```
{% endtab %}

{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<SalesOrder>
		<ID>int</ID>
		<Note>string</Note>
		<TotalPrice>double</TotalPrice>
		<TotalTax>double</TotalTax>
		<PaymentTotal>double</PaymentTotal>
		<ItemTotal>double</ItemTotal>
		<Salesman>string</Salesman>
		<Number>string</Number>
		<Status>DB int</Status>
		<Carrier>DB string</Carrier>
		<FirstShipDate>date/time</FirstShipDate>
		<CreatedDate>date/time</CreatedDate>
		<IssuedDate>date/time</IssuedDate>
		<TaxRatePercentage>double</TaxRatePercentage>
		<TaxRateName>string</TaxRateName>
		<ShippingCost>double</ShippingCost>
		<ShippingTerms>DB string</ShippingTerms>
		<PaymentTerms>DB string</PaymentTerms>
		<CustomerContact>string</CustomerContact>
		<CustomerName>string</CustomerName>
		<CustomerID>int</CustomerID>
		<FOB>DB string</FOB>
		<QuickBooksClassName>DB string</QuickBooksClassName>
		<LocationGroup>DB string</LocationGroup>
		<PriorityId>DB int</PriorityId>
		<CurrencyRate>double</CurrencyRate>
		<CurrencyName>DB string</CurrencyName>
		<PriceIsInHomeCurrency>boolean</PriceIsInHomeCurrency>
		<BillTo>
				<Name>string</Name>
				<AddressField>string</AddressField>
				<City>string</City>
				<Zip>string</Zip>
				<Country>string</Country>
				<State>string</State>
		</BillTo>
		<Ship>
				<Name>string</Name>
				<AddressField>string</AddressField>
				<City>string</City>
				<Zip>string</Zip>
				<Country>string</Country>
				<State>string</State>
		</Ship>
		<IssueFlag>boolean</IssueFlag>
		<VendorPO>string</VendorPO>
		<CustomerPO>string</CustomerPO>
		<UPSServiceID>DB int</UPSServiceID>
		<TotalIncludesTax>boolean</TotalIncludesTax>
		<TypeID>DB int</TypeID>
		<URL>string</URL>
		<Cost>double</Cost>
		<DateCompleted>date/time</DateCompleted>
		<DateLastModified>date/time</DateLastModified>
		<DateRevision>date/time</DateRevision>
		<RegisterID>int</RegisterID>
		<ResidentialFlag>boolean</ResidentialFlag>
		<SalesmanInitials>string</SalesmanInitials>
		<CustomFields>Custom Field objects</CustomFields>
		<Memos>Memo objects</Memos>
		<Items>
				<SalesOrderItem>Sales Order Item objects</SalesOrderItem>
		</Items>
	</SalesOrder>
</FishbowlLegacyObjects>
```
{% endtab %}
{% endtabs %}

## Carrier List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CarrierListRq`

Returns the names of every carrier in your database.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Close Short SO

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CloseShortSORq`

This request is used to close short a sales order.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| SONumber | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Customer Get

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CustomerGetRq`

This returns a Customer object from your database with all the data associated with that customer. _Note: When currency rate is 0 then customer is using the default currency rate_.

#### Query Parameters

| Name | Type   | Description   |
| ---- | ------ | ------------- |
| Name | string | Customer Name |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Customer List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CustomerListRq`

Returns a list of every customer in your database with their details.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Customer Name List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CustomerNameListRq`

Returns a list of the names of all customers in your database.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Cycle Count

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=CycleCountRq`

Used to correct inventory amounts. Including tracking information in optional.

#### Query Parameters

| Name       | Type    | Description |
| ---------- | ------- | ----------- |
| PartNum    | string  | DB int      |
| Quantity   | integer |             |
| LocationID | integer | DB int      |
| Tracking   | string  |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Email Report

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=EmailReportRq`

Emails a report to a given email address (Date ranges cannot be specified).

#### Query Parameters

| Name       | Type   | Description |
| ---------- | ------ | ----------- |
| ReportName | string |             |
| ReportTree | string |             |
| Email      | string |             |
| Name       | string |             |
| Value      | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Export List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ExportListRq`

Returns all available export options.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Export

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ExportRq`

Returns export data of specified export type.

#### Path Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
| Type | string | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Execute Query

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ExecuteQueryRq`

Returns results of SQL query in csv format. Two options are available. A query that has been saved in the Fishbowl Client data module can be executed using or a query can be placed directly in the call using.

#### Query Parameters

| Name  | Type   | Description          |
| ----- | ------ | -------------------- |
| Name  | string | DB string (optional) |
| Query | string | DB string (optional) |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Account List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetAccountListRq`

Returns a list of all QuickBooks accounts complete with IDs, types, and balances.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Part List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetPartListRq`

This request will return the information on a specified part.

#### Query Parameters

| Name         | Type    | Description |
| ------------ | ------- | ----------- |
| PartNum      | string  | DB string   |
| PartDesc     | string  |             |
| PartDetails  | string  |             |
| PartUPC      | string  |             |
| PartType     | string  | DB string   |
| ABCCode      | string  |             |
| VendorName   | string  | DB string   |
| VendorNum    | string  |             |
| ProductNum   | string  | DB string   |
| ProductDesc  | string  |             |
| ActiveFlag   | boolean |             |
| ShowActive   | boolean |             |
| ShowInactive | boolean |             |
| HasBOM       | boolean |             |
| Configurable | boolean |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Pick

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetPickRq`

This request will return the information on a specified pick.

#### Query Parameters

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| PickNum | string | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get PO List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetPOListRq`

Returns all purchase order queued in the specified location.

#### Query Parameters

| Name          | Type   | Description |
| ------------- | ------ | ----------- |
| LocationGroup | string | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Receipt

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetReceiptRq`

Returns receipt information.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| OrderNumber   | string  | DB string   |
| OrderType     | integer | DB int      |
| LocationGroup | integer | DB int      |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Ship List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetShipListRq`

Request a list of Shipments. This includes all those that have been shipped. Be sure to include more specifics on what you want to see. Note You cannot use Order Number in conjunction with Order Type and Carrier. Order Number returns the history of the use of that number, see Example 2. Also, to merit a response you must include the RecordCount field.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| StartRecord   | integer |             |
| RecordCount   | integer |             |
| OrderTypeID   | integer |             |
| StatusID      | integer | DB int      |
| LocationGroup | integer | DB int      |
| Carrier       | integer | DB int      |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Shipment

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetShipmentRq`

Returns the shipment details about a specified shipment.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| LocationGroup | integer |             |
| Name          | string  |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Ship Now List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetShipNowListRq`

Returns a list of orders that are packed and ready to ship.

#### Query Parameters

| Name          | Type   | Description |
| ------------- | ------ | ----------- |
| LocationGroup | string |             |
| Name          | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get SO List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetSOListRq`

Returns a detailed list of SOs (Sales Orders) based on the search parameters.

#### Query Parameters

| Name                   | Type    | Description |
| ---------------------- | ------- | ----------- |
| SONum                  | string  |             |
| LocationGroup          | integer | DB int      |
| Status                 | string  |             |
| CustomerPO             | string  |             |
| CustomerName           | string  |             |
| AccountNumber          | string  |             |
| BillTo                 | string  |             |
| ShipTo                 | string  |             |
| ProductNum             | string  |             |
| ProductDesc            | string  |             |
| ProductDetails         | string  |             |
| Salesman               | string  |             |
| Type                   | string  |             |
| DateIssuedBegin        | string  | date        |
| DateIssuedEnd          | string  | date        |
| DateCreatedBegin       | string  | date        |
| DateCreatedEnd         | string  | date        |
| DateLasteModifiedBegin | string  | date        |
| DateLasteModifiedEnd   | string  | date        |
| DateScheduledBegin     | string  | date        |
| DateScheduledEnd       | string  | date        |
| DateCompletedBegin     | string  | date        |
| DateCompletedEnd       | string  | date        |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Get Total Inventory

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=GetTotalInventoryRq`

Returns the total number of the inquired item at a specific location.

#### Query Parameters

| Name          | Type   | Description |
| ------------- | ------ | ----------- |
| PartNumber    | string |             |
| LocationGroup | string | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Import List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ImportListRq`

This request returns a list of your import options.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Import

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ImportRq`

This request allows you to import data. Data columns can be blank, but each data column must be represented in the request. **It is best practice to always include the header rows when importing data.** Refer to the following page for instructions to import and export data from each module: https://www.fishbowlinventory.com/wiki/Imports\_and\_Exports#List\_of\_imports\_and\_exports

#### Query Parameters

| Name | Type   | Description                |
| ---- | ------ | -------------------------- |
| Type | string | Obtained from Import List  |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### Rows

This object is required.

{% tabs %}
{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "Rows": {
         "Row": [
            "Name,AddressName,AddressContact,AddressType,IsDefault,Address,City,State,Zip,Country,Main,Home,Work,Mobile,Fax,Email,Pager,Web,Other,CurrencyName,CurrencyRate,DefaultTerms,DefaultCarrier,DefaultShippingTerms,Status,AccountNumber,Active,MinOrderAmount,AlertNotes,URL,DefaultCarrier,CF-",
            "\"Monroe Bike Company\",\"Williams Bike Company - 210\",\"Williams Bike Company\",\"50\",\"true\",\"Wall st.\",\"New York\",\"NY\",\"21004\",\"UNITED STATES\",\"212-321-5643\",,,,,,,,,,,,,,,,,,,,,,"
         ]
      }
   }
}
```
{% endtab %}

{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<Rows>
		<Row>Name,AddressName,AddressContact,AddressType,IsDefault,Address,City,State,Zip,Country,Main,Home,Work,Mobile,Fax,Email,Pager,Web,Other,CurrencyName,CurrencyRate,DefaultTerms,DefaultCarrier,DefaultShippingTerms,Status,AccountNumber,Active,MinOrderAmount,AlertNotes,URL,DefaultCarrier,CF-</Row>
		<Row>"Monroe Bike Company","Williams Bike Company - 210","Williams Bike Company","50","true","Wall st.","New York","NY","21004","UNITED STATES","212-321-5643",,,,,,,,,,,,,,,,,,,,,,</Row>
	</Rows>
</FishbowlLegacyObjects>
```
{% endtab %}
{% endtabs %}

## Import Headers

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ImportHeaderRq`

This request allows you to get the headers of an import.

#### Query Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
| Type | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Inventory Quantity

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=InvQtyRq`

Returns details and quantity of a specified Part or list of parts modified within the given date range.

#### Query Parameters

| Name             | Type   | Description |
| ---------------- | ------ | ----------- |
| PartNum          | string | DB string   |
| LastModifiedFrom | string | Date        |
| LastModifiedTo   | string | Date        |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Issue SO

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=IssueSORq`

Will issue a SalesOrder.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| SONumber | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Light Part List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=LightPartListRq`

Returns a simple list of parts.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Load SO

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=LoadSORq`

This will return information about the specified sales order.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| SONumber | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Location List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=LocationListRq`

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Location Query

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=LocationQueryRq`

Returns information on a Location.

#### Query Parameters

| Name       | Type    | Description |
| ---------- | ------- | ----------- |
| LocationID | integer | DB int      |
| TagNum     | integer |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Make Payment

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=MakePaymentRq`

Makes a payment on the specified order.

#### Query Parameters

| Name       | Type   | Description |
| ---------- | ------ | ----------- |
| PaymentObj | object |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

#### Payment

This object is required.

{% tabs %}
{% tab title="JSON" %}
```javascript
{
   "FishbowlLegacyObjects": {
      "Payment": {
         "Amount": "double",
         "SalesOrderNumber": "string",
         "CurrencyRate": "double",
         "PaymentDate": "date/time",
         "PaymentMethod": "DB sting",
         "Reference": "string",
         "Confirmation": "string",
         "ExpirationDate": "date/time",
         "DepositAccountName": "string",
         "TransactionID": "string",
         "AuthorizationCode": "string",
         "MerchantAccount": "string",
         "MiscCreditCard": "string",
         "CreditCard": {
            "CardNumber": "string",
            "CardExpMonth": "int",
            "CardExpYear": "int",
            "SecurityCode": "string",
            "NameOnCard": "string",
            "CardAddress": "string",
            "CardZipCode": "string",
            "CardCountryCode": "string"
         }
      }
   }
}
```
{% endtab %}

{% tab title="XML" %}
```markup
<FishbowlLegacyObjects>
	<Payment>
		<Amount>double</Amount>
		<SalesOrderNumber>string</SalesOrderNumber>
		<CurrencyRate>double</CurrencyRate>
		<PaymentDate>date/time</PaymentDate>
		<PaymentMethod>DB sting</PaymentMethod>
		<Reference>string</Reference>
		<Confirmation>string</Confirmation>
		<ExpirationDate>date/time</ExpirationDate>
		<DepositAccountName>string</DepositAccountName>
		<TransactionID>string</TransactionID>
		<AuthorizationCode>string</AuthorizationCode>
		<MerchantAccount>string</MerchantAccount>
		<MiscCreditCard>string</MiscCreditCard>
		<CreditCard>
			<CardNumber>string</CardNumber>
			<CardExpMonth>int</CardExpMonth>
			<CardExpYear>int</CardExpYear>
			<SecurityCode>string</SecurityCode>
			<NameOnCard>string</NameOnCard>
			<CardAddress>string</CardAddress>
			<CardZipCode>string</CardZipCode>
			<CardCountryCode>string</CardCountryCode>
		</CreditCard>
	</Payment>
</FishbowlLegacyObjects>
```
{% endtab %}
{% endtabs %}

## Move

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=MoveRq`

Moves items from one specified location to another.

#### Query Parameters

| Name                   | Type    | Description     |
| ---------------------- | ------- | --------------- |
| SourceLocationObj      | object  | Location object |
| PartObj                | object  | Part object     |
| Quantity               | integer |                 |
| Note                   | string  |                 |
| TrackingObj            | object  | Tracking object |
| DestinationLocationObj | object  | Location object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Part Cost

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=PartCostRq`

Use this request to obtain the average cost at which you've previously bought this part.

#### Query Parameters

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| PartNum | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Part Get

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=PartGetRq`

Returns all the information pertaining to a specified part at your default location.

#### Query Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| Number   | string  |             |
| GetImage | boolean |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Part Query

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=PartQueryRq`

Like Part Get, Part Query Returns all the information pertaining to a specified Part. However, you can also specify location.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| PartNum       | integer |             |
| LocationGroup | string  |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Pick Query

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=PickQueryRq`

This request will return all the picks that you specify. You can refine your results by its place in the index (StartIndex in conjunction with RecordCount), pick number, order number, pick type, status, priority, the first date to include, last date to include, whether or not it's fulfillable, or by its location group. The starting index defines at what point the records you want returned will start, default is 0. Record count is how may records you want returned.

#### Query Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| StartIndex    | integer |             |
| RecordCount   | integer |             |
| PickNum       | string  |             |
| OrderNum      | string  |             |
| PickType      | string  | DB string   |
| Status        | string  | DB string   |
| Priority      | string  | DB string   |
| StartDate     | string  | date/time   |
| EndDate       | string  | date/time   |
| Fulfillable   | boolean |             |
| LocationGroup | string  | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Print Report

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=PrintReportRq`

Prints the default report for the specified module.

#### Query Parameters

| Name       | Type    | Description |
| ---------- | ------- | ----------- |
| ModuleName | string  |             |
| Name       | string  |             |
| Value      | integer |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Product Get

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ProductGetRq`

Requests detailed information about the product. This includes the product's underlying part, the product's base UOM and its tracking information. GetImage is a flag indicating if the image should be included.

#### Query Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| Number   | string  |             |
| GetImage | boolean |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Product Price

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ProductPriceRq`

Request the best price for a given product.

#### Query Parameters

| Name          | Type   | Description |
| ------------- | ------ | ----------- |
| ProductNumber | string |             |
| CustomerName  | string |             |
| Quantity      | string |             |
| Date          | string | date        |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Quick Ship

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=QuickShipRq`

Will do an automatic pick, pack, and ship on a Sales Order that has already been issued (Work Orders tied to the SO must be fulfilled also). Fishbowl automatically picks the best tracking available. FulfillServiceItems indicates if the service items on the SO should be fulfilled during ship.

#### Query Parameters

| Name                | Type    | Description |
| ------------------- | ------- | ----------- |
| SONumber            | string  |             |
| FulfillServiceItems | boolean |             |
| LocationGroup       | string  |             |
| ErrorIfNotFulfilled | boolean |             |
| ShipDate            | string  | date        |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Receiving List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ReceivingListRq`

Returns information about orders in the receiving module. You can narrow your search by filling in as many of the controls as you wish. It will return all orders that contain the specified details. Note To get a response the order number specified must be a receiving order!

#### Query Parameters

| Name                | Type    | Description |
| ------------------- | ------- | ----------- |
| OrderNumber         | string  |             |
| OrderType           | integer | DB int      |
| ReceiptStatus       | integer | DB int      |
| StartRecord         | integer |             |
| RecordCount         | integer |             |
| DateIssuedBegin     | string  | date/time   |
| DateIssuedEnd       | string  | date/time   |
| DateFulfilledBegin  | string  | date/time   |
| DateFulfilledEnd    | string  | date/time   |
| DateReceivedBegin   | string  | date/time   |
| DateReceivedEnd     | string  | date/time   |
| DateReconciledBegin | string  | date/time   |
| DateReconciledEnd   | string  | date/time   |
| PartNum             | string  |             |
| PartDesc            | string  |             |
| LocationGroupID     | integer | DB int      |
| RMANum              | string  |             |
| VendorName          | string  |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Discount

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveDiscountRq`

Saves and updates discounts

#### Query Parameters

| Name        | Type   | Description |
| ----------- | ------ | ----------- |
| DiscountObj | object |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Image

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveImageRq`

Saves an image to the associated object.

#### Query Parameters

| Name               | Type    | Description        |
| ------------------ | ------- | ------------------ |
| Type               | string  |                    |
| Number             | string  |                    |
| Image              | string  | encoded in base64? |
| UpdateAssociations | boolean |                    |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Pick

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SavePickRq`

This request enables you to make changes to and fulfill picks.

#### Query Parameters

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| PickObj | object | Pick object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Receipt

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveReceiptRq`

Updates receipt stored data.

#### Query Parameters

| Name       | Type   | Description    |
| ---------- | ------ | -------------- |
| ReceiptObj | object | Receipt object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Report

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveReportRq`

Saves the report data. (Must restart client to view changes)

#### Query Parameters

| Name       | Type   | Description   |
| ---------- | ------ | ------------- |
| ReportTree | string | DB string     |
| ReportObj  | object | Report object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Shipment

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveShipmentRq`

Saves the shipment data.

#### Query Parameters

| Name        | Type   | Description |
| ----------- | ------ | ----------- |
| ShippingObj | object |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save UPC

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveUPCRq`

Request permits the change of a product UPC (Universal Product Code).

#### Query Parameters

| Name           | Type    | Description |
| -------------- | ------- | ----------- |
| PartNum        | string  | DB string   |
| UPC            | string  |             |
| UpdateProducts | boolean |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Set Default Part Location

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SetDefPartLocRq`

Enables you to change the default location of a part. Use the database to find all the details for the Location object that you want to use as the default location.

#### Query Parameters

| Name        | Type   | Description     |
| ----------- | ------ | --------------- |
| PartNum     | string |                 |
| LocationObj | object | Location object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Save Tax rate

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=SaveTaxRateRq`

Saves and updates tax rates. Note The percent that is entered must be entered in decimal format (i.e. 10 percent is entered as **.1**).

#### Query Parameters

| Name       | Type   | Description     |
| ---------- | ------ | --------------- |
| TaxRateObj | object | Tax rate object |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Ship

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=ShipRq`

Ships an order. Note Order Number must be written with an S in front.

#### Query Parameters

| Name           | Type    | Description |
| -------------- | ------- | ----------- |
| ShipNum        | string  |             |
| ShipDate       | string  | date/time   |
| FulfillService | boolean |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## UOM

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=UOMRq`

Requests a list of UOMs

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Vendor Get

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=VendorGetRq`

Retrieves a vendor object. Note When currency rate is 0 then vendor is using the default currency rate

#### Query Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
| Name | string | DB string   |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Vendor List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=VendorListRq`

Requests a list of all vendors.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Vendor Name List

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=VendorNameListRq`

Requests a list of all vendor names.

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Void Shipment

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=VoidShipmentRq`

This request is used to void shipments that are in a packed status or shipped status.

#### Query Parameters

| Name    | Type   | Description |
| ------- | ------ | ----------- |
| ShipNum | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}

## Void SO

<mark style="color:blue;">`GET`</mark> `http(s)://restfulfish:1234/(xml/json)/?FishbowlLegacyRequest=VoidShipmentRq`

This request is used to void sales orders.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| SONumber | string |             |

{% tabs %}
{% tab title="200 " %}
```
```
{% endtab %}
{% endtabs %}
