Skip to content

Sale (buyūʿ)

Trade is permitted and riba is forbidden (al-Baqarah 2:275). The line between them runs through the form of the sale. Each of these five classes is a genuine sale whose structure keeps the riba out: a fixed disclosed markup that is not interest on time, a price paid in full up front, a thing possessed before it is sold, an exchange settled hand to hand. Offend the form and the spec will not compile.

A cost-plus trust sale (bayʿ al-amāna). The financier buys a real good, takes possession (qabḍ), discloses its true cost, then resells it to the customer for a fixed disclosed markup, payable deferred. It is a sale, and three rules hold it there. The markup is a fixed sum rather than a function of time. The seller must possess the good before selling it (“do not sell what you do not have”). A late payment can never raise the debt.

Code What it guards
MUR-1 returns { sale { cost; markup; total; markup_basis; payment } } must be present. It is bayʿ al-amāna.
MUR-2 a acquireAsset lifecycle step, so the bank takes qabḍ before selling.
RIBA-2 the markup is charged on time/principal rather than fixed.
RIBA-3 a late-payment penalty accruing to the seller, which is interest on a debt.
GHARAR-1 the total is indefinite (price uncertainty).
murabahah.fiqh: consistent
instrument Murabahah : murabahah {
meta { basis: "AAOIFI Shari'ah Standard No. 8"; currency: tinybar; }
parties {
bank : seller; // buys the good, then resells cost-plus
customer : buyer;
}
returns {
sale {
cost: 1000000; // the bank's true cost, DISCLOSED
markup: 100000; // a fixed, disclosed profit, never interest on time
total: 1100000; // cost + markup, fixed at contract
markup_basis: fixed; // not a function of the deferral period
payment: deferred;
late_penalty: none; // a late payment never raises the debt
}
}
invariant cost_disclosed { sale.cost != 0 }
invariant markup_fixed { sale.markup_basis == fixed }
invariant prior_ownership { possession == required }
invariant no_penalty_interest { sale.late_penalty == none }
lifecycle { acquireAsset; discloseCost; sell; payInstalment; }
}

This is the flagship. It has run its full cost-plus lifecycle live on the Hedera testnet. See Live on Hedera.

A forward sale. The buyer pays the full price now (raʾs al-māl, at the session); the seller delivers a described fungible good of known kind, measure, quality, and quantity at a known future date. This is the one sale where the object need not yet exist, permitted because the price is paid in full up front. Defer the price and it becomes bayʿ al-kāliʾ bi-l-kāliʾ (debt for debt). Leave the object vague and it is gharar.

Code What it guards
SALAM-1 returns { salam { price; payment; quantity; measure; quality; delivery_date } } present.
SALAM-2 a known, positive quantity of the muslam fīh (maʿlūm).
SALAM-3 a known future delivery_date (ajal maʿlūm).
salam.fiqh: the load-bearing terms
returns {
salam {
price: 1000000; // raʾs al-māl, paid IN FULL at the session
payment: spot_full; // full prepayment (else bayʿ al-kāliʾ bi-l-kāliʾ)
quantity: 100; // the muslam fīh: known quantity,
measure: ardabb; // known measure,
quality: grade_a; // and known quality (all maʿlūm)
delivery_date: 90; // a known future delivery date (ajal maʿlūm)
}
}

Manufacture-to-order. The customer (al-mustaṣniʿ) commissions a good made to a known specification; the maker (al-ṣāniʿ) supplies the materials as well as the labour. It is held permissible by istiḥsān, and it sits between its two neighbours. Unlike salam, the price may be deferred or paid in instalments. Unlike ijārat al-ʿamal, the maker furnishes the materials; were the customer to supply them, it would be mere hire of labour.

Code What it guards
ISTISNA-1 returns { istisna { price; spec; quantity; material_by; delivery_date } } present.
ISTISNA-2 material_by is the maker, else it is ijārat al-ʿamal, a different contract.
ISTISNA-3 a known, positive total price, which may be deferred (the salam contrast).
ISTISNA-4 (warning) a known delivery_date should be declared.
istisna.fiqh: the load-bearing terms
returns {
istisna {
price: 1000000; // a known, fixed total price
payment: instalment; // MAY be deferred / progressive (unlike salam)
spec: described; // the masnūʿ is described to spec (anti-gharar)
quantity: 10;
material_by: manufacturer; // the ṣāniʿ provides the materials (else ijārat al-ʿamal)
delivery_date: 180;
}
}

Currency and precious-metal exchange. The six-commodities hadith reduces to two rules. Same genus means equal for equal, or it is ribā al-faḍl. Any exchange must be hand to hand, spot, or it is ribā al-nasīʾa. A cross-genus exchange such as USD for EUR may differ in amount by the rate, but settlement must still be spot.

Code What it guards
SARF-1 returns { exchange { give_asset; give_amount; take_asset; take_amount; same_genus; settlement } } present, settlement spot (else ribā al-nasīʾa).
SARF-2 a same-genus exchange must be equal for like; any excess is ribā al-faḍl.
SARF-3 positive give_amount and take_amount.
sarf.fiqh: a cross-genus exchange, settled spot
returns {
exchange {
give_asset: usd;
give_amount: 1000;
take_asset: eur;
take_amount: 920;
same_genus: no; // usd != eur, so cross-genus; amounts may differ by the rate
settlement: spot; // yadan bi-yad, both legs in the same session
}
}

The individual (classical) form. The mustawriq, needing cash, buys a commodity on credit from the financier, takes possession, then sells it to an independent third party for spot cash and repays the deferred price over time. The majority permit this individual form. Two collapses are forbidden. Selling back to the financier is bayʿ al-ʿīnah. A sale the financier arranges is organised tawarruq (munaẓẓam), which the OIC Fiqh Academy forbade in Resolution 179 (19/5), 2009.

Code What it guards
TAWARRUQ-1 the onward spot buyer is not the credit seller (else bayʿ al-ʿīnah).
TAWARRUQ-2 a takePossession step, so qabḍ precedes resale.
TAWARRUQ-3 the onward sale is not arranged by the financier (else munaẓẓam).
tawarruq.fiqh: the licit form
parties {
customer : mustawriq; // needs cash
bank : financier; // sells on credit (deferred)
market : third_party; // independent spot buyer
}
returns {
credit_purchase { asset: metal; price: 1100; payment: deferred; }
spot_sale { asset: metal; price: 1000; buyer: third_party; arranged_by: customer; }
}

The cyclic, forbidden forms are also caught topologically when expressed as a bundle. The engine forbids the ring that closes back to the financier. See Composition.