This project is not covered by Drupal’s security advisory policy.
Commerce NovaPay integrates [NovaPay Internet Acquiring](https://novapay.ua/en/ia/)
with Drupal Commerce as an off-site (redirect) payment gateway, built on top of
the official `novapay-ua/novapay` PHP SDK.
At checkout, the customer is redirected to NovaPay's hosted payment page
(card, Apple Pay, Google Pay, or the NovaPay Button) and returned to the
store once payment completes. The module verifies NovaPay's signed
server-to-server postback as the authoritative source of truth for payment
status, rather than trusting the customer's browser redirect alone.
Features
- Off-site redirect checkout against NovaPay's hosted payment page.
- Signature-verified asynchronous postback handling (`onNotify`), with a
synchronous status check (`onReturn`) as a fallback for the customer's
browser redirect.
- Authorize-only mode (hold now, capture later) alongside immediate capture.
- Capture, void, and refund, wired to NovaPay's `completeHold()` and
`voidSession()` endpoints, with status polling to account for NovaPay's
asynchronous settlement. Refunds are all-or-nothing (NovaPay's API does
not support partial refunds), so a partial refund request is rejected
rather than silently refunding the full balance.
Requirements
- Drupal Commerce (`commerce_payment`)
- The `novapay-ua/novapay` PHP SDK
- A NovaPay Internet Acquiring merchant account, private key, and NovaPay's
public key (all provided under your NovaPay contract)
Configuration
Enable the module, then go to
**Commerce → Configuration → Payment gateways → Add payment gateway** and
choose the "NovaPay (Off-site redirect)" plugin. You'll need:
- Merchant ID
- Your private key (PEM), used to sign outgoing requests
- NovaPay's public key (PEM), used to verify incoming postbacks
- A fallback client phone number, used until checkout collects one per
customer
- Whether to authorize only (hold/capture) or capture immediately
Project information
- Project categories: E-commerce
- Created by vmarchuk on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
