Bank transfers (Pol, Paya, Satna)
Take payments by IBAN transfer as well as card to card: cards with an IBAN, accounts without a card, the payment methods setting, the kinds of transfer and the wait window.
Customers can pay you card to card, or by bank transfer to your IBAN (شبا): Pol (پل), Paya (پایا), Satna (ساتنا) or a transfer inside the same bank. Either way the money goes straight from their bank to your account, they send the receipt, and your team approves it in the same review queue. Every plan takes both.
Cards and accounts
A payment goes to a destination. Add destinations under Cards and accounts in the dashboard (owners and admins):
- A card, with its card number and, optionally, the IBAN of the account behind it. Without an IBAN the card takes card-to-card payments only; with one it takes bank transfers too.
- An account, with an IBAN and no card, such as a company account. Its bank is read from the IBAN. It takes bank transfers only.
Both need the holder name: the customer's bank app shows the holder before a transfer, and the checkout shows the same name. The dashboard checks every IBAN as you type it:
| Refusal | Why |
|---|---|
| An IBAN that fails its check digits | A mistyped digit. |
card.iban_bank_unknown | The IBAN's bank code names no bank we know. |
card.iban_exists | Another card or account of this business and mode already has this IBAN. One account has one destination, so its transfers are never split between two. An archived destination still waiting for a transfer keeps its IBAN until that payment closes. |
card.pan_forbidden | An account cannot carry a card number. Add a card instead. |
card.iban_immutable | An account's IBAN never changes. Archive it and add a new one. |
card.iban_in_use | A card's IBAN can be added, changed or removed, except while one of its payments still offers a bank transfer. |
When a card's bank and its IBAN's bank differ (after a bank merger, for example), the dashboard warns you but accepts both.
Payment methods
Your checkout settings choose the methods you take, in How customers can pay: card to card, bank transfer, or both (the default). At least one stays on.
- Each payment takes the methods you enabled that its destination supports, as
payment_method_types. It is fixed when the payment is created: an IBAN added later does not reach payments already open. - Your routing picks only destinations that take an enabled method. A
cardyou name on a payment or a payment link may be a card or an account, but it must take one of them (payment_card_invalid). With none at all, a payment cannot be created (card_none_available). - The checkout shows one tab per method the payment takes, with card to card first whenever it takes cards. See the hosted checkout.
Kinds of transfer
A receipt, a claim and a deposit name the channel the money came by:
channel | Kind | Usually |
|---|---|---|
card | Card to card | Usually instant. |
pol | Pol | Usually instant. |
paya | Paya | Settles with Paya cycles, sometimes the next working day. |
satna | Satna | Usually for larger amounts, during banks' working hours. |
internal | Same-bank transfer | Usually instant, between two accounts of one bank. |
These notes are deliberately vague: the customer's bank is the only one who knows.
Limits and hours
The Central Bank and each bank set the amount limits and working hours of every kind of transfer, and change them without notice. Bezanbecard does not publish them and never acts on them:
- nothing is hidden, disabled, refused or preselected because of an amount or a time;
- a receipt the customer sends is always accepted, whatever kind of transfer it names: they already sent the money;
- automatic matching of a bank SMS keeps going until the payment's grace ends, whatever kind of transfer was named.
The only hint is soft. When an amount looks large for card to card, the checkout's card tab says a bank transfer may be easier, and the bank transfer tab marks the kinds that may suit the amount as suggested. The API serves the same hint as suggestion in the checkout view, and nothing else.
Transfer fees are usually paid by the sender, so the exact amount reaches you. If less arrives, the payment shows it like any short transfer.
The transfer wait window
A Paya or Satna transfer can take a while to land. When a customer says they paid by Paya or Satna, the payment keeps watching for that transfer's bank SMS for at least your transfer wait window after they said so: 48 hours by default, anywhere from one hour to seven days, in your checkout settings. Each payment keeps the window it was created with.
The window matters only when the SMS app is connected. A receipt waits in your review queue until your team decides, however long the transfer takes.
Matching a bank transfer
A bank transfer is matched like card to card: the unique amount on the destination finds its payment. The SMS of a transfer never names the paying card, so the payer-card rule applies to card-to-card claims only. It names your account instead, by its last digits, and that is how the deposit finds its card or account.
In the API
| Object | Field | Description |
|---|---|---|
payment | payment_method_types | ["card"], ["transfer"] or both. |
payment | destination.type | card or account. |
payment | destination.iban_last4 | The IBAN's last four digits, or null. |
payment | destination.iban | The full IBAN, secret keys only; null when the payment takes no bank transfer. |
payment | destination.pan, destination.last4 | null for an account. |
card | type, iban_last4 | An account is a card object with type: "account" and last4: null. |
deposit | channel | card, pol, paya, satna, internal, or null when unknown. POST /v1/deposits and POST / take it. |
account | capabilities.bank_transfer | Your settings take bank transfers. |
The payments export has a methods column and the deposits export a channel column. Webhooks never carry a card number or an IBAN.