Payouts

Create transfer

Creates a single payout transfer.

post/v3/transfers/single

Request

  • Base URL: https://test-fep.kashier.io
  • URL: https://test-fep.kashier.io/v3/transfers/single
  • Auth: API key in header Authorization

Request body

amountnumber required

the amount of the transfer

method'wallet' | 'card' | 'bank' | 'instant wallet' required

the method of the transfer, it can be wallet, card, bank or instant wallet

recipientNamestring

The name of the person receiving the transfer, 3-70 characters. Required unless you send partyId, which supplies it from the saved beneficiary.

merchantTransferIdstring

Your own unique reference for this transfer. Optional, but it must be unique per merchant, and a transfer created without it never triggers a transfer webhook. Webhooks also require an API key named transfer in the same mode (test or live).

recipientBankstring

The recipient's bank, as an uppercase Kashier bank abbreviation (for example CIB, NBE, ADIB). Required for the bank and card methods and ignored for the others, which return it as null. The accepted values are listed in the bank abbreviations sheet linked from the Payouts guide.

recipientNumberstring

The recipient's account identifier, 1-34 characters. For wallet and instant wallet it must be an Egyptian mobile number matching ^(010|011|012|015)\d{8}$. For bank it is the recipient's account number, validated on length only. For card it identifies the recipient, not the card — the card itself travels in cardToken. Required unless you send partyId, which supplies it from the saved beneficiary.

cardTokenstring

The tokenized payout card. Required when method is card, and supplied by you — Kashier does not derive it from a card number, and no field on this endpoint accepts a raw PAN. Ask your account manager how payout card tokens are issued for your account.

accountIdstring

The Kashier account to debit, in ACC- format. Optional — omit it and the transfer is funded from your primary account. Use it when you hold more than one account and need a specific one to pay.

partyIdstring

Pay a saved beneficiary by id, instead of repeating their details. Kashier resolves recipientName, recipientNumber, recipientBank, and cardToken from the saved record, so you send only partyId, amount, and method. The method you send must match the beneficiary's saved transferMethod or the request is rejected, as is an unknown or deleted id. There is no beneficiaryId field — this is it.

saveBeneficiaryboolean

Save this recipient as a reusable beneficiary while the transfer is created. Best-effort: if saving fails the transfer still goes through, and you simply get no saved beneficiary.

Response

Transfer accepted for processing. Fields that do not apply to the method you sent are echoed back as null rather than rejected — a recipientBank sent with a wallet transfer, for example, comes back as recipientBank: null.

Changes

No recorded changes to this operation across all 1 revision of this API.