Passer au contenu principal
Accédez au service via $orqex->payouts(). Chaque méthode renvoie un Payout typé.

Créer

Fournissez au minimum un customer, une description et un instrument décrivant la destination. Le champ optionnel reference est une clé d’idempotence fournie par le marchand.
$payout = $orqex->payouts()->create([
    'amount'      => 5000,             // unités majeures
    'currency'    => 'XOF',
    'method'      => 'momo_mtn',
    'description' => 'Règlement fournisseur — juin 2026',
    'reference'   => 'fournisseur-42-juin-2026',
    'customer'    => [
        'id' => 'cus_01j9z8kx0000000000000000',
    ],
    'instrument'  => [
        'type'         => 'phone',
        'phone_number' => '+22507000000',
        'country'      => 'CI',
    ],
]);

$payout->id;             // "po_01j9z8kx0000000000000000"
$payout->status;         // "pending" | "processing" | "completed" | "failed" | ...
$payout->amount->value;  // unités majeures (décimal)
$payout->reference;      // votre référence marchand
Utilisez PayoutMethodCode pour des codes de méthode typés :
use Orqex\Orchestrate\Enum\PayoutMethodCode;

$payout = $orqex->payouts()->create([
    'method' => PayoutMethodCode::MOBILE_MONEY_MTN->value, // "momo_mtn"
    // ...
]);

Récupérer

$payout = $orqex->payouts()->retrieve('po_01j9z8kx0000000000000000');

$payout->status;                    // "completed"
$payout->amount->value;             // unités majeures (décimal)
$payout->amount->currency;          // "XOF"
$payout->customer->email;
$payout->instrument->type;          // "phone" | "bank_account" | "crypto_address"
$payout->instrument->phone_number;  // présent si type est "phone"
$payout->gateway['id'];             // identifiant de transaction côté passerelle
$payout->fee_amount;                // frais en unités majeures (décimal), ou null
$payout->failure;                   // Failure|null si status est "failed"
$payout->initiated_at;
$payout->completed_at;

Champs de la ressource Payout

ChampTypeDescription
idstringIdentifiant du virement (po_...)
amountAmountvalue (unités majeures, décimal) + currency
statusstringpending, processing, completed, failed
methodstring|nullCode de méthode de virement (voir PayoutMethodCode)
referencestring|nullRéférence d’idempotence fournie par le marchand
descriptionstring|nullDescription lisible
customerCustomer|nullClient associé
instrumentPayoutInstrument|nullInstrument de destination
gatewayarrayDétails de la transaction passerelle (id, reference, external_id)
fee_amountfloat|nullFrais de virement en unités majeures (décimal)
failureFailure|nullDétails structurés de l’échec quand status est failed
metadataarrayPaires clé-valeur arbitraires
initiated_atstring|nullHorodatage ISO 8601
completed_atstring|nullHorodatage ISO 8601
failed_atstring|nullHorodatage ISO 8601
created_atstring|nullHorodatage ISO 8601

Types d’instrument

Un PayoutInstrument décrit la destination du virement. Le champ type détermine les champs supplémentaires présents :
typeChamps
phonephone_number, country
bank_accountaccount_name, account_number, bank_code, swift_bic, country
crypto_addressaddress, network, memo_tag

Méthodes

MéthodeRenvoie
create(array $params, $opts = null)Payout
retrieve(string $payoutId, $opts = null)Payout
Il n’y a pas de méthode all() sur PayoutService. Pour lister les virements, utilisez l’API Payouts directement ou interrogez vos propres enregistrements.
Voir le concept Payouts pour le cycle de vie complet et les événements webhook.