Overview

The Goods Received API v2 allows your ERP or warehouse management system to send item receipt confirmations to SoftCo in the unified GRN format, enabling three-way matching between purchase orders, goods receipts, and supplier invoices. This version is designed to work alongside the unified Purchase Orders API v2. For organisations where row_handling_style is not set to ORDER_ROW_LEVEL_MATCH on a purchase order line (indicating that receipting is required), SoftCo will hold the corresponding invoice for approval until a matching goods receipt has been received through this API — ensuring that payment is only authorised for goods and services that have actually been delivered.

A single call to POST /goods-received/v2 submits one or more goods receipt records. Each record carries a GRN header with receipt details and supplier information, and a rows array of line items. Crucially, the po_number reference is carried at line level — not on the header — which means a single GRN can acknowledge receipt of items from multiple purchase orders in one submission. SoftCo matches each line against the relevant PO using the combination of po_number and item_number.

Where Goods Received fits in the AP workflow

Once a purchase order is in SoftCo and a supplier sends an invoice, the three-way matching process checks whether the invoiced items have actually arrived. When your team books a goods receipt or confirms service delivery in your ERP, that confirmation needs to reach SoftCo via this API. Without it, invoices on PO lines with receipting required will remain on hold, pending confirmation. Sending timely GRN data therefore directly affects how quickly invoices can be approved and paid.

PO number is at line level

Unlike purchase orders, where the PO number sits on the header, goods receipts carry po_number on each individual line item. This reflects how receipts work in practice — a single delivery note or goods receipt document can contain items from several different purchase orders. Each line identifies the specific PO it is fulfilling.

When to call this endpoint

When goods are received into your warehouse or store — send the GRN to SoftCo as soon as the receipt is confirmed in your ERP so that SoftCo can clear invoices waiting on the receipt confirmation.
When services are confirmed as delivered — for service PO lines where row_handling_style is one of GRN_LEVEL_MATCH, GRN_LEVEL_MATCH_EXACT or ORDER_ROW_LEVEL_MATCH_WITH_GRN_CHECK, send an item receipt once the service has been signed off, with the delivered quantity as quantity_received.
For partial deliveries — send a GRN for the quantity received to date. If the remaining balance is delivered later, send a further GRN for the additional quantity. SoftCo accumulates received quantities across multiple GRNs for the same PO line.
Resending is safe

Resubmitting a GRN record is safe — SoftCo will refresh the receipt data for the matching grn_number. This makes it straightforward to correct a receipt or replay a missed submission.

Quick Start

Here is the minimum viable GRN — a single receipt with two line items acknowledging delivery against a purchase order. The required header fields are grn_number, grn_date, and grn_supplier_number. Each line in the rows array requires line_number, po_number, quantity_received, and unit.

Quick Start — Single Goods Receipt
POST /goods-received/v2
x-api-key:     your-api-key-here
Content-Type:  application/Json
Client_Id:     your-client-id
Client_Secret: your-client-secret

{
  "objects": {
    "object": {
      "record": [
        {
        "organization":       "main",
        "grn_number":         "GRN-2024-04521",
        "grn_date":           "2024-03-18",
        "grn_supplier_number": "SUP-001234",
        "grn_supplier_name":   "Acme Office Supplies Ltd",
        "received_by":         "Ciara Brennan",
        "rows": [
            {
              "line_number":       1,
              "po_number":         "PO-2024-00891",
              "item_number":       1,
              "item_name":         "A4 Copy Paper",
              "item_description":  "A4 Copy Paper — 5 Ream Box",
              "quantity_received": 10,
              "unit":               "BOX"
            },
            {
              "line_number":       2,
              "po_number":         "PO-2024-00891",
              "item_number":       2,
              "item_name":         "Printer Ink Cartridge",
              "item_description":  "Printer Ink Cartridge — Black",
              "quantity_received": 5,
              "unit":               "EA"
            }
          ]
        }
      ]
    }
  }
}

A successful response looks like this:

202 Accepted — you're done
{
  "status":      "SUCCESS",
  "total":       1,
  "succeeded":   1,
  "failed":      0,
  "errors":      [],
  "message":     "All records processed successfully."
}
What happens next

A 202 Accepted means your goods receipt has been validated and queued. Once delivered to SoftCo, it is matched against the referenced purchase order lines. Any invoice held pending a receipt confirmation for those lines will be released for approval processing. If the release does not occur within a few minutes, see the Troubleshooting section.

How It Works

Every request follows the same pipeline. Your system sends once — validation, transformation, and delivery to SoftCo are handled automatically.

Your ERP
HTTP POST
JSON
API Gateway
Auth & Routing
Validated
Integration
Layer
Validate & Transform
XML
Integration
Queue
Async Buffer
Delivered
SoftCo
AP
Invoice Released
1
Your ERP sends the POST request
After a goods receipt or service confirmation is posted in your ERP, your system sends a JSON payload to POST /goods-received/v2 with your credentials and one or more GRN records — each containing receipt header details and a rows array of line items, each with its own po_number reference.
2
Gateway checks your credentials
Your API key is validated immediately by the API Gateway. An invalid or missing key returns 401 Unauthorized before your payload is processed.
3
Your payload is validated against the GRN schema
The integration layer checks your JSON against the unified goods receipt schema — the envelope structure, required header fields, and the rows array with its required line-level fields (line_number, po_number, quantity_received, unit). If anything fails, you get a 400 Bad Request with a field-level error message. Nothing is queued until validation passes.
4
Data is transformed and queued — you get 202
On success, the GRN is transformed into SoftCo's internal format and placed on the integration queue. You receive 202 Accepted immediately — no further action is needed from your side.
5
SoftCo matches the receipt and releases held invoices
The queue listener delivers the GRN to SoftCo AP, which matches each receipt line against the referenced PO line using po_number and item_number. Any invoice that was held pending a goods receipt confirmation for those lines is released for approval processing. If SoftCo is temporarily unavailable, the queue holds the record and retries delivery automatically.
About the 202 Response

202 Accepted does not mean the invoice has been released yet — it means your GRN has been received, validated, and queued successfully. Matching and invoice release in SoftCo AP is asynchronous and typically completes within minutes. If an invoice remains on hold after a reasonable period, confirm the po_number and item_number values match the PO exactly, then contact your SoftCo Customer Success representative.

Rate Limits

Rate limits are configured per customer during onboarding. If you receive a 429 Too Many Requests response, reduce your request rate and retry after a short delay. For your specific rate limit thresholds, contact your SoftCo Customer Success representative.

Authentication

All requests require an API key and OAuth 2.0 credentials. Your credentials are provided during onboarding — keep them secure and never expose them in client-side code or version control.

Requests with a missing or invalid API key are rejected by the gateway immediately and never reach the integration layer.

Required Headers

HeaderValueNotes
x-api-keyYour assigned API keyProvided at onboarding. Required on every request.
Client_IdOAuth 2.0 Client IDProvided at onboarding.
Client_SecretOAuth 2.0 Client SecretTreat as a password — do not share or log.
Access_Token_URLOAuth 2.0 token endpointProvided at onboarding.
Content-Typeapplication/JsonMust be present on every POST request.
Lost or compromised credentials?

Contact your SoftCo Customer Success representative immediately to rotate your API key. Do not attempt to use the same credentials across multiple customer environments.

Response Codes

CodeStatusMeaningWhat to do
202AcceptedPayload validated and queued. Delivery to SoftCo is in progress.Nothing — your goods receipt is on its way.
207Multi-StatusBatch partially accepted. Valid records were queued; one or more failed validation. Check the errors array for details on failing records.Inspect the errors array by record index, correct the failing records, and resubmit only those that failed.
400Bad RequestPayload failed schema validation. A field-level error is in the response body.Read the message and errors fields, fix the payload, retry. See Troubleshooting.
401UnauthorizedAPI key missing or invalid.Check your x-api-key header value.
403ForbiddenValid API key but no permission for this endpoint.Contact your SoftCo Customer Success representative.
404Not FoundEndpoint path is incorrect.Verify the URL — check for typos or trailing slashes.
408Request TimeoutRequest took too long to process.Retry once after a short delay.
429Too Many RequestsRate limit exceeded.Slow your request rate and retry after the delay indicated.
500Internal Server ErrorUnexpected error on our side.Retry once. If it persists, raise a ticket with the requestId.
503Service UnavailableService temporarily unavailable.Retry after a short delay.

POST /goods-received/v2

Submit one or more goods receipt records to SoftCo in the unified GRN format. Each record carries GRN header information and a rows array of line items. Each line identifies the purchase order it is fulfilling via po_number and the quantity delivered via quantity_received. SoftCo matches these against the corresponding PO lines and releases any held invoices once the receipt is confirmed.

POST /goods-received/v2

Request Headers

HeaderValue
x-api-keyYour assigned API key.
Content-Typeapplication/Json
Client_IdYour OAuth 2.0 Client ID.
Client_SecretYour OAuth 2.0 Client Secret.
Access_Token_URLYour OAuth 2.0 token endpoint URL.

Request Body

The Goods Received API v2 uses the standard SoftCo iPaaS envelope: objects → object → record. For all GRN requests, record is a JSON array with line items nested inside a rows JSON array.

Single goods receipt

"objects" // root — plain JSON object
"object" // container — plain JSON object
"record" // JSON array with one element for a single GRN
"grn_number": "string" // required
"grn_date": "string" // required — YYYY-MM-DD
"grn_supplier_number": "string" // required
... other header fields ...
"rows": [ // array of line items — at least one required
{ "line_number": number, "po_number": "string", "item_number": number, "quantity_received": number, "unit": "string", ... }
]

Batch (multiple goods receipts)

"objects"
"object"
"record" // JSON array for a batch of GRNs
[ { "grn_number": "GRN-001", ..., "rows": [...] },
{ "grn_number": "GRN-002", ..., "rows": [...] } ]

Field Reference

The Goods Received API v2 carries fields across two levels: GRN header fields that apply to the entire receipt document, and line item fields within the rows array. The header includes groups for receipt identity, shipping documents, supplier details, receiving site, and optional custom extensibility fields.

GRN Header Fields

These fields sit directly within the record object and describe the goods receipt document as a whole.

FieldTypeRequiredDescription
organizationstringRecommended The SoftCo organisation entity this GRN belongs to. Defaults to "main" if omitted.
Default: "main"
systemstringRecommended Identifier for the source system submitting the GRN — for example your ERP or warehouse management system name. Used for traceability.
grn_numberstringRequired The goods receipt note number from your ERP or warehouse system. This is the primary identifier SoftCo uses to reference and refresh the receipt record.
e.g. "GRN-2024-04521"
grn_datestringRequired The date the goods were received or the service was confirmed. Format: YYYY-MM-DD.
e.g. "2024-03-18"
received_bystringOptional The name or identifier of the person who accepted the delivery or confirmed the service.
e.g. "Ciara Brennan"
grn_commentstringOptional Free-text notes about the receipt — for example notes on damaged goods, partial delivery, or receipt conditions.

Shipping Document Fields

These fields capture the reference numbers and dates from the shipping and delivery documentation accompanying the goods. They provide an audit trail linking the goods receipt back to the supplier's dispatch documents.

FieldTypeRequiredDescription
bill_of_landing_numberstringOptional Bill of Lading number — the carrier's reference for the shipment. Relevant for freight shipments where a bill of lading is issued by the carrier.
e.g. "PKG-44221"
bill_of_landing_datestringOptional The date on the Bill of Lading. Format: YYYY-MM-DD. Note: the field name is bill_of_landing_date as defined in the v2 unified schema.
delivery_slipstringOptional The delivery slip or delivery note number provided by the supplier with the shipment.
e.g. "DS-ACM-20240318"
delivery_slip_datestringOptional The date on the supplier's delivery slip. Format: YYYY-MM-DD.
packing_slip_numberstringOptional The packing slip number included with the shipment, listing the items packed.
packing_slip_datestringOptional The date on the packing slip. Format: YYYY-MM-DD.

Supplier Fields

Supplier fields identify the vendor from whom the goods were received. grn_supplier_number is the required reference; the remaining fields carry address and identification detail for the supplier as recorded in your ERP at the time of receipt.

FieldTypeRequiredDescription
grn_supplier_numberstringRequired The vendor ID from your ERP — the primary identifier linking this receipt to a supplier. Should match the supplier_number on the originating purchase order.
e.g. "SUP-001234"
grn_supplier_site_codestringOptional The site or location code for this supplier, where a supplier has multiple sites.
e.g. "DUBLIN-01"
grn_supplier_namestringOptional The supplier's trading name as recorded in your ERP at the time of receipt.
e.g. "Acme Office Supplies Ltd"
grn_supplier_address_1stringOptionalFirst line of the supplier's address.
grn_supplier_address_2stringOptionalSecond line of the supplier's address.
grn_supplier_citystringOptionalCity of the supplier's address.
grn_supplier_postcodestringOptionalPostcode or ZIP of the supplier's address.
grn_supplier_statestringOptionalState, province, or county of the supplier's address.
grn_supplier_countrystringOptionalCountry of the supplier's address.

Receiving Site Fields

These fields identify the physical location where the goods were received. For organisations with multiple sites or warehouses, sending site details allows SoftCo to associate the receipt with the correct receiving location.

FieldTypeRequiredDescription
site_namestringOptional The name of the receiving site or warehouse.
e.g. "Dublin Distribution Centre"
site_address_1stringOptionalFirst line of the receiving site's address.
site_address_2stringOptionalSecond line of the receiving site's address.
site_citystringOptionalCity of the receiving site.
site_postcodestringOptionalPostcode or ZIP of the receiving site.
site_statestringOptionalState, province, or county of the receiving site.
site_countrystringOptionalCountry of the receiving site.

Custom Extensibility Fields

The GRN v2 schema includes three groups of generic extensibility fields for carrying customer-specific metadata that does not map to a standard field. These are intended for organisations that need to pass additional context from their ERP through to SoftCo — for example internal reference codes, custom dates, or monetary values specific to their receiving process. Use only the fields your implementation requires; unused fields can be omitted.

FieldTypeRequiredDescription
label1
through
label9
stringOptional Nine free-text label fields for carrying customer-specific string values — reference codes, status flags, classification tags, or any other text metadata your organisation needs to attach to the receipt.
e.g. label1: "URGENT"label2: "QC-PASSED"
date1
through
date3
stringOptional Three date fields for customer-specific date values — for example expected put-away date, inspection date, or customs clearance date. Format: YYYY-MM-DD.
ammount_1
through
ammount_3
numeric (decimal)Optional Three numeric amount fields for customer-specific monetary or quantity values — for example freight charges, insurance values, or customs duties associated with the receipt. Must be provided as a numeric value with up to 2 decimal places, without any thousand separators such as commas. Note: the field names are ammount_1, ammount_2, ammount_3 as defined in the v2 unified schema.
e.g. ammount_1: 45.00

Line Item Fields (rows array)

Line item fields are nested inside the rows array within the GRN record. Each element of the array represents one received line — with its own PO reference, quantity, unit of measure, and optional item metadata. Every GRN must contain at least one line item.

po_number is here — at line level

The purchase order reference is carried on each individual line item, not on the GRN header. This allows a single delivery to acknowledge receipt of items from multiple purchase orders simultaneously. Ensure po_number and item_number on each row match the corresponding values on the originating purchase order exactly — SoftCo uses this combination to locate the specific PO line to update.

FieldTypeRequiredDescription
Line Identification & PO Reference
line_numbernumeric (integer)Required The line number corresponding to the received line in the GRN. This is a unique identifier for this line within the GRN — typically the line sequence number.
e.g. 12
po_numberstringRequired The purchase order number this receipt line is fulfilling. Must exactly match the po_number on the corresponding purchase order sent via the Purchase Orders API.
e.g. "PO-2024-00891"
systemstringOptional Source system identifier at line level, for use where line items originate from a different system than the GRN header — for example a warehouse management system distinct from the main ERP.
Item Details
item_numbernumeric (integer)Required The line number that corresponds to the matching line on the purchase order. SoftCo uses this together with po_number to identify which PO line is being fulfilled by this receipt.
e.g. 114
item_namestringRecommended A short name or identifier for the item received on this line — typically the item or product name as it appears in your ERP. Complements item_description with a concise reference label.
e.g. "A4 Copy Paper""Printer Ink Cartridge"
item_descriptionstringRecommended A full description of the item or service received on this line. Carried through for display and context in SoftCo. Should correspond to the description on the purchase order.
e.g. "A4 Copy Paper — 5 Ream Box"
Quantity & Unit of Measure
quantity_receivednumber (decimal)Required The quantity of the item received or the quantity of service confirmed on this line. SoftCo compares this against the ordered quantity on the PO line to determine whether the delivery is complete, partial, or over-received. For partial deliveries, send only the quantity received to date — subsequent GRNs can carry the remaining balance. Must be provided as a numeric value with up to 6 decimal places, without any thousand separators such as commas.
e.g. 102.5
unitstringRequired The unit of measure for the received quantity. Should match the unit of measure on the corresponding PO line.
"EA""BOX""KG""HR""DAY"
Linked GRN
linked_grn_numberstringOptional For returns only — specify the original GRN number that the return relates to.
e.g. "GRN-2024-04520"

Example Requests

Single GRN with full shipping document detail

Single GRN — Two Lines, Full Detail
POST /goods-received/v2
x-api-key:     your-api-key-here
Content-Type:  application/Json
Client_Id:     your-client-id
Client_Secret: your-client-secret

{
  "objects": {
    "object": {
      "record": [
        {
        "organization":              "main",
        "system":                    "NetSuite",
        "grn_number":                "GRN-2024-04521",
        "grn_date":                  "2024-03-18",
        "received_by":               "Ciara Brennan",
        "bill_of_landing_number":     "PKG-44221",
        "bill_of_landing_date":        "2024-03-18",
        "delivery_slip":              "DS-ACM-20240318",
        "delivery_slip_date":         "2024-03-18",
        "grn_supplier_number":        "SUP-001234",
        "grn_supplier_name":          "Acme Office Supplies Ltd",
        "grn_supplier_city":          "Dublin",
        "grn_supplier_country":       "Ireland",
        "site_name":                 "Dublin Distribution Centre",
        "grn_comment":               "All items received in good condition",
        "rows": [
            {
              "line_number":        1,
              "po_number":          "PO-2024-00891",
              "item_number":        1,
              "item_name":          "A4 Copy Paper",
              "item_description":   "A4 Copy Paper — 5 Ream Box",
              "quantity_received":  10,
              "unit":               "BOX"
            },
            {
              "line_number":        2,
              "po_number":          "PO-2024-00891",
              "item_number":        2,
              "item_name":          "Printer Ink Cartridge",
              "item_description":   "Printer Ink Cartridge — Black",
              "quantity_received":  5,
              "unit":               "EA"
            }
          ]
        }
      ]
    }
  }
}

Multi-PO receipt — one GRN covering lines from two purchase orders

Multi-PO GRN
{
  "objects": {
    "object": {
      "record": [
        {
        "grn_number":          "GRN-2024-04522",
        "grn_date":            "2024-03-18",
        "grn_supplier_number": "SUP-001234",
        "received_by":         "Ciara Brennan",
        "rows": [
            {
              "line_number": 1,
              "po_number": "PO-2024-00891",
              "item_number": 1, "item_name": "A4 Copy Paper",
              "quantity_received": 10, "unit": "BOX"
            },
            {
              "line_number": 2,
              "po_number": "PO-2024-00892", // different PO on same delivery
              "item_number": 1, "item_name": "IT Consulting Services",
              "item_description": "IT Consulting Services — Day 1",
              "quantity_received": 1, "unit": "DAY"
            }
          ]
        }
      ]
    }
  }
}

Batch — multiple GRNs in one request

Batch — Two GRNs
{
  "objects": {
    "object": {
      "record": [
        {
          "grn_number": "GRN-2024-04521", "grn_date": "2024-03-18",
          "grn_supplier_number": "SUP-001234",
          "rows": [ { "line_number": 1, "po_number": "PO-2024-00891", "item_number": 1, "quantity_received": 10, "unit": "BOX" } ]
        },
        {
          "grn_number": "GRN-2024-04523", "grn_date": "2024-03-18",
          "grn_supplier_number": "SUP-000876",
          "rows": [ { "line_number": 1, "po_number": "PO-2024-00892", "item_number": 1, "quantity_received": 8, "unit": "DAY" } ]
        }
      ]
    }
  }
}

Validation

Every request is validated against the GRN v2 schema before any processing takes place. If validation fails, the entire request is rejected immediately — nothing is queued or forwarded to SoftCo. You receive a clear error identifying the field or structural issue.

What is checked

CheckDetail
Envelope structureThe payload must use objects → object → record as plain JSON objects. Using an array at the objects or object level will fail validation.
Required header fieldsgrn_number, grn_date, and grn_supplier_number must be present in every record.
rows array presenceEvery GRN record must contain a rows array containing at least one line item.
rows structurerows must be a JSON array. Sending rows as a JSON object directly will fail validation.
Required line fieldsEvery row object must contain line_number, po_number, quantity_received, and unit.
Field typesFields must match their declared types. Numeric fields (line_number, item_number, quantity_received) must be sent as JSON numbers, not strings. Sending the wrong type for any field will fail validation.
Non-empty required valuesRequired fields must not be empty strings.

Validation error response

400 Bad Request — validation failure
{
  "status":      "FAILED",
  "total":       1,
  "succeeded":   0,
  "failed":      1,
  "errors":      [{ "index": 0, "error": "required key [grn_number] not found" }],
  "message":     "1 of 1 records failed validation."
}

Troubleshooting

The most common error scenarios and how to resolve them.

400
Wrong rows structure — sending rows as an object instead of an array
The most common structural mistake on this endpoint is sending rows as a JSON object directly, rather than as a JSON array. The validation error may reference an unexpected type at the rows level.
// Wrong — rows sent as an object { "grn_number": "GRN-2024-00441", "rows": { "line_number": 1, "po_number": "PO-2024-00891", ... } } // Correct — rows as an array { "grn_number": "GRN-2024-00441", "rows": [ { "line_number": 1, "po_number": "PO-2024-00891", ... } ] }
Fix: Wrap your line items in an array inside — "rows": [ ... ]
400
Missing required GRN header field
One or more required header fields is absent from the record. The errors array will identify the missing field — for example required key [grn_number] not found or required key [grn_supplier_number] not found.
{ "status": "FAILED", "total": 1, "succeeded": 0, "failed": 1, "errors": [{"index": 0, "error": "required key [grn_number] not found"}], "message": "1 of 1 records failed validation." }
Fix: Ensure grn_number, grn_date, and grn_supplier_number are present in every record object. None can be omitted or null.
400
Missing or empty rows array
Every GRN record must contain a rows array holding at least one line item. Sending a record without rows, or with rows as an empty array will fail validation.
// Wrong — no rows at all { "grn_number": "GRN-2024-00441", "grn_date": "2024-03-22", "grn_supplier_number": "SUP-001234" } // Correct — rows array with at least one row { "grn_number": "GRN-2024-00441", "grn_date": "2024-03-22", "grn_supplier_number": "SUP-001234", "rows": [ { "line_number": 1, "po_number": "PO-2024-00891", "item_number": 1, "quantity_received": 10, "unit": "BOX" } ] }
Fix: Always include a rows array with at least one complete line item in every GRN record.
400
Missing required line item field
A required field is absent from one or more row objects. Note that po_number is required at the line level — not at the header — and is the field most often omitted by integrations migrating from header-level PO references. Also note that in v2 the unit of measure field is unit (not uom). The errors array will reference the failing field.
{ "status": "FAILED", "total": 1, "succeeded": 0, "failed": 1, "errors": [{"index": 0, "error": "required key [po_number] not found"}], "message": "1 of 1 records failed validation." }
Fix: Ensure every row object includes line_number, po_number, quantity_received, and unit. All four are required on each line and none can be omitted or null.
Sending multiple GRNs against the same PO?

Partial deliveries are fully supported. Each GRN submission sends the quantity received to date for each line. SoftCo accumulates receipt quantities across multiple GRN submissions and holds a matched invoice until the total receipted quantity satisfies the PO line. You do not need to send a single final GRN — submit each delivery as it occurs.

Example Responses

Success — 202 Accepted

202 Accepted
{
  "status":      "SUCCESS",
  "total":       1,
  "succeeded":   1,
  "failed":      0,
  "errors":      [],
  "message":     "All records processed successfully."
}

Partial success — 207 Multi-Status

207 Multi-Status — Partial
{
  "status":      "PARTIAL",
  "total":       3,
  "succeeded":   2,
  "failed":      1,
  "errors":      [{ "index": 1, "error": "required key [grn_supplier_number] not found" }],
  "message":     "2 of 3 records processed successfully. 1 record failed validation."
}

Validation failure — 400 Bad Request

400 Bad Request
{
  "status":      "FAILED",
  "total":       1,
  "succeeded":   0,
  "failed":      1,
  "errors":      [{ "index": 0, "error": "required key [grn_supplier_number] not found" }],
  "message":     "1 of 1 records failed validation."
}

Authentication failure — 401 Unauthorized

401 Unauthorized
{
  "status":    "FAILED",
  "message":  "Unauthorized"
}