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
contextargument every connector receives. Gives youapi,logger,secrets,config,job_params,customer_number,work_dir. - Logging —
context.logger.info/warn/error/debug.
Read/write patterns: BaseLoad
Every entity (Supplier, Invoice, etc.) has a Load class that gives you a uniform way to list, search, create, update, and bulk-delete rows. The patterns below 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),.delete_where(...).
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. Read-only access to template-driven
invoice fields. For ingesting invoices INTO Nuntiq see
IngestionLoadbelow. - PaymentLoad — upsert payments with line-level invoice applications.
- 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. Standard CRUD plus a bulk
deactivate_inactive()helper.
Special-purpose helpers
- delta_run() context manager — incremental "where did I leave off" cursor for connectors that poll an external system.
Things to remember
save_all(full_load=True)truncates and replaces the whole table. Only use it when you really mean "this is the complete authoritative list". For incremental updates, leavefull_load=False(the default) and the API upserts on the natural key.InvoiceLoaddoesn'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.- Dirty tracking only sends changed fields. Setting a field to its current value won't re-send it.
- 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.