Skip to content

feat: add WooCommerce, Salesforce Billing, Xero and QuickBooks integrations (#954 #955 #956 #957) - #1307

Merged
github-actions[bot] merged 1 commit into
Smartdevs17:mainfrom
devsimze:feat/issues-954-955-956-957-accounting-integrations
Oct 19, 2026
Merged

github-actions[bot] merged 1 commit into
Smartdevs17:mainfrom
devsimze:feat/issues-954-955-956-957-accounting-integrations

Conversation

@devsimze

Copy link
Copy Markdown
Contributor

Summary

Adds four first-party merchant integrations that connect Stellar/fiat payments to the systems merchants already run:

Each follows the existing zapier/intercom module layout: a typed client, a service that owns business logic, an index.ts barrel, a thin Express router, and Vitest unit tests.

Details

WooCommerce (#954)

  • REST API v3 client (HTTP Basic auth with consumer key/secret).
  • HMAC-SHA256 webhook verification of X-WC-Webhook-Signature over the raw body.
  • Maps orders to AgenticPay payment drafts and writes settlement status back (paid -> completed, etc.) plus an order note.

Salesforce Billing (#955)

  • SOQL/sObjects REST client.
  • Idempotent account/invoice/line/payment sync keyed by an external id field (External_Id__c by default).
  • Defaults to the Salesforce Billing package objects, overridable per call.

Xero (#956)

  • Tenant-scoped Accounting API client.
  • Invoices matched by Reference (skipped when present); payments submitted with Xero idempotency keys.

QuickBooks Online (#957)

  • Realm-scoped Accounting API client.
  • Customers matched by DisplayName then email; invoices by DocNumber; payments created with QuickBooks requestid for idempotency.

Shared

  • backend/src/integrations/accounting/types.ts holds the normalised invoice/payment schemas reused by Salesforce, Xero and QuickBooks.
  • Routers mounted at /api/v1/integrations/{woocommerce,salesforce,xero,quickbooks} in backend/src/index.ts.
  • WooCommerce webhook raw-body parser registered before the global JSON parser so signatures can be verified.
  • ENV_VARS.md and a new docs/ACCOUNTING_INTEGRATIONS.md document configuration and API usage.

Testing

cd backend
npx vitest run src/integrations/woocommerce src/integrations/salesforce \
  src/integrations/xero src/integrations/quickbooks
# 42 passed (8 files)
  • npx tsc --noEmit: no new errors (repo baseline unchanged).
  • ESLint on new files: 0 errors.
  • npm run test:docs: passes.
  • Route test suite unchanged before/after (no regressions).

Notes

Each integration works end-to-end against the provider REST APIs and is unit-tested on both success and failure paths (invalid webhook signatures, missing invoices, provider API errors, idempotent re-syncs).

Closes #954
Closes #955
Closes #956
Closes #957

…ations (Smartdevs17#954 Smartdevs17#955 Smartdevs17#956 Smartdevs17#957)

Add four first-party integrations following the existing zapier/intercom
module layout (typed client, service, barrel, thin router, Vitest tests):

- WooCommerce plugin (Smartdevs17#954): REST v3 client, HMAC-SHA256 webhook
  verification, order -> payment draft mapping and settlement status
  writeback with order notes.
- Salesforce Billing (Smartdevs17#955): SOQL/sObjects client and idempotent
  account/invoice/line/payment sync keyed by an external id field.
- Xero accounting (Smartdevs17#956): tenant-scoped Accounting API client and
  contact/invoice/payment sync using Xero idempotency keys.
- QuickBooks Sync (Smartdevs17#957): realm-scoped Accounting API client and
  customer/invoice/payment sync using QuickBooks request ids.

Shared normalised invoice/payment schemas live in
integrations/accounting/types.ts so the same payload fans out to every
accounting provider. Routers are mounted under /api/v1/integrations/*,
and the WooCommerce webhook raw-body parser is registered before the
global JSON parser for signature verification.

Tests: 42 passing across 8 files. Docs: docs/ACCOUNTING_INTEGRATIONS.md,
ENV_VARS.md updated. No new type errors or regressions.
@vercel

vercel Bot commented Oct 19, 2026

Copy link
Copy Markdown

@Abidoyesimze is attempting to deploy a commit to the smartdevs17's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@devsimze Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@github-actions
github-actions Bot merged commit 17335fd into Smartdevs17:main Oct 19, 2026
15 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement QuickBooks Sync integration Build Xero accounting integration Add Salesforce Billing integration Implement WooCommerce plugin

2 participants