A build-to-order Frappe app that connects Stripe Terminal card readers (BBPOS WisePOS E, M2) and Tap to Pay to ERPNext POS, so in-person and online card payments settle to one unified ledger. ECOSIRE scopes, builds, installs, and supports it — no marketplace download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $349.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that connects Stripe Terminal card readers (BBPOS WisePOS E, M2) and Tap to Pay to ERPNext POS, so in-person and online card payments settle to one unified ledger. ECOSIRE scopes, builds, installs, and supports it — no marketplace download.
Şimdi ödeme yok. Bu, ekibimize bir teklif talebi gönderir — fiyat ve sonraki adımlarla e-posta ile dönüş yapacağız.
Omnichannel ERPNext retailers hit a wall the moment they try to take a physical card. ERPNext POS handles cash, cheque, and manual "credit card" mode-of-payment lines, but it has no concept of a certified card-present terminal: no reader pairing, no EMV/contactless capture, no card-present pricing, and no automatic reconciliation of the swipe back to the POS Invoice. Staff end up keying totals into a separate Stripe or bank terminal and then re-typing the result into ERPNext, which produces mismatched settlements, orphaned refunds, and a POS ledger nobody trusts at month-end. Stripe's card-present rails (Terminal) solve the hardware and compliance side, but nothing in ERPNext core speaks to them.
Custom Frappe app installable via `bench get-app` / `bench install-app`, packaged as a dedicated module with its own DocTypes rather than site customizations
`Stripe Terminal Settings` single DocType holding publishable/secret keys, Stripe Location id, and capture-method config, with secret stored via Frappe's password fieldtype
`Stripe Reader` DocType to register, label, and manage BBPOS WisePOS E and M2 devices, including reader status and location binding
`Stripe Terminal Payment` transaction DocType storing PaymentIntent id, card brand, last4, capture state, and link back to the POS Invoice
Whitelisted server method to mint Stripe connection tokens so the browser never sees the secret key, as required by the Terminal SDK
POS payment-screen client script adding a 'Pay at Reader' action that drives the physical terminal and polls PaymentIntent status
We build a proper Frappe app — installable with bench get-app and bench install-app — that makes Stripe Terminal a first-class ERPNext payment method. The app ships a custom Stripe Terminal Settings single DocType for API keys and location config, a Stripe Reader DocType to register and manage BBPOS WisePOS E and M2 devices, and a Stripe Terminal Payment transaction DocType that stores the PaymentIntent id, capture method, card brand, last4, and reconciliation state. Whitelisted server methods (@frappe.whitelist()) expose connection-token minting and PaymentIntent create/capture/cancel to the POS front end without ever exposing your secret key to the browser, since the Stripe Terminal JS/SDK requires a server-issued connection token. A client script extends the ERPNext POS payment screen with a "Pay at Reader" action that drives the physical terminal, then writes results back through the REST API.
Under the hood we wire the flow through hooks.py document events and scheduler hooks: on_submit of the POS Invoice triggers capture and stamps the Stripe reference, a Stripe webhook endpoint (a whitelisted guest method with signature verification) receives payment_intent.succeeded, charge.refunded, and terminal.reader.action_* events to keep ERPNext authoritative, and a scheduler_events hourly job reconciles any in-flight PaymentIntents against Stripe so a dropped Wi-Fi connection can't leave a sale in limbo. Refunds initiated from the reader or from ERPNext create a linked Payment Entry and reverse the charge, and card-present transactions carry the 3DS liability shift so you get the lower card-present pricing and exemptions rather than online rates. Tap to Pay on iPhone and supported Android devices runs through the same PaymentIntent path for retailers who don't want dedicated hardware. Role-based permissions (a dedicated POS Terminal Manager role profile) gate settings, refunds, and reader registration.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call, confirm your ERPNext version (v15 or v16), your Stripe account and target regions, the reader models and store count, and your reconciliation and refund rules. We then build against a staging copy of your bench, run UAT with your team, and only cut over to production once you sign off. You receive the full source as a versioned Frappe app in a git repo you own, plus documentation, training, and a defined post-go-live support window — not a black-box marketplace binary.
Runs both an online store and physical locations on ERPNext and needs card-present checkout that settles to the same ledger as web orders, with one reconciliation at day-end instead of two disconnected systems.
Oversees several branches and wants Stripe Locations mapped to POS Profiles, per-store reader management, and consistent refund and reconciliation rules enforced by role permissions across every till.
Needs a clean, well-documented Frappe app with real DocTypes, whitelisted methods, and hooks — not brittle site customizations — that they can hand off, extend, and keep compatible across v15/v16 upgrades.
Cares that every card-present sale, refund, and payout reconciles to a Payment Entry in the GL, that dropped-connection sales can't go missing, and that card-present pricing and 3DS liability shift are actually captured.
Lisansı ecosire.com adresinden satın alın ve hesap kontrol panelinizden Stripe POS Terminal for ERPNext uygulamasının ZIP dosyasını indirin.
ZIP dosyasını tezgahınızın uygulamalar klasörüne çıkarın veya çıkarılan uygulamanın yolunu içeren "bench get-app" komutunu çalıştırın.
Stripe POS Terminal for ERPNext yüklemek ve şemasını uygulamak için `bench --site SITE_NAME install-app APP_NAME` komutunu ve ardından `bench move'u çalıştırın.
Sitenizdeki ECOSIRE Lisans ayarlarını açın ve lisans anahtarınızı etkinleştirin. Ücretsiz ecosire_connect ve ecosire_license_client uygulamalarını gerektirir.
| Kriter | ECOSIRE | Özel Yapı | Rakip | Odoo Yerlisi |
|---|---|---|---|---|
| Delivery model | Build-to-order Frappe app, 2-4 weeks from confirmed scope | Fully bespoke, timeline depends on your team's bandwidth | Instant download, generic to all buyers | |
| Card readers (WisePOS E, M2) | Certified reader pairing and capture built in | You integrate the Terminal SDK yourself | May support one reader model, often US-only | |
| Tap to Pay (iPhone/Android) | Same PaymentIntent path, no extra hardware | Additional SDK work on your side | Rarely included | |
| Unified online + in-person ledger | Both settle to Payment Entry, single reconciliation | You design the reconciliation logic | Often a standalone log, weak GL linkage | |
| Reconciliation resilience | Hourly scheduler sweep + signature-verified webhooks | Must build webhook and recovery yourself | Basic or webhook-only, no recovery job | |
| Refunds at the reader | Reader/ERPNext refund reverses charge + Payment Entry | Hand-built refund flow | Sometimes online-only refunds | |
| Source ownership & docs | Full git repo handover + technical docs + training | You own it, docs depend on your team | Closed binary, vendor-locked | |
| v15/v16 compatibility & support | Tested on your bench + post-go-live support window | Self-maintained across upgrades | Depends on vendor's release cadence |
No. This is build-to-order. ECOSIRE scopes, builds, installs, and supports a Frappe app tailored to your ERPNext version, Stripe account, reader models, and reconciliation rules. You request a quotation, we confirm scope, then we build — there is no instant download.
Typical delivery is 2 to 4 weeks from confirmed scope, depending on store count, reader models, and how many reconciliation and refund rules are involved. The timeline starts once we've agreed the specification on the scoping call, not from the day you enquire.
We build for ERPNext and Frappe v15 and v16, tested against your exact bench before cutover. On hardware we support BBPOS WisePOS E and M2 readers plus Tap to Pay on iPhone and supported Android devices, all through Stripe Terminal's certified card-present rails.
Every build includes a defined post-go-live support window for bug fixes and configuration adjustments. Because you receive the full source in a git repo you own, you can maintain it yourself or contract ECOSIRE for version upgrades and enhancements later. We can also quote an ongoing maintenance retainer covering ERPNext v15-to-v16 upgrade compatibility.
Yes. Both e-commerce charges and in-person Terminal captures resolve to a Mode of Payment and Payment Entry in ERPNext, so your cash-up and GL reconciliation are single-source. An hourly scheduler job and signature-verified Stripe webhooks keep ERPNext authoritative even if a reader drops connection mid-sale.
Yes. Because transactions run through Stripe Terminal PaymentIntents with the card-present method, they carry the 3DS liability shift and card-present exemptions, so they qualify for card-present pricing rather than online card rates. Refunds can be issued at the reader or from ERPNext and reverse the charge with a linked Payment Entry.
No. The Terminal SDK requires a server-issued connection token, so the front end only ever receives a short-lived connection token minted by a whitelisted server method. Your secret key stays in the `Stripe Terminal Settings` DocType using Frappe's encrypted password fieldtype and never reaches the client.
A build-to-order Frappe app that connects Stripe Terminal card readers (BBPOS WisePOS E, M2) and Tap to Pay to ERPNext POS, so in-person and online card payments settle to one unified ledger. ECOSIRE scopes, builds, installs, and supports it — no marketplace download.