Generate invoice - Fabric

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Generate invoice

cURL

curl --request POST \
  --url https://prod01.oms.fabric.inc/api/v2/invoice/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-site-context: <x-site-context>' \
  --data '\n{
  "detailType": "ORDER_CREATE/ORDER_RETURNS"
}'

Python

import requests

url = "https://prod01.oms.fabric.inc/api/v2/invoice/"

payload = { "detailType": "ORDER_CREATE/ORDER_RETURNS" }
headers = {
    "x-site-context": "<x-site-context>",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

JavaScript (Fetch API)

const options = {
  method: 'POST',
  headers: {
    'x-site-context': '<x-site-context>',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({detailType: 'ORDER_CREATE/ORDER_RETURNS'})
};

fetch('https://prod01.oms.fabric.inc/api/v2/invoice/', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

PHP

<?php
$curl = curl_init();

curl_setopt_array($curl, [\
  CURLOPT_URL => "https://prod01.oms.fabric.inc/api/v2/invoice/",\
  CURLOPT_RETURNTRANSFER => true,\
  CURLOPT_ENCODING => "",\
  CURLOPT_MAXREDIRS => 10,\
  CURLOPT_TIMEOUT => 30,\
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\
  CURLOPT_CUSTOMREQUEST => "POST",\
  CURLOPT_POSTFIELDS => json_encode([\
    'detailType' => 'ORDER_CREATE/ORDER_RETURNS'\
  ]),\
  CURLOPT_HTTPHEADER => [\
    "Authorization: Bearer <token>",\
    "Content-Type: application/json",\
    "x-site-context: <x-site-context>"\
  ],\
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>

Go

package main

import (
    "fmt"
    "strings"
    "net/http"
    "io"
)

func main() {

url := "https://prod01.oms.fabric.inc/api/v2/invoice/"

payload := strings.NewReader("{\n  \"detailType\": \"ORDER_CREATE/ORDER_RETURNS\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-site-context", "<x-site-context>")
    req.Header.Add("Authorization", "Bearer <token>")
    req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}

Java

HttpResponse<String> response = Unirest.post("https://prod01.oms.fabric.inc/api/v2/invoice/")
  .header("x-site-context", "<x-site-context>")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"detailType\": \"ORDER_CREATE/ORDER_RETURNS\"\n}")
  .asString();

Ruby

require 'uri'
require 'net/http'

url = URI("https://prod01.oms.fabric.inc/api/v2/invoice/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"detailType\": \"ORDER_CREATE/ORDER_RETURNS\"\n}"

response = http.request(request)
puts response.read_body

Expected Responses

Response Example

{
  "invoiceId": "62ff5c0bec0aed3c86202c32",
  "shipmentId": "62ff5c0bec0aed3c86202c32",
  "statusCode": "CREATED/POSTED/ACKNOWLEDGED",
  "channelId": "strate",
  "invoiceTotal": 245.7,
  "totalTaxAmount": 245.7,
  "currency": "dollar",
  "invoiceNumber": "23940791",
  "invoiceStatus": "CAPTURED/SETTLED",
  "invoiceType": "SHIPPING/APPEASEMENT",
  "invoiceDate": "2022-08-01T20:03:28.483971941Z",
  "shipmentNumber": "217088603",
  "shippedOn": "2022-08-01T20:03:28.483971941Z",
  "orders": [
    {
      "orderId": "62ff5c0bec0aed3c86202c32",
      "invoiceOrderTotal": 245.7,
      "orderNumber": "217088603",
      "orderDate": "2022-05-12T09:30:31.198Z",
      "orderType": "WEB",
      "orderSubType": "International",
      "items": [
        {
          "lineItemId": "1adfrghhh2346aaaf",
          "lineItemNumber": 1,
          "shipmentLineItemId": "<string>",
          "itemId": "1234",
          "orderId": "<string>",
          "type": "WEB_PICKUP",
          "sku": "P1234",
          "invoiceQuantity": 10,
          "itemUnitPrice": 123,
          "invoiceLineTotal": 600,
          "itemDiscountsTotal": 123,
          "itemTaxTotal": 123,
          "itemFeeTotal": 123,
          "itemAppeasementTotal": 123,
          "lineItemCreatedAt": "2023-11-07T05:31:56Z",
          "locationStoreId": "<string>",
          "returnExpiryDays": "<string>",
          "currency": "<string>",
          "fees": [
            {
              "type": "tax",
              "value": 34.56
            }
          ],
          "taxDetail": [
            {
              "type": "tax",
              "value": 34.56
            }
          ],
          "appeasements": [
            {
              "appeasementCounter": 1,
              "reasonCode": "Incorrect Item",
              "subReasonCode": "Late shipping",
              "value": 34.56,
              "invoiceValue": 34.56,
              "payments": [
                {
                  "paymentCounter": 1,
                  "refundAmount": 40
                }
              ]
            }
          ],
          "discount": [
            {
              "quantity": 2,
              "value": 2,
              "promoId": "HNY2022",
              "promoCode": "HNY2022",
              "promoTitle": "Happy New Year",
              "type": "promotion"
            }
          ],
          "shipToId": "5349b4ddd2781d08c09890f4",
          "returns": [
            {
              "shipmentLineItemId": "<string>",
              "shipmentQuantity": 123,
              "refundAmount": 123,
              "reasonCode": "<string>",
              "invoiceDate": "2023-11-07T05:31:56Z"
            }
          ],
          "attributes": {},
          "uom": "<string>"
        }
      ],
      "payments": [
        {
          "paymentCounter": 123,
          "paymentDate": "2022-01-27T16:15:58.000-05:00",
          "billToId": "62272e917b12209e68751d94",
          "paymentIdentifier": {
            "cardIdentifier": "***********3456"
          },
          "paymentProvider": "stripe",
          "paymentToken": {
            "token": "pi_34tr6787rt"
          },
          "paymentMethod": "CREDIT_CARD",
          "paymentType": "VISA",
          "currency": "USD",
          "conversion": 1,
          "paymentStatus": "OK",
          "attributes": {},
          "billToAddress": {
            "addressLine1": "<string>",
            "addressLine2": "<string>",
            "addressLine3": "<string>",
            "addressLine4": "<string>",
            "city": "<string>",
            "state": "<string>",
            "country": "<string>",
            "postalCode": "<string>",
            "type": "<string>",
            "contact": [
              {
                "type": "<string>",
                "email": "<string>",
                "phone": [
                  {
                    "number": "<string>",
                    "type": "<string>"
                  }
                ],
                "name": {
                  "first": "<string>",
                  "middle": "<string>",
                  "last": "<string>"
                }
              }
            ]
          },
          "settlement": {
            "settlementDate": "2022-01-27T16:15:58-05:00",
            "settlementAmount": 123,
            "attributes": {}
          },
          "authAmount": 123
        }
      ],
      "fees": [
        {
          "type": "tax",
          "value": 34.56
        }
      ],
      "appeasements": [
        {
          "appeasementCounter": 1,
          "reasonCode": "Incorrect Item",
          "subReasonCode": "Late shipping",
          "value": 34.56,
          "invoiceValue": 34.56,
          "payments": [
            {
              "paymentCounter": 1,
              "refundAmount": 40
            }
          ]
        }
      ],
      "discounts": [
        {
          "quantity": 2,
          "value": 2,
          "promoId": "HNY2022",
          "promoCode": "HNY2022",
          "promoTitle": "Happy New Year",
          "type": "promotion"
        }
      ],
      "taxDetail": [
        {
          "type": "tax",
          "value": 34.56
        }
      ],
      "attributes": {}
    }
  ],
  "locationNum": 3235,
  "location": "object",
  "retail": {
    "locationNum": 123,
    "cashierId": "<string>"
  },
  "createdAt": "2022-08-01T20:03:28.483971941Z",
  "updatedAt": "2022-08-01T20:03:28.483971941Z",
  "postedAt": "2022-08-01T20:03:28.483971941Z",
  "acknowledgedAt": "2022-08-01T20:03:28.483971941Z",
  "customer": {
    "name": {
      "first": "John",
      "middle": "Middle",
      "last": "Doe"
    },
    "email": "test@fabric.inc",
    "phone": {
      "number": "55555555555",
      "type": "MOBILE"
    },
    "userId": "62272e917b12209e68751d94",
    "accountId": "62272e917b12209e68751d94",
    "employeeId": "62272e917b12209e68751d94",
    "company": "Fabric",
    "address": {
      "addressLine1": "<string>",
      "addressLine2": "<string>",
      "addressLine3": "<string>",
      "addressLine4": "<string>",
      "city": "<string>",
      "state": "<string>",
      "country": "<string>",
      "postalCode": "<string>",
      "type": "<string>",
      "contact": [
        {
          "type": "<string>",
          "email": "<string>",
          "phone": [
            {
              "number": "<string>",
              "type": "<string>"
            }
          ],
          "name": {
            "first": "<string>",
            "middle": "<string>",
            "last": "<string>"
          }
        }
      ]
    }
  },
  "auditLogs": [
    {
      "lineItemId": "b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569",
      "auditId": "62272e917b12209e68751d94",
      "auditType": "<string>",
      "employeeId": "62272e917b12209e68751d94",
      "auditTimestamp": "2022-05-12T09:24:54.804Z",
      "source": "POS",
      "reasonCode": "POS",
      "subReasonCode": "POS",
      "policyCode": "POS",
      "note": "Note",
      "lineItemNumber": 1,
      "sku": "F5F",
      "quantity": 1,
      "amount": 2.4,
      "paymentToken": {
        "token": "pi_34tr6787rt",
        "paymentType": "VISA"
      },
      "success": true,
      "paymentResponse": {},
      "updatedFields": [
        {
          "fieldName": "UOM",
          "fieldOriginalValue": "PK"
        }
      ],
      "attributes": {}
    }
  ],
  "shipInfo": {
    "shipToId": "5349b4ddd2781d08c09890f4",
    "taxCode": "FR01",
    "locationNum": "123",
    "pickup": [
      {
        "name": {
          "first": "John",
          "middle": "Middle",
          "last": "Doe"
        },
        "email": "test@fabric.inc",
        "phone": {
          "number": "55555555555",
          "type": "MOBILE"
        },
        "pickupType": "Primary"
      }
    ],
    "shipToAddress": {
      "address1": "Test Street",
      "name": {
        "first": "John",
        "middle": "Middle",
        "last": "Doe"
      },
      "email": "test@fabric.inc",
      "phone": {
        "number": "55555555555",
        "type": "MOBILE"
      },
      "address2": "123 Parking Lot",
      "address3": "<string>",
      "address4": "<string>",
      "city": "Beaumont",
      "state": "TX",
      "country": "USA",
      "postalCode": "77705",
      "type": "residence",
      "latitude": 35.294952,
      "longitude": 32.294952
    },
    "taxDetail": [
      {
        "type": "tax",
        "value": 34.56
      }
    ],
    "shipMethod": "Express Delivery",
    "shipToType": "SHIP_TO_ADDRESS",
    "estimatedShipDate": "2022-05-12T09:30:31.198Z",
    "estimatedDeliveryDate": "2022-05-12T09:30:31.198Z",
    "shipToPrice": 20,
    "shipToDiscount": 12.6,
    "shipToTaxTotal": 12.6,
    "shipmentInstructions": "User Instructions",
    "attributes": {}
  },
  "attributes": {}
}
{
  "message": "Bad Request"
}
{
  "message": "Shipment with the given shipmentId is not found"
}
{
  "message": "Internal Server Error"
}