Invoices

Invoices are submitted by suppliers to retailers after an order has been completely fulfilled and closed. In general, one invoice is submitted per purchase order.

Relationships

  • BrandOrders belong to a single Supplier.
  • RetailerOrders belong to a single Retailer.
  • Invoice LinesInvoices can have many Invoice Lines.

Operations

Click on an Operation to view requirements, options, & examples.

POST /v1/brands/{brand_id}/invoices/ Create an Invoice
GET /v1/brands/{brand_id}/invoices/ Get a list of Invoices
GET /v1/brands/{brand_id}/invoices/{id}/ Get a single Invoice

Invoice Properties

idA static id assigned by RevCascade. Can be used as the primary key in the url of other invoice-related endpoints.
retailer

The retailer that owns the purchase order and that is expected to pay the invoice.

{
  "id": 1000,
  "name": "Demo Retailer"
}
brand

The supplier that submitted the invoice.

{
  "id": 1050,
  "name": "Demo Vendor"
}
currencyThe currency of the invoice. Always 'USD' for now.
purchase_order_number The purchase order number from the Retailer's Order Management System.
invoice_numberThe invoice number from the Supplier's financial system.
terms_net_days_dueThe number of days until the invoice is due.
terms_date_dueThe due date of the invoice.
terms_discount_percentA discount offered by the supplier if the invoice is paid early.
terms_discount_daysThe number of days until the cutoff date for the discount period.
terms_discount_date_dueThe due date of the invoice in order to qualify for discount.
remit_to

The address where the invoice the invoice should be paid.

{
  "type": "residential"",
  "name1": "Demo Supplier, Inc.",
  "name2": null,
  "street1": "1332 Hermosa Ave",
  "street2": "Suite 14",
  "city": "Hermosa Beach",
  "province": "CA",
  "postal_code": "90254",
  "country": "US",
  "phone1": (310) 555-5555,
  "phone2": null,
  "fax": null,
  "email": invoices@demosupplier.com
}
subtotal The sum of all invoice lines before any charges or allowances.
charges An array of additional invoice adjustments that increase the amount due by the retailer (e.g. dropship fees, etc).
allowances An array of additional invoice adjustments that decrease the amount due by the retailer (e.g. return allowances, etc).
due_amount The total amount due.
is_acknowledged Boolean flag that indicates whether invoice has been received and acknowledged by the Retailer.
invoiced_atThe timestamp when the Invoice was received by RevCascade.
acknowledged_atThe timestamp when the Invoice was acknowledged by the Retailer. This field is null if the Invoice has not been acknowledged.
invoice_lines

An array or Invoice Line Items. Each invoice line represents a unique item from the Purchase Order.

{
  "invoice_line_number": 1,
  "variant": {
      "id": "100084",
      "brand": {
          "id": "501",
          "name": "Marla Cielo",
      },
      "name": "Contemporary Nightstand",
      "description": "Black"
      "identifier": "1234",
      "upc": "123456789456",
      "attributes": [{
          // subset of attributes
      }]
  },
  "quantity": 2,
  "price": "21.00",
}

invoice_line_number - The ordinal line number on the invoice.

variant - The exact item that was sold.

quantity - The number of items being invoiced.

price - The price that the supplier expects to be paid for the item.

Back to Top

Examples

POST /v1/brands/{brand_id}/invoices/ Create a new Invoice
Input Parameters - All fields required unless otherwise marked.
purchase_order_number A unique PO # from the Retailer's OMS.
invoice_number The invoice number from the supplier's finance system.
terms_net_days_due The number of days until the invoice is expected to be paid (per the terms of the supplier / retailer agreement.)
terms_date_due The date that the invoice is due. Format: YYYY-MM-DD.
due_amount The total amount due for this invoice.
invoice_lines

An array of objects representing the items that are in the invoice. Please send one Invoice Line per unique item.

"invoice_lines": [{
    "variant": {
        "identifier": "GBD34315",
    }
    "quantity": 1,
    "net_price": "$250.00",
}]

variant - an object that identifies the exact item that sold.

  • id - the RevCascade id for the variant. Optional if 'upc' is passed.
  • identifier - either a retailer identifier (if set) or a brand identifier.
  • upc - the UPC of the item. Optional if 'id' is passed.

quantity - The number of items included in the shipment.

net_price - The price that the supplier expects to be paid for the item.

Please note...

Either an 'id', 'identifier', or a 'upc' is required in the variant object when creating an invoice line. However, if multiple are passed, 'id' will take priority over 'identifier' and 'upc'.

Response

On a successful POST, a full Invoice object will be returned.

POST https://api.revcascade.com/v1/brands/500/invoices/ (POST body redacted for brevity)
HTTP/1.1 201 CREATED

Back to Top

GET /v1/brands/invoices/ Get a list of Invoices
Optional Query String Parameters
is_acknowledged Boolean filter that returns invoices based on whether or not they have been acknowleged by the retailer.

1 - show only only invoices that have been acknowledged.
0 - show invoices that have not been acknowledged.
invoiced_at_{operator} Filter invoices received by RevCascade before or after an epoch timestamp in UTC.

Please substitute {operator} with "lt" (less than),"lte" (less than or equal), "gt" (greater than), or "gte" (greater than or equal).
limit Customize the number of results return (max 250). Requests that return more records than the limit will be paginated.

Get all new invoices that have been not yet been acknowledged.

GET https://api.revcascade.com/v1/brands/500/invoices/?is_acknowledged=0

Back to Top

GET /v1/brands/{brand_id}/invoices/{id}/ Get a single Invoice

Get a single invoice by its ID.

GET https://api.revcascade.com/v1/brands/500/invoices/123645/

Back to Top