epayco / epayco-php
Epayco API client for PHP
Installs: 143 284
Dependents: 4
Suggesters: 0
Security: 0
Stars: 24
Watchers: 5
Forks: 22
Open Issues: 28
Type:sdk
Requires
- php: >=5.3.0|>=8.1
- rmccue/requests: >=1.0|>=2.0
Requires (Dev)
- phpunit/phpunit: ^4.8.9
This package is auto-updated.
Last update: 2025-04-16 20:30:11 UTC
README
PHP wrapper for Epayco API
Description
API to interact with Epayco https://api.epayco.co/
Dependencias
* PHP 5.3+
Installation
composer require epayco/epayco-php
Add autoload
to composer
require 'vendor/autoload.php';
From GitHub
$ git clone https://github.com/epayco/epayco-php.git
Usage
$epayco = new Epayco\Epayco(array( "apiKey" => "YOU_PUBLIC_API_KEY", "privateKey" => "YOU_PRIVATE_API_KEY", "lenguage" => "ES", "test" => true ));
Create Token
$token = $epayco->token->create(array( "card[number]" => '4575623182290326', "card[exp_year]" => "2017", "card[exp_month]" => "07", "card[cvc]" => "123", "hasCvv" => true //hasCvv: validar codigo de seguridad en la transacción ));
Customers
Create
$customer = $epayco->customer->create(array( "token_card" => $token->id, "name" => "Joe", "last_name" => "Doe", //This parameter is optional "email" => "joe@payco.co", "default" => true, //Optional parameters: These parameters are important when validating the credit card transaction "city" => "Bogota", "address" => "Cr 4 # 55 36", "phone" => "3005234321", "cell_phone"=> "3010000001", ));
Retrieve
$customer = $epayco->customer->get("id_client");
List
$customer = $epayco->customer->getList([ "page"=>6, "perPage"=>10 ]);
Update
$customer = $epayco->customer->update("id_client", array('name' => 'julianc'));
Delete Customer's token
$customer = $epayco->customer->delete(array( "franchise" => "visa", "mask" => "457562******0326", "customer_id"=>"id_client" ));
Add new token default to card existed
$customer = $epayco->customer->addDefaultCard(array( "customer_id"=>"id_client", "token" => "**********zL4gFB", "franchise"=> "american-express", "mask"=> "373118*****7642" ));
Add new token to customer existed
$customer = $epayco->customer->addNewToken(array( "token_card" => "HyjnY3pBSjFtiQBRT", "customer_id"=>"id_client" ));
Plans
Create
$plan = $epayco->plan->create(array( "id_plan" => "coursereact", "name" => "Course react js", "description" => "Course react and redux", "amount" => 30000, "currency" => "cop", "interval" => "month", "interval_count" => 1, "trial_days" => 30, "ip" => "127.0.0.1", "iva" => 5700, "ico" => 0, "planLink" => "https://github.com/epayco", "greetMessage" => "discounted react and redux course", "linkExpirationDate" => "2025-03-11", "subscriptionLimit"=> 10, #Subscription limit between 0 and 10000 "imgUrl"=>"https://epayco.com/wp-content/uploads/2023/04/logo-blanco.svg", "discountValue"=>5000, #discount value "discountPercentage"=>19, #discount percentage "transactionalLimit"=> 2, #transactional Limit "additionalChargePercentage"=>0.0, #Additional charge percentage limit "firstPaymentAdditionalCost"=>45700 #Installation Cost ));
Retrieve
$plan = $epayco->plan->get("coursereact");
List
$plan = $epayco->plan->getList();
Upadte
$plan = $epayco->plan->update("coursereact",array( "name" => "Course react js", "description" => "Course react and redux", "amount" => 35700, "currency" => "cop", "interval" => "month", "interval_count" => 1, "trial_days" => 30, "ip"=> "127.0.0.1", "iva" => 1900, "ico" => 0, "transactionalLimit"=> 3, "additionalChargePercentage"=>0.0, "afterPayment"=>"message after paying" ));
Remove
$plan = $epayco->plan->remove("coursereact");
Subscriptions
Create
$sub = $epayco->subscriptions->create(array( "id_plan" => "coursereact", "customer" => "id_client", "token_card" => "id_token", "doc_type" => "CC", "doc_number" => "5234567", //Optional parameter: if these parameter it's not send, system get ePayco dashboard's url_confirmation "url_confirmation" => "https://ejemplo.com/confirmacion", "method_confirmation" => "POST" ));
Retrieve
$sub = $epayco->subscriptions->get("id_subscription");
List
$sub = $epayco->subscriptions->getList();
Cancel
$sub = $epayco->subscriptions->cancel("id_subscription");
Pay Subscription
$sub = $epayco->subscriptions->charge(array( "id_plan" => "coursereact", "customer" => "id_client", "token_card" => "id_token", "doc_type" => "CC", "doc_number" => "5234567", "address" => "cr 44 55 66", "phone"=> "2550102", "cell_phone"=> "3010000001", "ip" => "190.000.000.000" // This is the client's IP, it is required ));
PSE
Listar bancos
$test = true; // opcional, tiene que ser true o false o no enviarse $bancos = $epayco->bank->pseBank($test); //$bancos representa un object con toda la lista de bancos disponibles para transacciones con PSE
Create
$pse = $epayco->bank->create(array( "bank" => "1022", "invoice" => "1472050778", "description" => "Pago pruebas", "value" => "10000", "tax" => "0", "tax_base" => "0", "currency" => "COP", "type_person" => "0", "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "PRUEBAS", "last_name" => "PAYCO", "email" => "no-responder@payco.co", "country" => "CO", "city" => "Bogota", "cell_phone" => "3010000001", "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://ejemplo.com/respuesta.html", "url_confirmation" => "https://ejemplo.com/confirmacion", "metodoconfirmacion" => "GET", //Los parámetros extras deben ser enviados tipo string, si se envía tipo array generara error. "extra1" => "", "extra2" => "", "extra3" => "", "extra4" => "", "extra5" => "", "extra6" => "", "extra7" => "", ));
Retrieve
$pse = $epayco->bank->get("ticketId");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split payment
use the following attributes in case you need to do a dispersion with one or multiple providers
$split_pay = $epayco->bank->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', //sí se envía este campo el split_receivers se vuelve un campo obligatorio "split_receivers" => json_encode(array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') )) // Campo obligatorio sí se envía el campo split_rule ));
Cash
Create
$cash = $epayco->cash->create("efecty", array( "invoice" => "1472050778", "description" => "pay test", "value" => "20000", "tax" => "0", "tax_base" => "0", "currency" => "COP", "type_person" => "0", "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "testing", "last_name" => "PAYCO", "email" => "test@mailinator.com", "cell_phone" => "3010000001", "country" => "CO", "city" => "Bogota", "end_date" => "data_max_5_days", // yy-mm-dd "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://ejemplo.com/respuesta.html", "url_confirmation" => "https://ejemplo.com/confirmacion", "metodoconfirmacion" => "GET", //Los parámetros extras deben ser enviados tipo string, si se envía tipo array generara error. "extra1" => "", "extra2" => "", "extra3" => "", "extra4" => "", "extra5" => "", "extra6" => "", "extra7" => "", ));
list
$cash = $epayco->cash->create("efecty", array()); $cash = $epayco->cash->create("gana", array()); $cash = $epayco->cash->create("baloto", array());//expiration date can not be longer than 30 days $cash = $epayco->cash->create("redservi", array());//expiration date can not be longer than 30 days $cash = $epayco->cash->create("puntored", array());//expiration date can not be longer than 30 days
Retrieve
$cash = $epayco->cash->transaction("id_transaction");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split Payment:
use the following attributes in case you need to do a dispersion with one or multiple providers
$split_pay = $epayco->cash->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', // si se envía este parámetro el campo split_receivers se vuelve obligatorio "split_receivers" => json_encode(array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') )) // Campo obligatorio sí se envía split_rule ));
Payment
Create
$pay = $epayco->charge->create(array( //required "token_card" => $token->id, "customer_id" => $customer->data->customerId, "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "John", "last_name" => "Doe", "email" => "example@email.com", "value" => "116000", "currency" => "COP", // optional "bill" => "OR-1234", "description" => "Test Payment", "tax" => "16000", "tax_base" => "100000", "dues" => "12", "address" => "cr 44 55 66", "city" => "Medellín", "country" => "CO", "phone"=> "2550102", "cell_phone"=> "3010000001", "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://tudominio.com/respuesta.php", "url_confirmation" => "https://tudominio.com/confirmacion.php", "method_confirmation" => "GET", "use_default_card_customer" => true, // if the user wants to be charged with the card that the customer currently has as default = true // Los parámetros "extras" deben ser enviados como cadenas de texto (string). Aunque se agrupen dentro de un array, cada parámetro individual debe ser un string. Si se envían como otro tipo de datos, como arrays anidados, se generará un error. "extras"=> array( "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ) ));
Retrieve
$pay = $epayco->charge->transaction("id_transaction");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split payment:
use the following attributes in case you need to do a dispersion with one or multiple providers
$split_pay = $epayco->charge->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', // sí se envía este parámetro el campo split_receivers se vuelve obligatorio "split_receivers" => array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') ) //Campo obligatorio sí se envía split_rule ));
Daviplata
Create
$pay = $epayco->daviplata->create(array( "doc_type" => "CC", "document" => "1053814580414720", "name" => "Testing", "last_name" => "PAYCO", "email" => "exmaple@epayco.co", "ind_country" => "CO", "phone" => "314853222200033", "country" => "CO", "city" => "bogota", "address" => "Calle de prueba", "ip" => "189.176.0.1", "currency" => "COP", "description" => "ejemplo de transaccion con daviplata", "value" => "100", "tax" => "0", "tax_base" => "0", "method_confirmation" => "POST", "url_confirmation" => "https://tudominio.com/respuesta.php", "url_response" => "https://tudominio.com/respuesta.php", "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ));
Confirm
$pay = $epayco->daviplata->confirm(array( "ref_payco" => "45508846", // It is obtained from the create response "id_session_token" => "45081749", // It is obtained from the create response "otp" => "2580" ));
Safetypay
Create
$sp = $epayco->safetypay->create(array( "cash" => "1", "end_date" => "2022-08-05", "doc_type" => "CC", "document" => "123456789", "name" => "Jhon", "last_name" => "doe", "email" => "gerson.vasquez@epayco.com", "ind_country" => "57", "phone" => "3003003434", "country" => "CO", "invoice" => "fac-01", "city" => "N/A", "address" => "N/A", "ip" => "192.168.100.100", "currency" => "COP", "description" => "Thu Jun 17 2021 11:37:01 GMT-0400 (hora de Venezuela)", "value" => 100, "tax" => 0, "ico" => 0, "tax_base" => 0, "method_confirmation" => "POST", "url_confirmation" => "https://tudominio.com/respuesta.php", "url_response" => "https://tudominio.com/respuesta.php", "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ));