Prood
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-ifthenpay

Usage

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

FieldEnv varDescription
antiPhishingKeyIFTHENPAY_ANTIPHISHING_KEYAnti-phishing verification key
mbKeyIFTHENPAY_MB_KEYMultibanco gateway key
mbwayKeyIFTHENPAY_MBWAY_KEYMB WAY gateway key
ccKeyIFTHENPAY_CC_KEYCredit 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.methodKey usedResult
multibancombKeyEntity + reference in providerData
mbwaymbwayKeyMB WAY push; providerData.requestId
creditcardccKeyRedirect 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

MethodKeyFlow
MultibancombKeyEntity + reference; async ATM/homebanking payment
MB WAYmbwayKeyPhone push notification
Credit cardccKeyRedirect 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}

On this page