Tally Out module page - how it works, an interactive test form, and the
endpoint reference, all in one place. Set your tenant API Key in the Setup
block below; every request sends the ApiKey header. See
All Forms for the combined surface or Home for the module index.
How it works
FTZ withdrawal (Tally Out) end to end.
Tally Out (FTZ withdrawal)
Tally Out records an FTZ withdrawal (DOC_TYPE TO, channel tally.out.create), with
a withdrawal header plus a multi-row lines repeater (each line needs
product_code + qty_ordered). tally_out_no follows the NEW
convention. Inventory depletion (FIFO by date-in) is performed server-side.
Submit rides the generic inbound pipeline via POST /api/TallyOut/Submit; the response carries the
submission_id. Use the Outbound listing to confirm processing. Customer lookups resolve
your customer master live.
Setup
API key + base URL used by every request below.
Credentials
Leave Base URL blank to call this same server with relative paths (the
normal case). Set it (e.g. https://asci-api.asciofmiami.com) to point the forms
at another host. Every request below sends the ApiKey header.
Sent on every create / submit POST. Click Generate for a fresh one, or a new one is auto-generated per submit if blank.
Test form
Interactive form - POSTs to the API and shows the JSON response + HTTP status.
Maps to POST /api/TallyOut/Submit (DOC_TYPE TO, channel
tally.out.create). Field-by-field Tally Out (FTZ withdrawal)
form with a withdrawal header plus a multi-row
lines repeater (each line: product_code + qty_ordered
required). tally_out_no follows the NEW convention - blank / NEW
means ASCI assigns the next number at insert time. Depletion (FIFO by date-in) is performed
server-side. Customer lookups resolve your customer master live.
Note: FTZ withdrawal entries are filed through the legacy entry process;
API transmit is a planned follow-on. Submit Tally Out still submits inventory
to /api/TallyOut/Submit normally.
FTZ withdrawal entries are filed through the legacy entry process; API transmit is a
planned follow-on. The FTZ withdrawal (a Type-06 entry via the entry-summary path)
has no API transmit today, so the button below is disabled. The placeholder JS
(POST /api/Ftz/{id}/TransmitWithdrawal) is left in place so it is trivial to
re-enable once the real endpoint exists.
Tally Out rides the generic inbound pipeline; the Submit response carries the
submission_id + status_url. (There is no dedicated per-submission
Tally status endpoint - the run-locked IPAPIGET consumer drains the queue.)
Endpoints
Tally Out endpoint family (api/TallyOut). Full request schema below.
Tally Out endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /api/TallyOut/Submit | Submit an FTZ withdrawal. Returns submission_id. |
| GET | /api/TallyOut/Outbound | List processed outbound Tally Out records. |
| GET | /api/TallyOut/Outbound/{submissionId} | Fetch one processed record. |
Note: Tally In / Out ride the generic inbound pipeline; there is no dedicated per-submission status endpoint.
Schema
Request body for POST /api/TallyOut/Submit. Envelope: { "document": { "header": { … }, "lines": [ … ] } }. tally_out_no follows the "NEW" convention. Depletion against WPHDT (AV→PO, FIFO by Date-In, partial-line split) runs server-side. Dates are ISO YYYY-MM-DD. Header maps to EPFTZDOH, lines to EPIFDD.
document (root)
| Field | Type | Req? | Max | Description |
|---|---|---|---|---|
metadata | object | No | — | Client-supplied key/value bag (string→string, ≤50 entries), echoed on status / webhooks. |
header | object | Yes | - | Withdrawal header (see below). |
lines | array | No | - | Detail lines (see below). |
| Field | Type | Req? | Max | Description |
|---|---|---|---|---|
tally_out_no | string | No | 6 | Tally-out number. Blank / NEW => ASCI assigns it. |
type | string | No | 1 | 1=Internal, 2=Customer. |
status | string | No | 2 | SERVER-ASSIGNED (BP/OS/SH/PS/CN); writer creates the header at BP. |
type_216 | string | No | 1 | Type of Activity 0216 (M/F/E/D/T/blank). |
po_no | string | No | 13 | Purchase-order number. |
customer_code | string | No | 6 | Customer code. |
sold_to_code | string | No | 6 | Sold-to code. |
ship_to_code | string | No | 5 | Ship-to code. |
operator | string | No | 2 | Operator. |
qp_consumption | string | No | 1 | QP consumption / 3461 indicator. |
order_date | string | No | - | Order date (ISO YYYY-MM-DD). |
requested_date | string | No | - | Requested date (ISO YYYY-MM-DD). |
| Field | Type | Req? | Max | Description |
|---|---|---|---|---|
line_no | string | No | 4 | Line number. |
product_code | string | Yes | 20 | Product code = item(16) + pack(4). |
qty_ordered | number | Yes | - | Quantity ordered (validated ≤ available; over-order rejected). |
unit_price | number | No | - | Unit price. |
warehouse_key | string | No | 16 | WPHDT key = bnb(1)+receipt(11)+line(4). Blank => FIFO; supplied => deplete that exact lot. |
ref_7512 | string | No | 6 | 7512 reference number. |
item_status | string | No | 2 | Detail status (BP/OS). |