### GET /customers/{id}/facilities/{fid}/charges Source: https://developer.3plcentral.com/index Retrieves an itemized list of all transactions with charges for a specified period. This endpoint is intended for input into an invoicing system. ```APIDOC ## GET /customers/{id}/facilities/{fid}/charges ### Description Retrieves an itemized list of all transactions with charges for a specified period. This endpoint is intended for input into an invoicing system. ### Method GET ### Endpoint /customers/{id}/facilities/{fid}/charges ### Parameters #### Path Parameters - **id** (string) - Required - The customer ID. - **fid** (string) - Required - The facility ID. #### Query Parameters - **beginDate** (string) - Required - The start date for the period (e.g., YYYY-MM-DD). - **endDate** (string) - Required - The end date for the period (e.g., YYYY-MM-DD). ### Response #### Success Response (200) - **transactions** (array) - A list of transactions with charges. - **transactionId** (string) - The ID of the transaction. - **chargeAmount** (number) - The amount of the charge. - **chargeDate** (string) - The date of the charge. #### Response Example ```json { "transactions": [ { "transactionId": "txn_12345", "chargeAmount": 50.75, "chargeDate": "2023-10-26" } ] } ``` ``` -------------------------------- ### GET /customers/{customerId}/itemizedchargeslist Source: https://developer.3plcentral.com/index Fetches the itemized charges list for a specific customer. This endpoint provides a comprehensive breakdown of all charges associated with a customer's account. ```APIDOC ## GET /customers/{customerId}/itemizedchargeslist ### Description Retrieves the itemized charges list for a specific customer, including details on each charge and its associated transactions. ### Method GET ### Endpoint `/customers/{customerId}/itemizedchargeslist` ### Parameters #### Path Parameters - **customerId** (string) - Required - The unique identifier for the customer whose itemized charges are being requested. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **charges** (array) - An array of charge objects, each containing `chargeType`, `subtotal`, and a `details` array. - **details** (array) - An array of detail objects, each containing `warehouseTransactionPriceCalcId`, `numUnits`, `chargeLabel`, `unitDescription`, `chargePerUnit`, `glAcctNum`, `sku`, and `systemGenerated`. #### Response Example ```json { "charges": [ { "chargeType": 1, "subtotal": 10, "details": [ { "warehouseTransactionPriceCalcId": 10662, "numUnits": 2, "chargeLabel": "Storage Fee", "unitDescription": "Month", "chargePerUnit": 5, "glAcctNum": "100-1000", "sku": "STOR001", "systemGenerated": true } ] }, { "chargeType": 2, "subtotal": 5, "details": [ { "warehouseTransactionPriceCalcId": 10663, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 5, "glAcctNum": "", "sku": "", "systemGenerated": false } ] } ], "_links": { "self": { "href": "" } } } ``` ``` -------------------------------- ### Retrieve Customer Itemized Charges List (cURL) Source: https://developer.3plcentral.com/index This cURL command demonstrates how to make a GET request to the Itemized Charges List API. It requires the customer ID, facility ID, and a date range (beginDate and endDate) as parameters. The request includes necessary headers like Host, Content-Type, and Accept. ```bash curl --location 'https://secure-wms.com/customers/2/facilities/1/charges?beginDate=12-1-2019&endDate=01-07-2020' \ --header 'Host: secure-wms.com' \ --header 'Content-Type: application/json; charset=utf-8' \ --header 'Accept: application/hal+json' ``` -------------------------------- ### Retrieve Customer Facility Charges (GET) Source: https://developer.3plcentral.com/index This endpoint retrieves an itemized list of all transactions with charges for a specified customer facility within a date range. It is intended as input for an invoicing system. Requires customer ID, facility ID, and date range parameters. ```http GET /customers/{id}/facilities/{fid}/charges?beginDate={beginningofmonth} &endDate={endofmonth} ``` -------------------------------- ### GET /customers/{customer_id}/facilities/{facility_id}/charges Source: https://developer.3plcentral.com/index Retrieves a list of itemized charges for a given customer and facility. The charges are filtered by a date range and include various transaction types like orders, receipts, adjustments, and assemblies. ```APIDOC ## GET Customer Itemized Charges List ### Description Retrieves a list of orders, receivers, adjustments, and/or assemblies that have associated charges for a specified customer and facility, within a given date range. ### Method GET ### Endpoint `/customers/{customer_id}/facilities/{facility_id}/charges` ### Parameters #### Path Parameters - **customer_id** (integer) - Required - The unique identifier for the customer. - **facility_id** (integer) - Required - The unique identifier for the facility. #### Query Parameters - **beginDate** (string) - Required - The start date for the charge billing period. Format: YYYY-MM-DD or YYYY-MM-DDTHH-MM-SS. The time portion is optional. - **endDate** (string) - Required - The end date for the charge billing period. Format: YYYY-MM-DD or YYYY-MM-DDTHH-MM-SS. The time portion is optional. ### Request Example ```bash curl --location 'https://secure-wms.com/customers/2/facilities/1/charges?beginDate=12-1-2019&endDate=01-07-2020' \ --header 'Host: secure-wms.com' \ --header 'Content-Type: application/json; charset=utf-8' \ --header 'Accept: application/hal+json' ``` ### Response #### Success Response (200) - **_links** (object) - Contains links to related resources. - **_embedded** (object) - Contains embedded resources, including a list of charges. - **item** (array) - A list of transaction objects, each containing charge details. - **transactionId** (integer) - The unique identifier for the transaction. - **warehouseTransactionType** (integer) - The type of warehouse transaction (1: Inbound, 2: Order, 3: Adjust, 4: Assembly). - **creationDate** (string) - The date and time when the transaction was created. - **confirmedDate** (string) - The date and time when the transaction was confirmed. - **referenceNum** (string) - A reference number for the transaction. - **charges** (array) - A list of charges associated with the transaction. - **chargeType** (integer) - The type of charge. - **subtotal** (number) - The subtotal amount for the charge. - **details** (array) - Detailed breakdown of the charge. - **warehouseTransactionPriceCalcId** (integer) - The ID for the charge calculation. - **numUnits** (integer) - The number of units involved in the charge. - **chargeLabel** (string) - A description of the charge. - **unitDescription** (string) - The description of a unit. - **chargePerUnit** (number) - The cost per unit. - **glAcctNum** (string) - General ledger account number. - **sku** (string) - Stock Keeping Unit. - **systemGenerated** (boolean) - Indicates if the charge was system-generated. #### Response Example ```json { "_links": { "self": { "href": "/customers/2/facilities/1/charges?begindate=2019-12-01T00%3A00%3A00.0000000&enddate=2020-01-07T00%3A00%3A00.0000000" }, "https://api.3plcentral.com/rels/customers/customer": { "href": "/customers/2" }, "https://api.3plcentral.com/rels/properties/facility": { "href": "/properties/facilities/1" }, "item": { "href": "" } }, "_embedded": { "item": [ { "transactionId": 4902, "warehouseTransactionType": 1, "creationDate": "2020-01-07T13:42:01.0266667", "confirmedDate": "2020-01-06T15:42:00", "referenceNum": "EliteB-010720", "charges": [ { "chargeType": 1, "subtotal": 20, "details": [ { "warehouseTransactionPriceCalcId": 10665, "numUnits": 4, "chargeLabel": "Added Sorts", "unitDescription": "Sort", "chargePerUnit": 5, "sku": "", "systemGenerated": false }, { "warehouseTransactionPriceCalcId": 10666, "numUnits": 0, "chargeLabel": "Mu Pallet", "unitDescription": "Pallet", "chargePerUnit": 15, "glAcctNum": "", "sku": "", "ptItem": "", "ptItemDescription": "", "ptArAcct": "", "systemGenerated": true } ] } ], "_links": { "self": { "href": "" } } }, { "transactionId": 4904, "warehouseTransactionType": 3, "creationDate": "2020-01-07T14:26:00", "confirmedDate": "2020-01-07T00:00:00", "referenceNum": "ADJ01072020", "poNum": "", "charges": [ { "chargeType": 1, "subtotal": 10, "details": [ { "warehouseTransactionPriceCalcId": 10661, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 10, "glAcctNum": "", "sku": "", "systemGenerated": false } ] }, { "chargeType": 5, "subtotal": 3.5, "details": [ { "warehouseTransactionPriceCalcId": 10662, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 3.5, "glAcctNum": "", "sku": "" } ] } ] } ] } } ``` ``` -------------------------------- ### Get Authentication Token - cURL Request Source: https://developer.3plcentral.com/index This cURL command demonstrates how to make a POST request to the token endpoint to obtain an authentication token. It includes necessary headers such as Content-Type and Authorization, along with the JSON request body. ```curl curl --location 'https://secure-wms.com/AuthServer/api/Token' \ --header 'Host: secure-wms.com' \ --header 'Connection: keep-alive' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Basic {{Enter your Base64-encoded Key Here}}' \ --header 'Accept-Encoding: gzip,deflate,sdch' \ --header 'Accept-Language: en-US,en;q=0.8' \ --data '{ "grant_type": "client_credentials", "user_login_id": "{{user_login_id}}" }' ``` -------------------------------- ### Get Authentication Token - JSON Request Body Source: https://developer.3plcentral.com/index This JSON object defines the request body for obtaining an authentication token. It requires the grant type and optionally accepts a TPL GUID and user login information. Ensure proper formatting for the request. ```json { "grant_type": "client_credentials", "tpl": "{{Enter TPL GUID}}", //optional "user_login": "{{ENTER 3PL LOGIN}}" //You may also authenticate with "user_login_id" which will be your 3PL UserLogin ID. } ``` -------------------------------- ### Get Authentication Token - Success Response Source: https://developer.3plcentral.com/index This JSON object represents a successful response from the authentication token endpoint. It contains the access token, token type, expiration time, and other relevant details. The access token is essential for subsequent API calls. ```json { "access_token": "eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOiIxNTYyNjE2MTMwIiwiaXNzIjoiaHR0cDovL3NlY3VyZS13bXMuY29tL0F1dGhTZXJ2ZXIiLCJhdWQiOiJodHRwOi8vc2VjdXJlLXdtcy5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJGYWNpbGl0eVZpZXcgRmFjaWxpdHlFZGl0IE9yZGVyRWRpdCBPcmRlclZpZXcgQ3VzdG9tZXJFZGl0IEN1c3RvbWVyVmlldyBJbnZlbnRvcnlEZXRhaWxWaWV3IEl0ZW1lZGl0IEl0ZW12aWV3IFJlY2VpdmVyVmlldyBSZWNlaXZlckVkaXQgUE9FZGl0IFBPVmlldyBSZWFkUHJvcGVydGllc1RoaXJkUGFydHkiLCJodHRwOi8vd3d3LjNwbENlbnRyYWwuY29tL0F1dGhTZXJ2ZXIvY2xhaW1zL3VzZXJpbmZvIjoiZXlKRGJHbGxiblJKWkNJNk1UVXlMQ0pEYkdsbGJuUkRkWE4wYjIxbGNrbGtJam95TENKVWFISmxaVkJzUjNWcFpDSTZJ", "token_type": "Bearer", "expires_in": 0, "refresh_token": null, "scope": null } ``` -------------------------------- ### Authentication Steps API Source: https://developer.3plcentral.com/index This section outlines the process of obtaining a Basic Authentication Token required for submitting REST API calls. It details the necessary credentials and best practices for token management. ```APIDOC ## POST /AuthServer/api/Token ### Description Obtains a Bearer token for authenticating with the 3PL Central REST APIs. This token is required for subsequent API requests. ### Method POST ### Endpoint `https://secure-wms.com/AuthServer/api/Token` ### Parameters #### Headers - **Host** (string) - Required - `secure-wms.com` - **Connection** (string) - Required - `keep-alive` - **Content-Type** (string) - Required - `application/json; charset=utf-8` - **Accept** (string) - Required - `application/hal+json` - **Authorization** (string) - Required - `Basic {{Enter your Base64-encoded Key Here}}`. Your Base64-encoded Authorization Key. BASIC authentication requires sending the userid and password, separated by a single colon (':') character, within a Base64-encoded string in the credentials. For OAuth2, the userid and password are the ClientID and ClientSecret. - **Accept-Encoding** (string) - Required - `gzip,deflate,sdch` - **Accept-Language** (string) - Required - `en-US,en;q=0.8` #### Request Body - **grant_type** (string) - Required - `client_credentials` - **tpl** (string) - Optional - `{{Enter TPL GUID}}` - **user_login** (string) - Required - `{{ENTER 3PL LOGIN}}` (You may also authenticate with `user_login_id` which will be your 3PL UserLogin ID.) ### Request Example ```json { "grant_type": "client_credentials", "user_login_id": "{{user_login_id}}" } ``` ### Response #### Success Response (200 OK) - **access_token** (string) - The generated Bearer token. - **token_type** (string) - The type of token, typically "Bearer". - **expires_in** (integer) - The duration in seconds until the token expires. - **refresh_token** (string) - A token to refresh the access token (may be null). - **scope** (string) - The scope of the token (may be null). #### Response Example ```json { "access_token": "eyJ0eXAiOiJnd3QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOiIxNTYyNjE2MTMwIiwiaXNzIjoiaHR0cDovL3NlY3VyZS13bXMuY29tL0F1dGhTZXJ2ZXIiLCJhdWQiOiJodHRwOi8vc2VjdXJlLXdtcy5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJGYWNpbGl0eVZpZXcgRmFjaWxpdHlFZGl0IE9yZGVyRWRpdCBPcmRlclZpZXcgQ3VzdG9tZXJFZGl0IEN1c3RvbWVyVmlldyBJbnZlbnRvcnlEZXRhaWxWaWV3IEl0ZW1lZGl0IEl0ZW12aWV3IFJlY2VpdmVyVmlldyBSZWNlaXZlckVkaXQgUE9FZGl0IFBPVmlldyBSZWFkUHJvcGVydGllc1RoaXJkUGFydHkiLCJodHRwOi8vd3d3LjNwbENlbnRyYWwuY29tL0F1dGhTZXJ2ZXIvY2xhaW1zL3VzZXJpbmZvIjoiZXlKRGJHbGxiblJKWkNJNk1UVXlMQ0pEYkdsbGJuUkRkWE4wYjI1YmNrbGtJam95TENKVWFISmxaVkJzUjNWcFpDSTZJ", "token_type": "Bearer", "expires_in": 0, "refresh_token": null, "scope": null } ``` ### Error Handling - **400 Bad Request**: Indicates a problem with the request, such as an invalid header or incorrect body formatting. See the response payload for more details. - **401 Unauthorized**: Missing or invalid Authorization header with a proper bearer token. This is common when using an incorrect User ID or User Login. ``` -------------------------------- ### HTTP Response Headers for 3PL Central API Source: https://developer.3plcentral.com/index These headers are commonly returned in HTTP responses from the 3PL Central API. They provide caching directives, content information, and server details. Understanding these headers is crucial for efficient API integration and debugging. ```http Cache-Control: no-cache Pragma: no-cache Content-Length: 1951 Content-Type: application/hal+json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/10.0 Link: ; rel="profile" X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 07 Jan 2020 20:22:40 GMT ``` -------------------------------- ### PUT /customers/{id}/facilities/{fid}/invoicebinder Source: https://developer.3plcentral.com/index Attaches a generated invoice number to a list of specified transactions. This is typically used after an invoicing system generates an invoice number. ```APIDOC ## PUT /customers/{id}/facilities/{fid}/invoicebinder ### Description Attaches a generated invoice number to a list of specified transactions. This is typically used after an invoicing system generates an invoice number. ### Method PUT ### Endpoint /customers/{id}/facilities/{fid}/invoicebinder ### Parameters #### Path Parameters - **id** (string) - Required - The customer ID. - **fid** (string) - Required - The facility ID. #### Query Parameters - **invoiceNumber** (string) - Required - The generated invoice number to associate with the transactions. #### Request Body - **transactionIds** (array) - Required - A list of transaction IDs to associate with the invoice number. - **transactionId** (string) - The ID of the transaction. ### Request Example ```json { "transactionIds": [ "txn_12345", "txn_67890" ] } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the invoice number has been attached. #### Response Example ```json { "message": "Invoice number INV-001 attached to specified transactions." } ``` ``` -------------------------------- ### Customer Itemized Charges List Response (JSON) Source: https://developer.3plcentral.com/index This JSON object represents the successful response from the Customer Itemized Charges List API. It includes links to related resources and an embedded list of transactions, each detailing charges, warehouse transaction types, and other relevant information. Note that the 'item' array contains the actual charge details. ```json { "_links": { "self": { "href": "/customers/2/facilities/1/charges?begindate=2019-12-01T00%3A00%3A00.0000000&enddate=2020-01-07T00%3A00%3A00.0000000" }, "https://api.3plcentral.com/rels/customers/customer": { "href": "/customers/2" }, "https://api.3plcentral.com/rels/properties/facility": { "href": "/properties/facilities/1" }, "item": { "href": "" } }, "_embedded": { "item": [ { "transactionId": 4902, "warehouseTransactionType": 1, "creationDate": "2020-01-07T13:42:01.0266667", "confirmedDate": "2020-01-06T15:42:00", "referenceNum": "EliteB-010720", "charges": [ { "chargeType": 1, "subtotal": 20, "details": [ { "warehouseTransactionPriceCalcId": 10665, "numUnits": 4, "chargeLabel": "Added Sorts", "unitDescription": "Sort", "chargePerUnit": 5, "sku": "", "systemGenerated": false }, { "warehouseTransactionPriceCalcId": 10666, "numUnits": 0, "chargeLabel": "Mu Pallet", "unitDescription": "Pallet", "chargePerUnit": 15, "glAcctNum": "", "sku": "", "ptItem": "", "ptItemDescription": "", "ptArAcct": "", "systemGenerated": true } ] } ], "_links": { "self": { "href": "" } } }, { "transactionId": 4904, "warehouseTransactionType": 3, "creationDate": "2020-01-07T14:26:00", "confirmedDate": "2020-01-07T00:00:00", "referenceNum": "ADJ01072020", "poNum": "", "charges": [ { "chargeType": 1, "subtotal": 10, "details": [ { "warehouseTransactionPriceCalcId": 10661, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 10, "glAcctNum": "", "sku": "", "systemGenerated": false } ] }, { "chargeType": 5, "subtotal": 3.5, "details": [ { "warehouseTransactionPriceCalcId": 10662, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 3.5, "glAcctNum": "", "sku": "" } ] } ] } ] } } ``` -------------------------------- ### API Response: Itemized Charges List (JSON) Source: https://developer.3plcentral.com/index This JSON structure represents a list of itemized charges for a customer. It includes details such as charge type, subtotal, and individual transaction details like units, labels, and costs. This is typically returned by the 3PL Central API. ```json { "customer": { "itemizedChargesList": [ { "chargeType": 1, "subtotal": 10, "details": [ { "warehouseTransactionPriceCalcId": 10662, "numUnits": 2, "chargeLabel": "Order Processing Fee", "unitDescription": "Order", "chargePerUnit": 5, "glAcctNum": "", "sku": "", "systemGenerated": false } ] }, { "chargeType": 2, "subtotal": 5, "details": [ { "warehouseTransactionPriceCalcId": 10663, "numUnits": 1, "chargeLabel": "Manual entry made", "unitDescription": "Transaction", "chargePerUnit": 5, "glAcctNum": "", "sku": "", "systemGenerated": false } ] } ], "_links": { "self": { "href": "" } } } } ``` -------------------------------- ### Associate Invoice Number with Transactions (PUT) Source: https://developer.3plcentral.com/index This endpoint associates a generated invoice number with a list of transaction IDs. The transaction IDs are provided as the payload of the request. Requires customer ID, facility ID, and the generated invoice number. ```http PUT /customers/{id}/facilities/{fid}/invoicebinder?invoiceNumber={generatedinvoicenumber] ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.