Repository navigation
feat: add WooCommerce, Salesforce Billing, Xero and QuickBooks integrations (#954 #955 #956 #957) - #1307
Merged
github-actions[bot] merged 1 commit intoOct 19, 2026
Conversation
…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.
|
@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. |
|
@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! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds four first-party merchant integrations that connect Stellar/fiat payments to the systems merchants already run:
Each follows the existing
zapier/intercommodule layout: a typed client, a service that owns business logic, anindex.tsbarrel, a thin Express router, and Vitest unit tests.Details
WooCommerce (#954)
X-WC-Webhook-Signatureover the raw body.paid->completed, etc.) plus an order note.Salesforce Billing (#955)
External_Id__cby default).Xero (#956)
Reference(skipped when present); payments submitted with Xero idempotency keys.QuickBooks Online (#957)
DisplayNamethen email; invoices byDocNumber; payments created with QuickBooksrequestidfor idempotency.Shared
backend/src/integrations/accounting/types.tsholds the normalised invoice/payment schemas reused by Salesforce, Xero and QuickBooks./api/v1/integrations/{woocommerce,salesforce,xero,quickbooks}inbackend/src/index.ts.ENV_VARS.mdand a newdocs/ACCOUNTING_INTEGRATIONS.mddocument configuration and API usage.Testing
npx tsc --noEmit: no new errors (repo baseline unchanged).npm run test:docs: passes.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