---
title: "Push an invoice"
method: POST
path: "/vendor/invoices"
tags: ["Vendor — Invoices"]
---

# Push an invoice

`POST /vendor/invoices`

## Request

- Base URL: `https://app.zobrx.com/api/v1`
- URL: `https://app.zobrx.com/api/v1/vendor/invoices`
- Auth: HTTP bearer

Submit an ERP-generated invoice. Zobrx maps it to the PO, validates quantities, computes the GST tax split, and submits to Amazon. Idempotent on `externalInvoiceId` (and the `Idempotency-Key` header). Scope `vendor:invoices:write`.

## Headers

- `X-Zobrx-Integration-Id` string
- `Idempotency-Key` string

## Request body

- InvoiceIntake
  - `poNumber` string, required: The PO this invoice settles.
  - `externalInvoiceId` string, required: Your ERP's invoice number (dedupe key).
  - `invoiceDate` string, date
  - `lines` object[], required
    - `vendorSku` string: Vendor SKU (or use asin).
    - `asin` string
    - `quantity` integer, required

## Response `200`

Replay (same externalInvoiceId already ingested).

- Invoice
  - `invoiceId` string
  - `externalInvoiceId` string, nullable
  - `poNumber` string, nullable
  - `source` 'zobrx-generated' | 'erp-api' | 'erp-pull' | 'upload'
  - `intakeStatus` 'received' | 'mapped' | 'validated' | 'submitted' | 'failed' | 'rejected'
  - `status` 'submitted' | 'failed'
  - `validationErrors` string[]
  - `invoiceTotal` Money: Integer minor units (paise) + currency.
    - `minor` integer
    - `currency` string
  - `amazonTransactionId` string, nullable
  - `amazonProcessingStatus` 'Processing' | 'Success' | 'Failure', nullable: Confirmed outcome from the Amazon Vendor Transaction Status API. null until polled (typically minutes after submit). Success = Amazon accepted; Failure = rejected (see amazonProcessingErrors).
  - `amazonProcessingErrors` object[]
    - `code` string, nullable
    - `message` string, nullable
  - `submittedAt` string, date-time, nullable

## Other responses

- `201`: Created + submitted.
- `401`: Missing/invalid API key.
- `422`: Validation/precondition failed (unmapped SKU, qty over accepted, missing ship-from GSTIN).

---

[API](https://skmtc.dev/zobrx/apis/zobrx-api.md) · [All operations](https://skmtc.dev/zobrx/apis/zobrx-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zobrx/apis/zobrx-api/revisions/af90eac50273?raw)
