Spendesk · Schema

intakeSummary

A received supplier document (invoice, credit note or receipt) being reviewed and processed — compact representation returned by the list endpoint. Fields extracted from the document (amounts, dates, numbers, supplier) are null until captured. New fields may be added over time.

Spend ManagementCorporate CardsExpense ManagementInvoicesProcurementFintechAccountingPayments

Properties

Name Type Description
id object
companyId string Id of the company entity that received the document.
type object
source object How the document reached Spendesk, or null when not recorded.
status object
stage object
supplier object The supplier that issued the document. Null when no supplier has been identified yet.
assigneeId stringnull Id of the member the intake is assigned to — the person expected to complete and submit it. An id, not a name: resolve it with [Get Users](/reference/v1-get-users), which needs the `user:read` scope i
invoiceNumber stringnull The supplier's invoice number as printed on the document. Null if not captured or the document is not an invoice.
creditNoteNumber stringnull The supplier's credit-note number as printed on the document. Null if not captured or the document is not a credit note.
currency object Currency the document is denominated in. Null until captured, and also null when the captured value is not a three-letter code.
grossAmount object Total amount including tax, in `currency`'s smallest unit. Null until captured, and also null, even once captured, whenever `currency` is null or a code Spendesk does not support.
netAmount object Total amount before tax, in `currency`'s smallest unit. Null until captured, and also null, even once captured, whenever `currency` is null or a code Spendesk does not support.
netPayableAmount object Amount actually left to pay the supplier after deductions recorded on the document (e.g. an advance already paid, or an applied credit note), in `currency`'s smallest unit. Equals `grossAmount` when t
issueDate object Date the supplier issued the document, as printed on it (emission date). Null until captured.
dueDate object Date by which the document must be paid, per the supplier's payment terms. Null until captured or when no due date applies.
resultingDocument object The document the intake produced or was linked to. Null while the intake is in progress, and stays null for an intake that ends `refused` or `deleted` without producing one. Always null at `status: pr
payableId stringnull Id of the accounting payable the intake ultimately produced, resolvable via the payables API. Null whenever none is known, which is common even at `stage: processed` — that stage also holds refused an
purchaseOrderId stringnull Id of the purchase order the intake is matched against. Null when none.
correctsIntakeId stringnull For a corrective document (e.g. a credit note cancelling or amending an earlier invoice): id of the intake it corrects. Null otherwise.
appUrl string Link to this intake in the Spendesk invoice inbox.
createdAt object When the intake was received by Spendesk (ingestion time, not `issueDate`).
updatedAt object When any field on the intake last changed. Null when never updated.
View JSON Schema on GitHub

JSON Schema

spendesk-intake-summary-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/spendesk/main/json-schema/spendesk-intake-summary-schema.json",
  "title": "intakeSummary",
  "description": "A received supplier document (invoice, credit note or receipt) being reviewed and processed — compact representation returned by the list endpoint. Fields extracted from the document (amounts, dates, numbers, supplier) are null until captured. New fields may be added over time.",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/spendesk-public-api-openapi.yml#/components/schemas/intakeSummary",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "$ref": "#/$defs/intakeId"
    },
    "companyId": {
      "type": "string",
      "description": "Id of the company entity that received the document."
    },
    "type": {
      "$ref": "#/$defs/intakeType"
    },
    "source": {
      "oneOf": [
        {
          "$ref": "#/$defs/intakeSource"
        },
        {
          "type": "null"
        }
      ],
      "description": "How the document reached Spendesk, or null when not recorded."
    },
    "status": {
      "$ref": "#/$defs/intakeStatus"
    },
    "stage": {
      "$ref": "#/$defs/intakeStage"
    },
    "supplier": {
      "oneOf": [
        {
          "$ref": "#/$defs/intakeSupplier"
        },
        {
          "type": "null"
        }
      ],
      "description": "The supplier that issued the document. Null when no supplier has been identified yet."
    },
    "assigneeId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Id of the member the intake is assigned to — the person expected to complete and submit it. An id, not a name: resolve it with [Get Users](/reference/v1-get-users), which needs the `user:read` scope in addition to the intake read scope. Null while unassigned."
    },
    "invoiceNumber": {
      "type": [
        "string",
        "null"
      ],
      "description": "The supplier's invoice number as printed on the document. Null if not captured or the document is not an invoice."
    },
    "creditNoteNumber": {
      "type": [
        "string",
        "null"
      ],
      "description": "The supplier's credit-note number as printed on the document. Null if not captured or the document is not a credit note."
    },
    "currency": {
      "oneOf": [
        {
          "$ref": "#/$defs/currency"
        },
        {
          "type": "null"
        }
      ],
      "description": "Currency the document is denominated in. Null until captured, and also null when the captured value is not a three-letter code."
    },
    "grossAmount": {
      "oneOf": [
        {
          "$ref": "#/$defs/priceAmount"
        },
        {
          "type": "null"
        }
      ],
      "description": "Total amount including tax, in `currency`'s smallest unit. Null until captured, and also null, even once captured, whenever `currency` is null or a code Spendesk does not support."
    },
    "netAmount": {
      "oneOf": [
        {
          "$ref": "#/$defs/priceAmount"
        },
        {
          "type": "null"
        }
      ],
      "description": "Total amount before tax, in `currency`'s smallest unit. Null until captured, and also null, even once captured, whenever `currency` is null or a code Spendesk does not support."
    },
    "netPayableAmount": {
      "oneOf": [
        {
          "$ref": "#/$defs/priceAmount"
        },
        {
          "type": "null"
        }
      ],
      "description": "Amount actually left to pay the supplier after deductions recorded on the document (e.g. an advance already paid, or an applied credit note), in `currency`'s smallest unit. Equals `grossAmount` when there are none. Only ever populated for intakes ingested through e-invoicing: it is always null for intakes created through this API and for intakes forwarded by email, where the null is permanent rather than capture-pending."
    },
    "issueDate": {
      "oneOf": [
        {
          "$ref": "#/$defs/date"
        },
        {
          "type": "null"
        }
      ],
      "description": "Date the supplier issued the document, as printed on it (emission date). Null until captured."
    },
    "dueDate": {
      "oneOf": [
        {
          "$ref": "#/$defs/date"
        },
        {
          "type": "null"
        }
      ],
      "description": "Date by which the document must be paid, per the supplier's payment terms. Null until captured or when no due date applies."
    },
    "resultingDocument": {
      "oneOf": [
        {
          "$ref": "#/$defs/intakeResultingDocument"
        },
        {
          "type": "null"
        }
      ],
      "description": "The document the intake produced or was linked to. Null while the intake is in progress, and stays null for an intake that ends `refused` or `deleted` without producing one. Always null at `status: processed`, which records a controller clearing the to-process queue rather than a document being produced. A null can also mean the lookup failed rather than that none exists, on both List intakes and Get an intake."
    },
    "payableId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid",
      "description": "Id of the accounting payable the intake ultimately produced, resolvable via the payables API. Null whenever none is known, which is common even at `stage: processed` — that stage also holds refused and deleted intakes, which never produce one. On [List intakes](/reference/v2-list-company-intakes) a null is \"unknown\" rather than \"none\"; [Get an intake](/reference/v2-get-company-intake) is authoritative.",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    },
    "purchaseOrderId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Id of the purchase order the intake is matched against. Null when none."
    },
    "correctsIntakeId": {
      "type": [
        "string",
        "null"
      ],
      "description": "For a corrective document (e.g. a credit note cancelling or amending an earlier invoice): id of the intake it corrects. Null otherwise."
    },
    "appUrl": {
      "type": "string",
      "description": "Link to this intake in the Spendesk invoice inbox."
    },
    "createdAt": {
      "allOf": [
        {
          "$ref": "#/$defs/dateTime"
        }
      ],
      "description": "When the intake was received by Spendesk (ingestion time, not `issueDate`)."
    },
    "updatedAt": {
      "oneOf": [
        {
          "$ref": "#/$defs/dateTime"
        },
        {
          "type": "null"
        }
      ],
      "description": "When any field on the intake last changed. Null when never updated."
    }
  },
  "required": [
    "id",
    "companyId",
    "type",
    "source",
    "status",
    "stage",
    "supplier",
    "assigneeId",
    "invoiceNumber",
    "creditNoteNumber",
    "currency",
    "grossAmount",
    "netAmount",
    "netPayableAmount",
    "issueDate",
    "dueDate",
    "resultingDocument",
    "payableId",
    "purchaseOrderId",
    "correctsIntakeId",
    "appUrl",
    "createdAt",
    "updatedAt"
  ],
  "$defs": {
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "If the payment was made in a foreign currency, this amount will be the one in the payment currency. Three-letter [ISO currency codes](https://www.iso.org/iso-4217-currency-codes.html).",
      "title": "currency"
    },
    "date": {
      "type": "string",
      "format": "date",
      "description": "String containing a date expressed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format like `2023-05-12`.",
      "title": "date"
    },
    "dateTime": {
      "type": "string",
      "format": "date-time",
      "description": "String containing a UTC datetime expressed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format like `2023-05-12T14:06:40Z`.",
      "title": "dateTime"
    },
    "intakeId": {
      "type": "string",
      "description": "Opaque unique identifier of an intake.",
      "title": "intakeId"
    },
    "intakeResultingDocument": {
      "type": "object",
      "additionalProperties": false,
      "description": "The document the intake produced or was linked to once processing completed. Use `type` to pick the API to resolve `id` against. `invoice` and `creditNote` ids both resolve through the invoice detail endpoint, which returns credit notes with `type` `creditNote`; a `creditNote` id can occasionally return 404 — then list credit notes on the invoices endpoint with `type` `creditNote`.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invoice",
            "creditNote",
            "expenseClaim",
            "cardPayment"
          ],
          "description": "Kind of resulting document. \n\n| Type | Description |\n| --- | --- |\n| `invoice` | A supplier invoice to pay. |\n| `creditNote` | A supplier credit note. |\n| `expenseClaim` | An employee expense claim. |\n| `cardPayment` | An existing card payment the document was attached to as its receipt. |"
        },
        "id": {
          "type": "string",
          "description": "Id of the resulting document."
        }
      },
      "required": [
        "type",
        "id"
      ],
      "title": "intakeResultingDocument"
    },
    "intakeSource": {
      "type": "string",
      "enum": [
        "eInvoice",
        "email",
        "api"
      ],
      "description": "How the document reached Spendesk. \n\n| Source | Description |\n| --- | --- |\n| `eInvoice` | Delivered through an e-invoicing network (e.g. Peppol or a French PDP). |\n| `email` | Sent or forwarded to the company's invoice inbox email address. |\n| `api` | Created programmatically via this API. |",
      "title": "intakeSource"
    },
    "intakeStage": {
      "type": "string",
      "enum": [
        "inInbox",
        "linked",
        "processed"
      ],
      "description": "Coarse lifecycle stage of the intake, derived from `status`. \n\n| Stage | Statuses | Description |\n| --- | --- | --- |\n| `inInbox` | `received`, `assigned`, `disputed`, `assignation_rejected`, `supplier_disputed`, `validating` | Awaiting action in the invoice inbox, or submitted and still under review. |\n| `linked` | `auto_linked`, `manually_linked` | Done — it was attached to an existing document as its receipt (see `resultingDocument`). |\n| `processed` | `validated`, `refused`, `deleted`, `processed` | Terminal — it was refused, deleted, or finished processing (see `resultingDocument`; status `processed` itself never sets one). |",
      "title": "intakeStage"
    },
    "intakeStatus": {
      "type": "string",
      "enum": [
        "received",
        "assigned",
        "disputed",
        "refused",
        "deleted",
        "validating",
        "validated",
        "processed",
        "auto_linked",
        "manually_linked",
        "assignation_rejected",
        "supplier_disputed"
      ],
      "description": "Fine-grained processing status of the intake — the raw underlying status values, exposed verbatim (hence the snake_case). For most integrations the coarser `stage` is easier to work with. \n\n| Status | Description |\n| --- | --- |\n| `received` | Landed in the invoice inbox, not yet assigned to a member. |\n| `assigned` | Assigned to a member (see `assigneeId`) who must complete and submit it. |\n| `supplier_disputed` | The intake was contested with the supplier and awaits their response. |\n| `assignation_rejected` | The assignee rejected the assignment; the intake is back in the inbox for reassignment. |\n| `disputed` | Legacy predecessor of `assignation_rejected`; may still appear on historical records. |\n| `validating` | Submitted and going through review. |\n| `validated` | Review complete; about to produce its resulting document. |\n| `processed` | Done — a controller cleared it from the to-process queue (e-invoicing only); it does not produce a document, so `resultingDocument` is always null. |\n| `auto_linked` | Done — automatically matched and attached to an existing document. |\n| `manually_linked` | Done — manually attached to an existing document. |\n| `refused` | Rejected by the company; it will not be processed. |\n| `deleted` | Removed from the inbox. |\n\nNew statuses may be added over time — treat unknown values defensively.",
      "title": "intakeStatus"
    },
    "intakeSupplier": {
      "type": "object",
      "additionalProperties": false,
      "description": "The supplier (counterparty) that issued the document, as identified on the intake. `id` and `name` are independently nullable — the object may be present with either field null.",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Supplier id, resolvable via `GET /v1/suppliers/{id}`. Null when the supplier named on the document has not been matched to a supplier record yet."
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Supplier name as identified on the document. Null when no name has been captured yet."
        }
      },
      "required": [
        "id",
        "name"
      ],
      "title": "intakeSupplier"
    },
    "intakeType": {
      "type": "string",
      "enum": [
        "invoice",
        "creditNote",
        "receipt"
      ],
      "description": "Kind of document the intake carries. \n\n| Type | Description |\n| --- | --- |\n| `invoice` | A supplier invoice: an amount the company owes the supplier for goods or services. |\n| `creditNote` | A supplier credit note: a document that reduces an amount owed to the supplier (a refund, cancellation, or correction of a prior invoice). |\n| `receipt` | A receipt for a payment already made (e.g. a card payment), to be linked to that payment as documentary evidence. |\n\nForwarded documents are folded into their base type — a forwarded invoice is `invoice` and a forwarded credit note is `creditNote`; how the document arrived is expressed by `source`.",
      "title": "intakeType"
    },
    "priceAmount": {
      "type": "number",
      "description": "If the payment was made in a foreign currency, this amount will be the one in the payment currency.\nCan contain a negative value in case of refunds.\nExpressed in smallest units of the currency (e.g. cents for EUR and USD, but yen for JPY).",
      "title": "priceAmount"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/spendesk-intake-summary"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.