U.CASH Pay for QuickBooks Online. Add a "Pay with U.CASH" option to invoices; a verified webhook posts a Payment to the invoice. Non-custodial.
Status: scaffold. The OAuth2 token refresh + the QBO Payment POST in
markInvoicePaid()are stubbed (the exact request is documented inline). Wire them with the Intuit SDK/REST, validate in the QBO sandbox, then submit to the Intuit App Store.
GET /pay?invoiceId=..&amount=..¤cy=..redirects to a hosted U.CASH Pay checkout for the invoice.POST /ucashpay/webhookverifies theX-Webhook-Signature(HMAC-SHA256, 300s window) and posts a Payment to the invoice.
npm install
UCASH_CLOUD_TOKEN=st_.. UCASH_WEBHOOK_SECRET=.. \
QBO_COMPANY_ID=.. QBO_CLIENT_ID=.. QBO_CLIENT_SECRET=.. QBO_REFRESH_TOKEN=.. QBO_ENV=sandbox \
PORT=3000 npm start- Sign up at pay.u.cash, verify email.
- Set receive addresses under Settings → Addresses.
- Create a store at Account → Stores → + Add Store; copy the Store Cloud Token + Store Webhook Secret.
- Set the webhook URL to
https://your-host/ucashpay/webhook, then Test Webhook.
Create an app at the Intuit Developer Portal, enable the com.intuit.quickbooks.accounting scope, and use OAuth2 (refresh-token flow). Implement markInvoicePaid() with POST /v3/company/{companyId}/payment. Listing on the Intuit App Store is a separate review.
MIT.