PackagesPayment Providers
@prood/payment-ifthenpay
Ifthenpay payment provider for Portugal — Multibanco, MB WAY, and credit card.
@prood/payment-ifthenpay implements the PaymentProvider interface for Ifthenpay — a Portuguese payment gateway supporting Multibanco, MB WAY, and credit card payments.
Installation
pnpm add @prood/payment-ifthenpayUsage
import { IfthenpayPaymentProvider } from '@prood/payment-ifthenpay'
const provider = new IfthenpayPaymentProvider({
antiPhishingKey: process.env.IFTHENPAY_ANTIPHISHING_KEY!,
mbKey: process.env.IFTHENPAY_MB_KEY!,
mbwayKey: process.env.IFTHENPAY_MBWAY_KEY!,
ccKey: process.env.IFTHENPAY_CC_KEY!,
})Configuration
| Field | Env var | Description |
|---|---|---|
antiPhishingKey | IFTHENPAY_ANTIPHISHING_KEY | Anti-phishing verification key |
mbKey | IFTHENPAY_MB_KEY | Multibanco gateway key |
mbwayKey | IFTHENPAY_MBWAY_KEY | MB WAY gateway key |
ccKey | IFTHENPAY_CC_KEY | Credit card gateway key |
Each key corresponds to a payment method enabled in your Ifthenpay backoffice.
Selecting a method
Pass metadata.method on createSession() (defaults to multibanco):
metadata.method | Key used | Result |
|---|---|---|
multibanco | mbKey | Entity + reference in providerData |
mbway | mbwayKey | MB WAY push; providerData.requestId |
creditcard | ccKey | Redirect to Ifthenpay hosted card page |
const session = await provider.createSession({
amount: 49.9,
currency: 'EUR',
orderId: 'ord_123',
metadata: { method: 'mbway', phone: '912345678' },
})Reference-based methods (Multibanco) confirm asynchronously — the webhook callback is the source of truth, not a synchronous capture.
Factory usage
import { getPaymentProvider } from '@prood/commerce'
const provider = await getPaymentProvider('ifthenpay', orgId)Payment methods
| Method | Key | Flow |
|---|---|---|
| Multibanco | mbKey | Entity + reference; async ATM/homebanking payment |
| MB WAY | mbwayKey | Phone push notification |
| Credit card | ccKey | Redirect to Ifthenpay hosted page |
Anti-phishing verification
Ifthenpay uses an anti-phishing key to verify webhook authenticity. The provider validates incoming webhooks against this key before processing.
Webhook setup
Configure callback URL in Ifthenpay backoffice:
URL: https://checkout.example.com/api/webhooks/ifthenpay/{orgId}