Tính giá xuất kho FIFO, bình quân API

Tính giá xuất kho và tồn cuối kỳ theo FIFO, bình quân gia quyền cuối kỳ, bình quân di động hoặc đích danh, số chính xác, có sổ chi tiết từng phiếu.

POSThttps://apibox.io.vn/v1/inventory-costing
Dữ liệu & JSON▶ Dùng thử online

Gửi các phiếu nhập, xuất trong kỳ dạng transactions (JSON, CSV hoặc XLSX): ngày date, loại type (receipt / issue, hoặc nhap / xuat), mã hàng item, số lượng quantity, đơn giá unit_cost hoặc thành tiền amount cho phiếu nhập, kèm tồn đầu kỳ opening theo mã hàng. Chọn phương pháp method: fifo (nhập trước xuất trước), weighted_average (bình quân gia quyền cuối kỳ: một đơn giá cho cả kỳ từ tồn đầu + toàn bộ nhập), moving_average (bình quân sau mỗi lần nhập) hoặc specific (thực tế đích danh theo lô lot).

Mọi phép tính dùng số nguyên (số lượng đến 6 chữ số thập phân, tiền theo đơn vị nhỏ nhất với decimals 0 cho VND hoặc 2 cho USD) nên không có sai số dấu phẩy động: giá trị mỗi lần xuất được làm tròn một lần, phần dư nằm lại trong kho, lần xuất cuối lấy toàn bộ giá trị còn lại. Kết quả có sổ chi tiết từng mã hàng theo kiểu thẻ kho S10-DN (số lượng, đơn giá, thành tiền, số dư lũy kế, các lớp FIFO đã dùng), tổng nhập, xuất, tồn cuối, các lớp FIFO còn lại và chênh lệch làm tròn với bình quân cuối kỳ. Xuất vượt tồn bị từ chối trừ khi gửi allow_negative=true.

Tham số

TênVị tríKiểuBắt buộcMặc định
transactionsbodyarraycó[{"date":"2026-01-05","type":"receipt","item":"A","quantity":200,"unit_cost":12000,"ref":"PN01"}, {"type":"issue","item":"A","quantity":150}]. Hoặc file / csv.
methodbody|querystringkhôngfifofifo, weighted_average, moving_average, specific.
openingbodyarraykhôngTồn đầu kỳ: [{"item":"A","quantity":100,"amount":1000000}].
decimalsbody|querynumberkhông0Số chữ số thập phân của tiền (0 với VND, 2 với USD).
allow_negativebody|querybooleankhôngfalseCho phép xuất âm kho, tính theo giá nhập gần nhất.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/inventory-costing" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"fifo","opening":[{"item":"A","quantity":100,"amount":1000000}],"transactions":[{"date":"2026-01-05","type":"receipt","item":"A","quantity":200,"unit_cost":12000,"ref":"PN01"},{"date":"2026-01-10","type":"issue","item":"A","quantity":150,"ref":"PX01"}]}'

Kết quả trả về

{
  "method": "fifo",
  "decimals": 0,
  "items": 1,
  "transactions": 2,
  "totals": {
    "opening": 1000000,
    "receipts": 2400000,
    "issues_cost": 1600000,
    "closing": 1800000
  },
  "results": [
    {
      "item": "A",
      "opening": {
        "quantity": 100,
        "amount": 1000000
      },
      "receipts": {
        "quantity": 200,
        "amount": 2400000
      },
      "issues": {
        "quantity": 150,
        "amount": 1600000
      },
      "closing": {
        "quantity": 150,
        "amount": 1800000,
        "unit_cost": 12000
      },
      "closing_layers": [
        {
          "from": "2026-01-05",
          "quantity": 150,
          "amount": 1800000,
          "unit_cost": 12000
        }
      ],
      "ledger": [
        {
          "date": "2026-01-05",
          "ref": "PN01",
          "type": "receipt",
          "quantity": 200,
          "unit_cost": 12000,
          "amount": 2400000,
          "balance_quantity": 300,
          "balance_amount": 3400000
        },
        {
          "date": "2026-01-10",
          "ref": "PX01",
          "type": "issue",
          "quantity": 150,
          "unit_cost": 10666.6667,
          "amount": 1600000,
          "balance_quantity": 150,
          "balance_amount": 1800000,
          "layers": [
            {
              "from": "opening",
              "quantity": 100,
              "amount": 1000000
            },
            {
              "from": "2026-01-05",
              "quantity": 50,
              "amount": 600000
            }
          ]
        }
      ]
    }
  ],
  "warnings": [],
  "reviewed": "2026-11-11"
}

Ứng dụng

  • Tính giá vốn hàng bán cho cửa hàng, shop thương mại điện tử
  • Định giá hàng tồn kho cho báo cáo tháng
  • So sánh FIFO và bình quân trước khi chọn chính sách
  • Kiểm tra thẻ kho xuất từ phần mềm quản lý kho

Hỏi đáp

Vì sao không dùng số thực?

Tính bình quân lặp lại bằng số thực bị lệch từng phần nhỏ của đồng. API giữ số lượng và tiền dạng số nguyên, mỗi lần xuất chỉ làm tròn một lần, nên nhập − xuất luôn bằng giá trị tồn cuối.

Có hỗ trợ LIFO không?

Không. Chuẩn mực kế toán Việt Nam (VAS 02, TT 99/2025) không cho phép LIFO; API hỗ trợ FIFO, bình quân gia quyền và thực tế đích danh.

Các phiếu cùng ngày được xử lý theo thứ tự nào?

Theo thứ tự bạn gửi. Với bình quân cuối kỳ thứ tự không ảnh hưởng vì mọi phiếu xuất trong kỳ dùng cùng một đơn giá.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →