Skip to main content

Reference overview

Field-by-field reference for the SDK objects you'll touch in a connector.

For the complete field list of any request or response, the Customer API reference is the source of truth: the SDK objects mirror those endpoints field-for-field. These pages are the developer-focused view: what each object is, the methods you'll call, and a small runnable example for each.

The basics​

  • JobContext: the context argument every connector receives. Gives you api, logger, secrets, config, job_params, customer_number, work_dir.
  • Logging: context.logger.info/warn/error/debug.

Read/write patterns: BaseLoad​

Every master-data entity (Supplier, Organization, purchase orders, users, etc.) has a Load class that gives you a uniform way to list, search, create, update and delete records. The patterns are the same across every object: read this once and the per-object pages just show you the highlights.

  • BaseLoad: .get_all(), .search(), .new(), .save_all(full_load=False, all_or_none=False, source_system=None), .patch_all([...]), .delete_keys([...]), obj.save(), obj.deactivate(), obj.delete().

Per-object pages​

  • SupplierLoad: supplier + locations + addresses + bank accounts.
  • OrganizationLoad: organization units + identifiers + addresses.
  • PurchaseOrderLoad + PurchaseOrderLineLoad.
  • ReceiptLoad.
  • CustomerDataTableLoad: dynamic customer-defined tables.
  • InvoiceLoad: the consumer side: claim → acknowledge → integration_result, with a lease per claimed invoice. Read-only access to template-driven invoice fields. For ingesting invoices INTO Nuntiq see IngestionLoad below.
  • PaymentLoad: upsert payments with line-level invoice applications.
  • FxRateLoad: the customer's own exchange rates.
  • IngestionLoad: push invoices INTO Nuntiq. Wraps the file-upload + structured-invoice-import flow into one ergonomic builder.
  • LifecycleMessageLoad: read and write the timeline of events on an invoice (ERP success, rejection, payment, approval revoked, etc.).
  • UserLoad: manage human and service-account users in the customer's tenant. The standard Load methods plus a bulk deactivate_inactive() helper. No connector entrypoint may read or write users yet.

Special-purpose helpers​

Things to remember​

  1. save_all() sends full records. A field you leave out gets its default; a child list you send replaces your own children. To change a few fields, use patch_all().
  2. save_all(full_load=True) is a sync run. It removes this source system's records that the run did not send, and nothing when a record was rejected. Only use it with the complete list. For incremental updates, leave full_load=False (the default).
  3. One result per record. Rejected records do not stop the others; RecordsRejected is raised after everything was sent and lists them.
  4. Your connector owns its own records. Records of another source system, or made in the portal, are refused and never removed (unless the connector instance is the system of record).
  5. InvoiceLoad doesn't follow the standard CRUD pattern. Invoices are produced by the Nuntiq platform, not created by connectors: claim() → get_by_token() → acknowledge() → integration_result() is a different shape. See its page.
  6. Validation runs at save_all() time, not at field assignment. You can build up a half-finished entity and discard it if you change your mind.