Wave Accounting and UPS integration
Wave Accounting tracks your invoices and customers. UPS handles your shipments and tracking. Connecting the two keeps your orders moving and your customer records in sync. When you create an invoice in Wave, ml-connector can validate customer addresses against UPS data and seed shipments without re-entering data. UPS tracking events flow back into Wave so you have a complete audit trail of what was shipped, when, and where it went.
What moves between them
Customer addresses from Wave invoices flow into UPS address validation to catch delivery errors early. When Wave invoices are approved or sent, ml-connector can create UPS shipments with the customer address and line item details. UPS tracking events are pulled via Track Alert webhooks or Quantum View polling and stored in Wave audit records. The flow is primarily one-way from Wave into UPS for shipment creation, with tracking data flowing back for customer visibility.
How ml-connector handles it
ml-connector stores Wave OAuth access and refresh tokens encrypted, and renews them when a GraphQL call returns a 401. For UPS, it holds the client credentials encrypted, obtains bearer tokens from the UPS security endpoint, and includes the optional merchant ID header if configured. When a Wave invoice is created or sent, ml-connector extracts the customer address, validates it against the UPS address validation API, and creates a shipment if the address is valid. UPS Track Alert subscriptions require 14-day renewal, so ml-connector renews them before they expire to avoid outages. If address validation fails, the record is flagged for manual review. Wave does not support invoice patching, so shipment references are stored in Wave transaction notes or custom fields via separate API calls. Every shipment and tracking event carries an audit trail and can be replayed if a call fails.
A real-world example
A small e-commerce seller uses Wave Accounting to manage customer invoices and monthly bookkeeping, and ships orders via UPS. Before the integration, the fulfillment team printed invoices from Wave, manually typed customer addresses into the UPS web interface, created shipments, and then manually logged tracking numbers back into Wave spreadsheets. The finance team had no visibility into what had shipped. With Wave and UPS connected, each Wave invoice triggers a UPS shipment with automatic address validation, and tracking events flow back into Wave automatically. The fulfillment team spends less time on data entry, the finance team sees the complete order-to-shipment pipeline, and customer addresses are validated before a label is printed.
What you can do
- Validate customer addresses from Wave invoices against UPS data before creating a shipment.
- Create UPS shipments automatically when Wave invoices are approved or sent, with line item and customer data from the invoice.
- Sync UPS tracking events back into Wave audit records and customer timelines for complete order visibility.
- Manage OAuth 2.0 tokens on both Wave and UPS sides, with automatic refresh when tokens expire.
- Flag address validation errors for manual review and retry failed shipment creation calls with backoff.
Questions
- Which direction does data move between Wave Accounting and UPS?
- The primary flow is from Wave into UPS. Customer addresses and line items from Wave invoices are used to validate addresses and create UPS shipments. Tracking events and shipment status flow back from UPS into Wave for audit records and customer visibility. UPS has no invoice API, so no financial data moves back into Wave.
- What happens if a customer address in Wave fails UPS validation?
- ml-connector flags the record for manual review and does not create the shipment until the address is corrected in Wave. The customer can be contacted via Wave to verify or update their address, and the shipment attempt can be retried once the address is valid.
- How does ml-connector handle UPS Track Alert subscriptions and token renewal?
- UPS Track Alert subscriptions expire after 14 days and must be renewed. ml-connector renews them automatically before expiry to avoid losing tracking data. Wave and UPS OAuth tokens are refreshed when calls return 401, and the UPS client credentials token is obtained fresh from the security endpoint before expiry.
Related integrations
More Wave Accounting integrations
Other systems that connect to UPS
Connect Wave Accounting and UPS
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started