Skip to main content
Use the @bijection/connectors/wave entrypoint to declare Wave resources.

Availability

This page describes the pinned source package. Published availability is unestablished for this artifact. Source build and package availability.

Resources and modes

Declare a resource in application code, then bind deployment-specific settings and credentials. See typed resources, connections and source inspection.

Invoices

pull: Captured GraphQL pages by modifiedAtAfter, Money text, signed webhook hints, read-only

The following example matches configuration standard.

Configuration: standard

Case: wave/invoices/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: wave. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: invoices
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Configuration: polled

Case: wave/invoices/pull/polled. Connection and resource configuration are declared by this exact case. Credential kind: wave. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: invoices
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Customers

pull: Captured GraphQL pages by modifiedAtAfter, archived as state, read-only

The following example matches configuration standard.

Configuration: standard

Case: wave/customers/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: wave. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: customers
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Provider guidance

Compiled declaration examples and configuration details are published in the connector reference. Bind setup { businessId } (Wave’s base64 global business id, as businesses answers it) and a wave credential (wave.credential("WAVE")): an OAuth access token or a Full Access token for https://gql.waveapps.com. OAuth reaches only businesses with an active Pro or Wave Advisor subscription, and a third-party integration needs Wave’s approval. Identity is the id business(id:) answers with.

What is read

Every request is a captured GraphQL query against POST /graphql/public; see Captured contract.
  • invoices: header fields and totals (subtotal, discountTotal, taxTotal, total, amountPaid, amountDue), no line items. Amounts are Wave’s own Money.value text, refused unless it is plain decimal text, and every amount must name the invoice’s currency. exchangeRate is Wave’s Decimal text.
  • customers: names, email, displayId, isArchived (a state) and currency. Outstanding and overdue balances are not read: nothing says they move modifiedAt.
A pass pages by 1-based page number (pageSize 1..100, default 45, Wave’s own default; its maximum is undocumented), sorted MODIFIED_AT_ASC. The first pass walks everything; each finished pass carries the latest modifiedAt, and the next asks modifiedAtAfter five minutes (overlapSeconds) before it. The last page is the one pageInfo.totalPages names, or a short page where Wave states no count. Offset pages over a live ordering can pass over a record that moves during the pass, so every 96th pass (fullEvery) walks everything again. Versions are modifiedAt. Nothing is ever deleted: Wave’s invoice statuses name no void or deleted state, and a deleted invoice or customer disappears with no tombstone. A record deleted in Wave stays published.

Webhooks

updates: "webhooks" admits Wave’s invoice webhooks as refresh hints: x-wave-signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">, five-minute tolerance, deduplicated by event_id. An event names the invoice by Wave’s raw UUID rather than the API’s base64 global id and carries only that event’s fields, so it asks for a pass and names no record. Wave sends no customer events.

Limits and writes

Wave documents no request rate; the schema’s own @rateLimit directive defaults to 60 per minute, held as a client-side budget. Partial GraphQL answers (errors beside data) are refused before this code sees them. Wave’s mutations carry no idempotency key and no precondition, so nothing is written.

Captured contract

schema.graphql is a reviewed field projection of a third-party introspection dump of Wave’s public schema (its header keeps the dump’s SHA-256 and retrieval date). Selected output fields keep every argument and input type, with one declared deviation: CurrencyCode (more ISO 4217 values than the bijection-graphql-v1 profile’s 32 enum alternatives) is captured as a scalar whose wire mapping is three upper-case letters. operations.graphql holds the three queries; operations.generated.ts and contract.generated.json are compiler output.

Regenerating

Feed this JSON on stdin to the bijection-graphql compiler (tools/codegen/http/src/graphql/bin.mjs, Node 24.13.0), with files holding the contents of schema.graphql and operations.graphql:
Write artifact plus a newline to contract.generated.json, and to operations.generated.ts the first line of the current file, the two imports (createGraphQLOperation from ../../graphql.js, v from bijection/values) and source, exactly as dev/graphql-codegen.mjs does for GitHub. Nothing here has run against Wave. Package fixtures establish declaration behavior only; the Money spelling, page-size bound, modifiedAtAfter inclusivity and webhook bodies are taken from Wave’s documentation and schema.

Provider references

Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.

Source and evidence

Canonical connector source, native analysis and check receipts. Connector artifact: 905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305. The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.