Download Latest Version OpenReceive v0.4.33 source code.zip (14.5 MB)
Home / v0.4.19
Name Modified Size InfoDownloads / Week
Parent folder
openreceive-0.4.19-py3-none-any.whl 2026-10-07 1.1 MB
openreceive-0.4.19.tar.gz 2026-10-07 1.1 MB
openreceive-docs-0.4.19.tar.gz 2026-10-07 2.2 MB
openreceive-rails-0.4.19.gem 2026-10-07 49.7 kB
openreceive-server-0.4.19.gem 2026-10-07 53.2 kB
openreceive-wordpress-0.4.19.zip 2026-10-07 3.3 MB
standalone-checkout-0.4.19.tar.gz 2026-10-07 806.9 kB
openreceive-0.4.19.gem 2026-10-07 154.1 kB
openreceive-node-0.4.19.tgz 2026-10-07 184.2 kB
openreceive-provider-data-0.4.19.tgz 2026-10-07 247.0 kB
openreceive-react-0.4.19.tgz 2026-10-07 57.2 kB
openreceive-svelte-0.4.19.tgz 2026-10-07 4.7 kB
openreceive-vue-0.4.19.tgz 2026-10-07 4.3 kB
openreceive-0.4.19.tgz 2026-10-07 2.4 kB
openreceive-angular-0.4.19.tgz 2026-10-07 11.2 kB
openreceive-browser-0.4.19.tgz 2026-10-07 152.2 kB
openreceive-core-0.4.19.tgz 2026-10-07 33.2 kB
openreceive-elements-0.4.19.tgz 2026-10-07 860.2 kB
openreceive-express-0.4.19.tgz 2026-10-07 5.6 kB
openreceive-fastify-0.4.19.tgz 2026-10-07 6.0 kB
openreceive-http-0.4.19.tgz 2026-10-07 44.9 kB
openreceive-next-0.4.19.tgz 2026-10-07 4.8 kB
OpenReceive v0.4.19 source code.tar.gz 2026-10-07 7.0 MB
OpenReceive v0.4.19 source code.zip 2026-10-07 8.3 MB
README.md 2026-10-07 6.0 kB
Totals: 25 Items   25.7 MB 0

OpenReceive 0.4.19 fixes two bugs that broke checkout in 0.4.18: Prisma on PostgreSQL failed every checkout, and Next.js 16 production builds (Turbopack) could not reach the wallet. Upgrade if you use either.

Optional swaps let payers use USDT, USDC, SOL and ETH; a configured swap provider converts them to BTC over Lightning in the merchant's connected wallet. Asset and network availability depends on the provider.

  • New: examples/next-postgres-starter, a one-product Next.js shop on Postgres that uses only the published packages. Its README has a Vercel Deploy button that creates a Neon database and asks for NWC_URI; every build creates the tables. It needs 0.4.19, because of the Turbopack fix below. Checked with a Next 16 production build: through PgBouncer in transaction mode, it minted a real invoice and refused a stranger's browser.
  • New guide: Bitcoin checkout in v0, covering starting from the starter or adding checkout to an existing v0 app (with a prompt that fetches the Next.js directions), environment variables per Vercel environment, and how settlement runs without a worker.
  • Next.js and Express directions: if the user says the two codes are already set as the hosting platform's environment variables or secrets (v0, Vercel, Replit, Lovable), the agent no longer asks for them or writes an env file.
  • Node: a Next.js 16 production build (Turbopack, the default) could not reach the wallet. The NWC client was loaded through new Function("return import(...)") and require.resolve; Turbopack rewrites require.resolve to a numeric module id, so preflight failed with The "path" argument must be of type string. Received type number and every payment route answered 503. The test runs used the fake wallet, so they never loaded the real client. It is now a plain await import("@getalby/sdk/nwc"): still lazy, and something any bundler resolves. That also removes the new Function call that Cloudflare Workers forbid. Verified with a Next 16 production build against a real wallet.
  • Node: Prisma on PostgreSQL failed every checkout. The per-reference lock selected pg_advisory_xact_lock(...), whose void result Prisma's raw queries cannot read ("Failed to deserialize column of type 'void'"), so each create threw before an invoice existed. The lock now selects a constant from the function. pg, Knex and TypeORM were not affected, and the Ruby, Python and PHP engines read the void column fine. The ORM lanes had covered Prisma only on SQLite.
  • New CI lane: the payments contract (concurrent retries, rollback, write-once settlement, the reconcile gate) runs through PgBouncer in transaction mode with prepared statements off, for pg, Knex, Prisma (@prisma/adapter-pg) and TypeORM. That is the connection serverless hosts get from Supabase's port 6543 and Neon's pooler. All four pass. Run it locally with tests/orms/pooler/compose.yml.
  • Fastify: with the documented mount, register(openReceiveFastify, { prefix: "/openreceive" }), an unknown path under the prefix got Fastify's own 404 instead of OpenReceive's JSON 404. openreceive doctor --url probes for that 404, so its routes check failed on a working install, and an eval agent wrote a fake OpenReceive 404 to pass it. The register scope is now the mount, and the router answers every path inside it.
  • Agent directions for every library stack (Node, Fastify, Next, FastAPI, Django, Rails, PHP, Laravel) end the way WooCommerce Step 3 does: doctor is clean, the user gets the checkout link, the quickstart's browser check is theirs, the agent cannot pay the invoice, and one message says "Setup is finished" with no offer or question. A new non-negotiable keeps the agent in the application: no other project's files, no browser or Playwright. Eval runs on Node and Fastify ended on "checkout is live", took "Yes, go ahead" as a request for the browser check, and loaded Playwright from another checkout. BTCPay's directions end on a clean health check the same way.
  • WordPress, ready for WordPress.org review: the plugin zip no longer ships the engine's PHPStan cache, test suites, examples or tool configs from bundled dependencies, or a .DS_Store. The 0.4.18 zip was 28 MB unpacked in 2,742 files; it is now about 10 MB in 1,100. The build fails if a generated autoloader still points at a pruned test file. The zip now carries composer.json so reviewers can see the dependencies. It also leaves out the fake wallet (DemoWallet and the engine's Testing classes): defining OPENRECEIVE_DEMO_WALLET on a store now enables nothing. The Docker example's staged plugin keeps it for its tests. paragonie/sodium_compat is no longer bundled: the plugin requires the sodium extension, and WordPress core already ships that polyfill.
  • WordPress: the plugin is named "OpenReceive" in its header and readme, so the WordPress.org slug becomes openreceive. The directory derives the slug from the header and the name it showed would have produced openreceive-bitcoin-lightning-payments-for-woocommerce. Every PHP file exits when loaded outside WordPress. Activation also refuses 32-bit PHP, and wp openreceive doctor reports it.
  • WordPress: readme.txt is rewritten as the directory listing, with a full external-services section (wallet relay, price feeds, swap provider). The price mirror's terms and privacy policy live at the new site-owned path /privacy.
  • New guide: WordPress hosting requirements, covering GMP and sodium availability on common hosts and how to check a site. WordPress's Site Health screen cannot detect a missing GMP.
Source: README.md, updated 2026-10-07