eversend / eversend-php-sdk
Eversend SDK for merchants
Requires
- guzzlehttp/guzzle: ^7.5
- symfony/cache: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2025-06-25 17:10:33 UTC
README
PHP SDK for Eversend payments API
Table of Contents
Installation
composer require eversend/eversend-php-sdk
Usage
use Eversend\Eversend $eversendClient = new Eversend( clientId= 'clientId', clientSecret= 'clientSecret', version=1 );
You can get your clientId and clientSecret from the settings section in the dashboard
Usage
Wallets
Get all wallets
$wallets = eversendClient.wallets().list();
Get one wallet
$usdWallet = eversendClient.wallets().get(walletId: "USD");
Transactions
Get all transactions
$transactions = eversendClient.transactions().list(page: 1, limit: 10);
If page
and limit
are not set, the default of 1
and 10
are used respectively.
Get one transaction
$transaction = eversendClient.transactions().get( transactionId: "EVS12345678" );
Exchange
To exchange from one wallet to another, you first have to generate a quotation. This returns a token with a 30s timeout that you can use to make the exchange.
Get exchange quotation
$quotation = eversendClient.exchange().createQuotation( from: "USD", to: "UGX", amount: 10.0 );
Exchange currency
$exchange = eversendClient.exchange().createExchange( token: "dhhsggajjshhdhdhd", transactionRef: "EVS-12345678", // optional field );
Beneficiaries
Get beneficiaries
$beneficiaries = eversendClient.beneficiaries.list( page: 1, limit: 10, );
If page
and limit
are not set, the default of 1
and 10
are used respectively.
Search beneficiaries
$beneficiaries = eversendClient.beneficiaries().list( search: "Okello", page: 1, limit: 10, );
Get single beneficiary
$beneficiary = eversendClient.beneficiaries().get( beneficiaryId: 100 );
Create a beneficiary
$beneficiary = eversendClient.beneficiaries.create( firstName: "John", lastName: "Okello", country: "UG", // Alpha-2 country code phoneNumber: "+256712345678", // Should be in international format bankAccountName: "John Okello", bankAccountNumber: "12345678", bankName: "Stanbic Bank", bankCode: 1234 // You can get the bank code from payouts.getDeliveryBanks() );
Note that all bank fields are optional if bank payments will not be required
Edit a beneficiary
$beneficiary = eversendClient.beneficiaries.update( beneficiaryId: 100, firstName: "John", lastName: "Okello", country: "UG", // Alpha-2 country code phoneNumber: "+256712345678", // Should be in international format bankAccountName: "John Okello", bankAccountNumber: "12345678", bankName: "Stanbic Bank", bankCode: 1234 // You can get the bank code from payouts.getDeliveryBanks() );
Note that all bank fields are optional if bank payments will not be required
Delete a beneficiary
$beneficiary = eversendClient.beneficiaries.delete( beneficiaryId: 100 );
Collections
Get collection fees
$collectionFees = eversendClient.collections().getFees( amount: 1000, currency: "KES", method: "momo" );
Get collection OTP
Required when initiating mobile money collections
$collectionOTP = eversendClient.collections().getOTP( phone: "+256712345678" );
Initiate Mobile Money collection
eversendClient.collections().initiateMomo( phone: "+256712345678", amount: 1000, country: "UG", currency: "UGX", pin: 123456, // From phone number passed in Get Collection OTP pinId: "dg524fhsgfde", // From Get Collection OTP transactionRef: "EVS-12345678", // Optional transaction ref generated by you customer: { name: "John Okello" } // Optional customer object with your metadata );
Payouts
Get payout quotation
$quotation = eversendClient.payouts.getQuotation( amount: 100, amountType: "SOURCE", // amountType can be SOURCE or DESTINATION sourceWallet: "USD", destinationCountry: "KE", destinationCurrency: "KES" );
amountType
refers to whether you want amount to representsourceWallet
(SOURCE) ordestinationCurrency
(DESTINATION)
Pay existing beneficiary
$payout = eversendClient.payouts.initiate( beneficiaryId: 100, quotationToken: "token", transactionRef: "EVS-12345678" // Optional transaction ref generated by you );
Pay new beneficiary
$payout = eversendClient.payouts.initiate({ firstName: "John", lastName: "Okello", country: "UG", // Alpha-2 country code phoneNumber: "+256712345678", // Should be in international format bankAccountName: "John Okello", bankAccountNumber: "12345678", bankName: "Stanbic Bank", bankCode: 1234, // You can get the bank code from payouts.getDeliveryBanks() quotationToken: "token", transactionRef: "EVS-12345678" // Optional transaction ref generated by you });
Get delivery countries
$countries = eversendClient.payouts.countries()
Get delivery banks
$banks = eversendClient.payouts.banks( country: "UG" );
Contribution Guidelines
Contributions are welcome and encouraged. Learn more about our contribution guidelines here
License
MIT © Eversend