PHPackages                             facundocapua/php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. facundocapua/php-sdk

ActiveLibrary

facundocapua/php-sdk
====================

Fork del Php SDK para Decidir

1.5.7(4y ago)03CSSPHP &gt;=5.3

Since Jun 28Pushed 4y ago1 watchersCompare

[ Source](https://github.com/facundocapua/sdk-php-v2)[ Packagist](https://packagist.org/packages/facundocapua/php-sdk)[ RSS](/packages/facundocapua-php-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (12)Used By (0)

Decidir SDK PHP
===============

[](#decidir-sdk-php)

Modulo para conexión con gateway de pago DECIDIR2

- [Introducción](#introduccion)
    - [Alcance](#alcance)
    - [Cierre de lotes](#cierre)
    - [TimeOut](#timeout)
    - [Diagrama de secuencia](#diagrama-secuencia)
- [Instalación](#instalaci%C3%B3n)
    - [Versiones de PHP soportadas](#versiones)
    - [Manual de Integración](#manualintegracion)
    - [Ambiente](#ambiente)
- [Uso](#uso)
    - [Inicializar la clase correspondiente al conector](#initconector)
    - [Operatoria del Gateway](#operatoria)
        - [Health Check](#healthcheck)
        - [Ejecución del Pago](#payment)
        - [Captura del Pago](#capture)
        - [Ejecución de pago offline](#pagooffline)
            - [Pago Facil](#pf)
            - [Rapipago](#rp)
            - [Pago mis Cuentas](#pmc)
            - [Caja de Pagos](#cp)
            - [Cobro Express](#ce)
        - [Listado de Pagos](#getallpayments)
        - [Información de un Pago](#getpaymentinfo)
            - [Información adicional de tarjeta](#infoadicionaltarjeta)
        - [Anulación / Devolución Total de Pago](#refund)
        - [Anulación de Devolución Total](#deleterefund)
        - [Devolución Parcial de un Pago](#partialrefund)
        - [Anulación de Devolución Parcial](#deletepartialrefund)
    - [Tokenizacion de tarjetas de crédito](#tokenizaciontarjeta)
        - [Listado de tarjetas tokenizadas](#listadotarjetastokenizadas)
        - [Ejecucion de pago tokenizado](#pagotokenizado)
        - [Eliminacion de tarjeta tokenizada](#eliminartarjetatokenizada)
    - [Integración con Cybersource](#cybersource)
        - [Retail](#retail)
        - [Ticketing](#ticketing)
        - [Digital Goods](#digital-goods)
        - [Services](#services)
        - [Travel](#travel)
- [Tablas de referencia](#tablasreferencia)
    - [Códigos de Medios de Pago](#c%C3%B3digos-de-medios-de-pago)
        - [Divisas Aceptadas](#divisasa)
    - [Provincias](#provincias)
- [Errores](#errores)
    - [Errores de sistema](#erroressistema)
    - [Errores de marca](#erroresmarca)

Introducción
------------

[](#introducción)

El flujo de una transacción a través de las **sdks** consta de dos pasos, la **generación de un token de pago** por parte del cliente y el **procesamiento de pago** por parte del comercio. Existen sdks específicas para realizar estas funciones en distintos lenguajes que se detallan a continuación:

- **Generación de un token de pago.** Se utiliza alguna de las siguentes **sdks front-end** :
    - [sdk IOS](https://github.com/decidir/SDK-IOS.v2)
    - [sdk Android](https://github.com/decidir/SDK-Android.v2)
    - [sdk Javascript](https://github.com/decidir/sdk-javascript-v2)
- **Procesamiento de pago.** Se utiliza alguna de las siguentes **sdks back-end** :
    - [sdk Java](https://github.com/decidir/SDK-JAVA.v2)
    - [sdk PHP](https://github.com/decidir/SDK-PHP.v2)
    - [sdk .Net](https://github.com/decidir/SDK-.NET.v2)
    - [sdk Node](https://github.com/decidir/SDK-.NODE.v2)

Alcance
-------

[](#alcance)

La **sdk PHP** provee soporte para su **aplicación back-end**, encargandose de la comunicación del comercio con la **API Decidir** utilizando su **API Key privada**1 y el **token de pago** generado por el cliente.

Para generar el token de pago, la aplicación cliente realizará con **Decidir** a través de alguna de las siguentes **sdks front-end**:

- [sdk IOS](https://github.com/decidir/SDK-IOS.v2)
- [sdk Android](https://github.com/decidir/SDK-Android.v2)
- [sdk Javascript](https://github.com/decidir/sdk-javascript-v2)

[![imagen de sdks](./docs/img/DiagramaSDKs.png)](./docs/img/DiagramaSDKs.png)

[Volver al inicio](#alcance)

Cierre de lotes
---------------

[](#cierre-de-lotes)

El cierre de lote le permite al comercio hacer la presentación ante cada Marca de las operaciones de Compras, Anulaciones y Devoluciones realizadas para que las mismas puedan ser liquidadas por cada medio de pago.+

Los cierres de lotes de cada medio de pago pueden realizarse de 2 maneras: Manual: esta modalidad es “on demand”. Para ello, un usuario del comercio debe ingresar a la consola de Decidir y seleccionar el medio de pago a cerrar lote. Opción de menú: Menú --&gt; Cerrar Lote. Para más detalle por favor consultar el Manual de Administración de Decidir. Automática: Los procesos se ejecutan diariamente luego de la medianoche, y al finalizar, se envían al comercio cada uno de los archivos del cierre de lote de cada medio de pago habilitado. Los resúmenes correspondientes a los cierres de lotes automáticos efectuados pueden ser enviados por:

- E-MAIL
- FTP/SFTP

En caso de que el comercio opte por recibir los resúmenes vía e-mail, debe indicarnos a qué dirección o direcciones de correo electrónico desea recibir tales archivos. En caso de que el comercio opte por recibir los resúmenes vía FTP o SFTP, debe indicarnos los siguientes datos: URL del servidor, usuario y clave.

[Volver a inicio](#inicio)

TimeOut
-------

[](#timeout)

El tiempo standard de Timeout para una transaccion es de **6 segundos**. Puede existir casos excepcionales, mucho flujo de transacciones concurrentes , en el cual el timeout puede variar entre\*\* 20 a 30 segundos\*\*. Si el cliente decide configurar un timeout menor al indicado, deberá anular las transacciones en estado "Autorizadas" de manera manual.

[Volver a inicio](#inicio)

Diagrama de secuencia
---------------------

[](#diagrama-de-secuencia)

El flujo de una transacción a través de las sdks consta de dos pasos, a saber:

sdk front-end: Se realiza una solicitud de token de pago con la Llave de Acceso pública (public API Key), enviando los datos sensibles de la tarjeta (PAN, mes y año de expiración, código de seguridad, titular, y tipo y número de documento) y obteniéndose como resultado un token que permitirá realizar la transacción posterior.

sdk back-end: Se ejecuta el pago con la Llave de Acceso privada (private API Key), enviando el token generado en el Paso 1 más el identificador de la transacción a nivel comercio, el monto total, la moneda y la cantidad de cuotas.

A continuación, se presenta un diagrama con el Flujo de un Pago.

[![imagen de configuracion](./docs/img/FlujoPago.png)](./docs/img/FlujoPago.png)

[Volver al inicio](#diagramasecuencia)

Instalación
-----------

[](#instalación)

El SDK se encuentra disponible para descargar desde [Github](https://github.com/decidir/sdk-php-v2) o desde composer con el siguiente comando:

```

composer require decidir2/php-sdk
```

Una vez instalo el SDK dentro del proyecto, es necesario tener descomentada la extension=php\_curl.dll en el php.ini, ya que para la conexión al gateway se utiliza la clase curl del API de PHP.

[Volver al inicio](#decidir-sdk-php)

Versiones de PHP soportadas
---------------------------

[](#versiones-de-php-soportadas)

La versión implementada de la SDK, está testeada para las versiones PHP desde 5.3.

[Volver al inicio](#versiones)

Manual de Integración
---------------------

[](#manual-de-integración)

Se encuentra disponible la documentación **[Manual de Integración Decidir2](https://decidir.api-docs.io/1.0/guia-de-inicio/)** para su consulta online, en este se detalla el proceso de integración. En el mismo se explican los servicios y operaciones disponibles, con ejemplos de requerimientos y respuestas, aquí sólo se ejemplificará la forma de llamar a los distintos servicios utilizando la presente SDK.

Ambientes
---------

[](#ambientes)

El sdk PHP permite trabajar con los ambientes de Sandbox y Producción de Decidir. El ambiente se debe definir al instanciar el SDK.

```

$ambient = "test";//valores posibles: "test" o "prod"
$connector = new \Decidir\Connector($keys_data, $ambient);
```

[Volver al inicio](#ambiente)

Uso
---

[](#uso)

### Inicializar la clase correspondiente al conector.

[](#inicializar-la-clase-correspondiente-al-conector)

El SDK-PHP permite trabajar con los ambientes de desarrollo y de producción de Decidir. El ambiente se debe instanciar como se indica a continuación. Instanciación de la clase `Decidir\Connector`La misma recibe como parámetros la public key o private key provisto por Decidir para el comercio y el ambiente en que se trabajara.

```
$keys_data = array('public_key' => 'e9cdb99fff374b5f91da4480c8dca741',
           'private_key' => '92b71cf711ca41f78362a7134f87ff65');

$ambient = "test";//valores posibles: "test" o "prod"
$connector = new \Decidir\Connector($keys_data, $ambient);
```

*Nota:* La sdk incluye un ejemplo de prueba completo el cual se debe acceder desde el navegador, allí permitirá configurar las distintas opciones.

[Volver a inicio](#decidir-sdk-php)

Operatoria del Gateway
----------------------

[](#operatoria-del-gateway)

### Health Check

[](#health-check)

Este recurso permite conocer el estado actual de la API RESTful de DECIDIR.

```
$connector = new \Decidir\Connector($keys_data, $ambient);
$response = $connector->healthcheck()->getStatus();
$response->getName();
$response->getVersion();
$response->getBuildTime();
```

[Volver a inicio](#decidir-sdk-php)

### Ejecución del Pago

[](#ejecución-del-pago)

Una vez generado y almacenado el token de pago, se deberá ejecutar la solicitud de pago más el token previamente generado. Además del token de pago y los parámetros propios de la transacción, el comercio deberá identificar la compra con el site\_transaction\_id.

*Aclaracion* : amount es un campo double el cual debería tener solo dos dígitos decimales.

CampoDescripcionObligRestriccionesEjemploidid usuario que esta haciendo uso del sitio, pertenece al campo customer (ver ejemplo)CondicionalSin validacionuser\_id: "marcos",emailemail del usuario que esta haciendo uso del sitio (se utiliza para tokenizacion), pertenece al campo customer(ver ejemplo)CondicionalSin validacionemail: "",ip\_addressIP del comercioCondicionalSin validacionip\_address: "192.168.100.2",site\_transaction\_idnro de operacionSIAlfanumerico de hasta 39 caracteres"prueba 1"site\_idSite relacionado a otro site, este mismo no requiere del uso de la apikey ya que para el pago se utiliza la apikey del site al que se encuentra asociado.NOSe debe encontrar configurado en la tabla site\_merchant como merchant\_id del site\_id28464385tokentoken generado en el primer pasoSIAlfanumerico de hasta 36 caracteres. No se podra ingresar un token utilizado para un pago generado anteriormente.""payment\_method\_idid del medio de pagoSIEl id debe coincidir con el medio de pago de tarjeta ingresada.Se valida que sean los primeros 6 digitos de la tarjeta ingresada al generar el token.payment\_method\_id: 1,binprimeros 6 numeros de la tarjetaSIImporte minimo = 1 ($0.01)bin: "456578"amountimporte del pagoSIImporte Maximo = 9223372036854775807 ($92233720368547758.07)amount=20000currencymonedaSIValor permitido: ARSARSinstallmentscuotas del pagoSI"Valor minimo = 1 Valor maximo = 99"installments: 1payment\_typeforma de pagoSIValor permitido: single / distributed"single"establishment\_namenombre de comercioCondicionalAlfanumerico de hasta 25 caracteres"Nombre establecimiento"#### Ejemplo

[](#ejemplo)

```
$connector = new \Decidir\Connector($keys_data, $ambient);

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "customer" => array(
                        "id" => "customer",
                        "email" => "user@mail.com"
                        "ip_address" => "192.168.100.2"
                        ),
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 5.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "establishment_name" => "Nombre establecimiento",
      "payment_type" => "single",
      "sub_payments" => array()
    );

try {
	$response = $connector->payment()->ExecutePayment($data);
	$response->getId();
	$response->getToken();
	$response->getUser_id();
	$response->getPayment_method_id();
	$response->getBin();
	$response->getAmount();
	$response->getCurrency();
	$response->getInstallments();
	$response->getPayment_type();
	$response->getDate_due();
	$response->getSub_payments();
	$response->getStatus();
	$response->getStatus_details()->ticket
	$response->getStatus_details()->card_authorization_code
	$response->getStatus_details()->address_validation_code
	$response->getStatus_details()->error
	$response->getDate();
	$response->getEstablishment_name();
	$response->getFraud_detection();
	$response->getAggregate_data();
	$response->getSite_id();
} catch( \Exception $e ) {
	var_dump($e->getData());
}
```

[Volver a inicio](#decidir-sdk-php)

### Captura del Pago

[](#captura-del-pago)

Para el caso de la operatoria de transacción en dos pasos, la captura o confirmación del pago puede realizarse de la siguiente manera.

*Aclaracion* : amount es un campo double el cual debería tener solo dos dígitos decimales.

CampoDescripcionObligRestriccionesEjemploamountimporte del pagoSIImporte Maximo = 9223372036854775807 ($92233720368547758.07)amount=20000#### Ejemplo

[](#ejemplo-1)

```
$connector = new \Decidir\Connector($keys_data, $ambient);

$data = array(
      "amount" => 5.00,
    );

try {
	$response = $connector->payment()->CapturePayment($data);
} catch( \Exception $e ) {
	var_dump($e->getData());
}
```

[Volver a inicio](#decidir-sdk-php)

Ejecución de pago offline
-------------------------

[](#ejecución-de-pago-offline)

Una vez generado y almacenado el token de Pago Offline, se deberá ejecutar la solicitud de pago utilizando el token previamente generado. Además del token de pago y los parámetros propios de la transacción, el comercio deberá identificar la compra con el site\_transaction\_id.

*Aclaracion* : amount es un campo double el cual debería tener solo dos dígitos decimales.

### Pago Facil

[](#pago-facil)

[![imagen de sdks](./docs/img/me-rapipago-pagofacil.jpg)](./docs/img/me-rapipago-pagofacil.jpg)

CampoDescripcionObligRestriccionesEjemplosite\_transaction\_idIdentificador único para la operaciónSI8 dígitossite\_transaction\_id: "170518\_35"tokenToken generado en el primer pasoSI36 dígitos,variabletoken: "03508514-1578-4140-ba02-6bdd65e2af95"payment\_method\_idid del tipo de metodo de Pago OfflineSIDos dígitospayment\_method\_id: "26"amountMonto de la operación. 6 números enteros y 2 decimalesSI8 dígitos,variableamount: "11.00"currencySon los días que existen entre el 1er y 2do vencimientoSI3 letrascurrency: "ARS"payment\_typeTipo de pagoSILetraspayment\_type: "single"emailemail del usuario que esta haciendo uso del sitioCondicionalSin validacionemail: "",invoice\_expirationFecha en que vence el cupónSIFormato AAMMDDinvoice\_expiration: "191123"cod\_p3Son los dias que existen entre el 1º y 2º vencimiento de la factura.SI2,fijo ("00" si la factura tiene no tiene 2° vencimientos)invoice\_expiration: "191123"cod\_p4Días después del 1º vencimiento y hasta que el cliente pueda abonarSI3,fijocod\_p4: "123"clientCodigo ClienteSI8,fijoclient: "12345678"surchargeRecargo por vencimiento del plazoSI7,variable (5 digitos enteros y 2 decimales)surcharge: "10.01"payment\_modeTipo de metodo de pagoSIStrin "offline"payment\_mode: "offline"#### Ejemplo

[](#ejemplo-2)

```
$data = array(
  "site_transaction_id" => "230518_41",
  "token" => "92a95793-3321-447c-8795-8aeb8a8ac067",
  "payment_method_id" => 25,
  "amount" => 10.00,
  "currency" => "ARS",
  "payment_type" => "single",
  "email" => "user@mail.com",
  "invoice_expiration" => "191123",
  "cod_p3" => "12",
  "cod_p4" => "134",
  "client" => "12345678",
  "surcharge" => 10.01,
  "payment_mode" => "offline"
);

$response = $connector->payment()->ExecutePaymentOffline($data);
```

[Volver a inicio](#decidir-sdk-php)

### Rapipago

[](#rapipago)

[![imagen de sdks](./docs/img/me-rapipago-pagofacil.jpg)](./docs/img/me-rapipago-pagofacil.jpg)

CampoDescripcionObligRestriccionesEjemplosite\_transaction\_idIdentificador único para la operaciónSI8 dígitossite\_transaction\_id: "170518\_35"tokenToken generado en el primer pasoSI36 dígitos,variabletoken: "03508514-1578-4140-ba02-6bdd65e2af95"payment\_method\_idid del tipo de metodo de Pago OfflineSIDos dígitospayment\_method\_id: "26"amountMonto de la operación. 6 números enteros y 2 decimalesSI8 dígitos,variableamount: "11.00"currencySon los días que existen entre el 1er y 2do vencimientoSI3 letrascurrency: "ARS"payment\_typeTipo de pagoSILetraspayment\_type: "single"emailemail del usuario que esta haciendo uso del sitioCondicionalSin validacionemail: "",invoice\_expirationFecha en que vence el cupónSIFormato AAMMDDinvoice\_expiration: "191123"cod\_p3Son los dias que existen entre el 1º y 2º vencimiento de la factura.SI2,fijo ("00" si la factura tiene no tiene 2° vencimientos)invoice\_expiration: "191123"cod\_p4Días después del 1º vencimiento y hasta que el cliente pueda abonarSI3,fijocod\_p4: "123"clientCodigo ClienteSI8,fijoclient: "12345678"surchargeRecargo por vencimiento del plazoSI7,variable (5 digitos enteros y 2 decimales)surcharge: "10.01"payment\_modeTipo de metodo de pagoSIStrin "offline"payment\_mode: "offline"#### Ejemplo

[](#ejemplo-3)

```
$data = array(
  "site_transaction_id" => "230518_38",
  "token" => "8e190c82-6a63-467e-8a09-9e8fa2ab6215",
  "payment_method_id" => 26,
  "amount" => 10.00,
  "currency" => "ARS",
  "payment_type" => "single",
  "email" => "user@mail.com",
  "invoice_expiration" => "191123",
  "cod_p3" => "12",
  "cod_p4" => "134",
  "client" => "12345678",
  "surcharge" => 10.01,
  "payment_mode" => "offline"
);

$response = $connector->payment()->ExecutePaymentOffline($data);
```

### Pago mis Cuentas

[](#pago-mis-cuentas)

[![imagen de sdks](./docs/img/me-pmc.jpg)](./docs/img/me-pmc.jpg)

CampoDescripcionObligRestriccionesEjemplosite\_transaction\_idIdentificador único para la operaciónSI8 dígitossite\_transaction\_id: "170518\_35"tokenToken generado en el primer pasoSI36 dígitos,variabletoken: "03508514-1578-4140-ba02-6bdd65e2af95"payment\_method\_idid del tipo de metodo de Pago OfflineSIDos dígitospayment\_method\_id: "26"amountMonto de la operación. 6 números enteros y 2 decimalesSI8 dígitos,variableamount: "11.00"currencySon los días que existen entre el 1er y 2do vencimientoSI3 letrascurrency: "ARS"payment\_typeTipo de pagoSILetraspayment\_type: "single"emailemail del usuario que esta haciendo uso del sitioCondicionalSin validacionemail: "",invoice\_expirationFecha en que vence el cupónSIFormato AAMMDDinvoice\_expiration: "191123"bank\_idId de banco de la operacionSIString "offline"bank\_id: 1 ([refencia](https://decidirv2.api-docs.io/1.0/transacciones-simples/flujo-de-pago-offline))#### Ejemplo

[](#ejemplo-4)

```
$data = array(
  "site_transaction_id" => "220518_39",
  "token" => "9ae1d130-8c89-4c3b-a267-0e97b88fedd0",
  "payment_method_id" => 41,
  "amount" => 10.00,
  "currency" => "ARS",
  "payment_type" => "single",
  "email" => "user@mail.com",
  "bank_id" => 1,
  "sub_payments" => 100,
  "invoice_expiration" => "191123"
);

$response = $connector->payment()->ExecutePaymentOffline($data);
```

[Volver a inicio](#decidir-sdk-php)

### Cobro Express

[](#cobro-express)

CampoDescripcionObligRestriccionesEjemplosite\_transaction\_idIdentificador único para la operaciónSI8 dígitossite\_transaction\_id: "170518\_35"tokenToken generado en el primer pasoSI36 dígitos,variabletoken: "03508514-1578-4140-ba02-6bdd65e2af95"payment\_method\_idid del tipo de metodo de Pago OfflineSIDos dígitospayment\_method\_id: "26"amountMonto de la operación. 6 números enteros y 2 decimalesSI8 dígitos,variableamount: "11.00"currencySon los días que existen entre el 1er y 2do vencimientoSI3 letrascurrency: "ARS"payment\_typeTipo de pagoSILetraspayment\_type: "single"emailemail del usuario que esta haciendo uso del sitioCondicionalSin validacionemail: "",invoice\_expirationFecha en que vence el cupónSIFormato AAMMDDinvoice\_expiration: "191123"second\_invoice\_expirationSegunda fecha de vencimiento del cupónSIFormato AAMMDDsecond\_invoice\_expiration: "191123"cod\_p3Son los dias que existen entre el 1º y 2º vencimiento de la factura.SI2,fijo ("00" si la factura tiene no tiene 2° vencimientos)invoice\_expiration: "191123"clientCodigo ClienteSI8,fijoclient: "12345678"surchargeRecargo por vencimiento del plazoSI7,variable (5 digitos enteros y 2 decimales)surcharge: "10.01"payment\_modeTipo de metodo de pagoSIStrin "offline"payment\_mode: "offline"#### Ejemplo

[](#ejemplo-5)

```
$data = array(
  "site_transaction_id" => "160518_42",
  "token" => "3df26771-67ab-4a8e-91e2-f1e0b0c559f7",
  "payment_method_id" => 51,
  "amount" => 10.00,
  "currency" => "ARS",
  "payment_type" => "single",
  "email" => "user@mail.com",
  "invoice_expiration" => "191123",
  "second_invoice_expiration" => "191123",
  "cod_p3" => "1",
  "cod_p4" => "134",
  "client" => "12345678",
  "surcharge" => 10.01,
  "payment_mode" => "offline"
);

$response = $connector->payment()->ExecutePaymentOffline($data);
```

[Volver a inicio](#decidir-sdk-php)

### Cobro Express

[](#cobro-express-1)

CampoDescripcionObligRestriccionesEjemplosite\_transaction\_idIdentificador único para la operaciónSI8 dígitossite\_transaction\_id: "170518\_35"tokenToken generado en el primer pasoSI36 dígitos,variabletoken: "03508514-1578-4140-ba02-6bdd65e2af95"payment\_method\_idid del tipo de metodo de Pago OfflineSIDos dígitospayment\_method\_id: "26"amountMonto de la operación. 6 números enteros y 2 decimalesSI8 dígitos,variableamount: "11.00"currencySon los días que existen entre el 1er y 2do vencimientoSI3 letrascurrency: "ARS"payment\_typeTipo de pagoSILetraspayment\_type: "single"emailemail del usuario que esta haciendo uso del sitioCondicionalSin validacionemail: "",invoice\_expirationFecha en que vence el cupónSIFormato AAMMDDinvoice\_expiration: "191123"second\_invoice\_expirationSegunda fecha de vencimiento del cupónSIFormato AAMMDDsecond\_invoice\_expiration: "191123"cod\_p3Son los dias que existen entre el 1º y 2º vencimiento de la factura.SI2,fijo ("00" si la factura tiene no tiene 2° vencimientos)invoice\_expiration: "191123"cod\_p4Días después del 1º vencimiento y hasta que el cliente pueda abonarSI3,fijocod\_p4: "123"clientCodigo ClienteSI8,fijoclient: "12345678"surchargeRecargo por vencimiento del plazoSI7,variable (5 digitos enteros y 2 decimales)surcharge: "10.01"payment\_modeTipo de metodo de pagoSIStrin "offline"payment\_mode: "offline"#### Ejemplo

[](#ejemplo-6)

```
$data = array(
  "site_transaction_id" => "160518_42",
  "token" => "3df26771-67ab-4a8e-91e2-f1e0b0c559f7",
  "payment_method_id" => 51,
  "amount" => 10.00,
  "currency" => "ARS",
  "payment_type" => "single",
  "email" => "user@mail.com",
  "invoice_expiration" => "191123",
  "second_invoice_expiration" => "191123",
  "cod_p3" => "1",
  "cod_p4" => "134",
  "client" => "12345678",
  "surcharge" => 10.01,
  "payment_mode" => "offline"
);

$response = $connector->payment()->ExecutePaymentOffline($data);
```

[Volver a inicio](#decidir-sdk-php)

### Listado de Pagos

[](#listado-de-pagos)

Mediante este recurso, se genera una solicitud de listado de pagos. Este recurso admite la posibilidad de agregar los filtros adicionales:

- (opcional) offset: desplazamiento en los resultados devueltos. Valor por defecto = 0.
- (opcional) pageSize: cantidad máxima de resultados retornados. Valor por defecto = 50.
- (opcional) siteOperationId: ID único de la transacción a nivel comercio (equivalente al site\_transaction\_id).
- (opcional) merchantId: ID Site del comercio.

```
$connector = new \Decidir\Connector($keys_data, $ambient);

$data = array("pageSize" => 5);
$response = $connector->payment()->PaymentList($data);
$response->getLimit();
$response->getOffset();
$response->getResults();
$response->getHas_more();
```

[Volver a inicio](#decidir-sdk-php)

### Información de un Pago

[](#información-de-un-pago)

Mediante este recurso, se genera una solicitud de información de un pago previamente realizado, pasando como parámetro el id del pago.

```
$connector = new \Decidir\Connector($keys_data, $ambient);

$data = array();

$response = $connector->payment()->PaymentInfo($data, '574421');
$response->getId();
$response->getSiteTransaction_id();
$response->getToken();
$response->getUser_id();
$response->getPayment_method_id();
$response->getCard_brand();
$response->getBin();
$response->getAmount();
$response->getCurrency();
$response->getInstallments();
$response->getPayment_type();
$response->getSub_payments();
$response->getStatus();
$response->getStatus_details();
$response->getDate();
$response->getEstablishment_name();
$response->getFraud_detection();
$response->getAggregate_data();
$response->getSite_id();
```

#### Información adicional de tarjeta

[](#información-adicional-de-tarjeta)

Agregando la opcion "card\_data" se puede obtener información adicional de la tarjera utilizada para el pago.

```
$data = array();
$query = array("expand"=>"card_data");

$response = $connector->payment()->PaymentInfo($data, '873836', $query);
$response->getCard_data()
```

#### Respuesta

[](#respuesta)

```
Array (
	[card_number] => 450799XXXXXX4905
	[card_holder] => Array (
		[identification] => Array (
		[type] => dni
		[number] => 27859328
	)
	[name] => Tarjeta Visa
	)
)
```

[Volver a inicio](#decidir-sdk-php)

### Anulación / Devolución Total de Pago

[](#anulación--devolución-total-de-pago)

Mediante este recurso, se genera una solicitud de anulación / devolución total de un pago puntual, pasando como parámetro el id del pago.

```
$data = array();
$response = $connector->payment()->Refund($data, '574671'); //574671 es el id de la operacion de compra
$response->getId();
$response->getAmount();
$response->getSub_payments();
$response->getStatus();
```

[Volver a inicio](#decidir-sdk-php)

### Anulación de Devolución Total

[](#anulación-de-devolución-total)

Mediante este recurso, se genera una solicitud de anulación de devolución total de un pago puntual, pasando como parámetro el id del pago y el id de la devolución.

```
$data = array();
$response = $connector->payment()->deleteRefund($data, '574671', '164'); //574671 id de la operacion de compra, 164 id de la devolucion
$response->getResponse();
$response->getStatus();
```

[Volver a inicio](#decidir-sdk-php)

### Devolución Parcial de un Pago

[](#devolución-parcial-de-un-pago)

Mediante este recurso, se genera una solicitud de devolución parcial de un pago puntual, pasando como parámetro el id del pago y el monto de la devolución.

CampoDescripcionObligRestriccionesEjemploamountimporte del pago a devolverNOAntes del cierre, si se completa el campo por un monto menor al de la compra se toma como devolucion parcial; si se ingresa el monto total o no se envia dicho campo se toma como anulacion.1000```
$data = array(
	"amount" => 1.00
	);
$response = $connector->payment()->partialRefund($data,'574673'); //574671 id de la operacion de compra
$response->getId();
$response->getAmount();
$response->getSub_payments();
$response->getStatus();
```

[Volver a inicio](#decidir-sdk-php)

### Anulación de Devolución Parcial

[](#anulación-de-devolución-parcial)

Mediante este recurso, se genera una solicitud de anulación de devolución parcial de un pago puntual, pasando como parámetro el id del pago y el id de la devolución.

```
$data = array();
$response = $connector->payment()->deleteRefund($data, '574671', '164'); //574671 id de la operacion de compra, 164 id de la devolucion parcial
$response->getResponse());
$response->getStatus());
```

Tokenizacion de tarjetas de crédito
-----------------------------------

[](#tokenizacion-de-tarjetas-de-crédito)

Esta funcionalidad permite que luego de realizar una compra con una tarjeta, se genere un token alfanumerico unico en el backend de Decidir, esto permite que a la hora de comprar nuevamente con esta tarjeta solo requerira el token de la tarjeta y el codigo de seguridad. Como primer paso se debe realizar una un pago normal, el token generado estara en el campo "token" de la respuesta.

### Listado de tarjetas tokenizadas

[](#listado-de-tarjetas-tokenizadas)

Este metodo permite conocer el listado de tarjetas tokenizadas que posee un usuario determinado. Esto requerira el nombre de usuario (user\_id) al momento de llamar al metodo tokensList.

```
$data = array();
$response = $connector->token()->tokensList($data, 'prueba'); //prueba, es el usuario dueño de la tarjeta de credito
var_dump($response);
var_dump($response->getTokens());
```

[Volver a inicio](#listadotarjetastokenizadas)

### Ejecucion de pago tokenizado

[](#ejecucion-de-pago-tokenizado)

Una vez que se obtiene el token a partir de la tarjeta tokenizada, se deberá ejecutar la solicitud de pago. Además del token de pago y los parámetros propios de la transacción, el comercio deberá identificar la compra con el "site\_transaction\_id" y "user\_id".

```
$connector = new \Decidir\Connector($keys_data, $ambient);

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "pepe",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 10.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

$response = $connector->payment()->ExecutePayment($data);
$response->getId();
$response->getToken();
$response->getUser_id();
$response->getPayment_method_id();
$response->getBin();
$response->getAmount();
$response->getCurrency();
$response->getInstallments();
$response->getPayment_type();
$response->getDate_due();
$response->getSub_payments();
$response->getStatus();
$response->getStatus_details();
$response->getDate();
$response->getEstablishment_name();
$response->getFraud_detection();
$response->getAggregate_data();
$response->getSite_id();
```

[Volver a inicio](#pagotokenizado)

### Eliminacion de tarjeta tokenizada

[](#eliminacion-de-tarjeta-tokenizada)

El servicio da la posibilidad de eliminar un token de tarjeta generada, esto se logra instanciando token y utilizando el metodo tokenDelete() y enviando la tarjeta tokenizada.

```
$data = array();
$response = $connector->token()->tokenDelete($data, 'af49025a-f1b7-4363-a1cb-1ed38c3d4d75');
```

[Volver a inicio](#eliminartarjetatokenizada)

### Integración con Cybersource

[](#integración-con-cybersource)

Para utilizar el Servicio de Control de Fraude Cybersource, en la ejecución del pago, deben enviarse datos adicionales sobre la operación de compra que se quiere realizar. Se han definido cinco verticales de negocio que requieren parámetros específicos, así como también parámetros comunes a todas las verticales.

[Volver al inicio](#cybersource)

#### Retail

[](#retail)

Los siguientes parámetros se deben enviar específicamente para la vertical Retail. Además se deben enviar datos específicos de cada producto involucrado en la transacción.

Descripcion (Data set)API FieldsRequired/OptionalData TypeOrigen del datoCampo referente en ApiRestComentariosfraud\_detectionsend\_to\_cs(Boolean)RequiredBooleanMDD40 - Fraud Update"send\_to\_cs": true/falsefraud\_detectionChannel(String)RequiredStringMDD6 - Sales Channel"channel": "Web"billTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrabillTocountry(string)RequiredString (2)Payments"country": "AR","[Código ISO](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)billTocustomerID(string)RequiredString (50)Payments"customer\_id": "leilaid","Identificador del usuario unico logueado al portal (No puede ser una direccion de email)billToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorbillTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTolastName(string)RequiredString (60)Payments"last\_name": "leila","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1548866329","Número de telefonobillTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalbillTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)billTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041","Calle Numero interior Numero ExteriorbillTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041","BarrioshipTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrashipTocountry(string)RequiredString (2)Payments"country": "AR","\[Código ISO\] ([http://apps.cybersource.com/library/documentation/sbc/quickref/countries\_alpha\_list.pdf](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf) )shipToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorshipTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosshipTolastName(string)RequiredString (60)Payments"last\_name": "sosa","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosshipTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1549066329","Número de telefonoshipTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalshipTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)shipTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041"Calle Numero interior Numero Exterior / Para los casos que no son de envío a domicilio, jamás enviar la dirección propia del comercio o correo donde se retire la mercadería, en ese caso replicar los datos de facturación.shipTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041"BarriopurchaseTotalscurrency(string)RequiredString (5)Payments"currency": "ARS"purchaseTotalsgrandTotalAmount(amount)RequiredDecimal (15)Payments"amount": 2000"Cantidad total de la transaccion./"999999.CC" Con decimales obligatorios, usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."customer\_in\_site (General for all Verticals)MDD7- Fecha Registro Comprador (num Dias)OptionalString (255)Payments"days\_in\_site": 243,"Numero de dias que tiene registrado un cliente en el portal del comercio.customer\_in\_site (General for all Verticals)MDD8- Usuario Guest? (S/N)OptionalString (255)Payments"is\_guest": false,"Valor Boleano para indicar si el usuario esta comprando como invitado en la pagina del comercio. Valores posibles (S/N)customer\_in\_site (General for all Verticals)MDD9- Customer password HashOptionalString (255)Payments"password": "abracadabra","Valor del password del usuario registrado en el portal del comercio. Incluir el valor en hashcustomer\_in\_site (General for all Verticals)MDD10- Historico de compras del comprador (Num transacciones)OptionalString (255)Payments"num\_of\_transactions": 1,"Conteo de transacciones realizadas por el mismo usuario registrado en el portal del comerciocustomer\_in\_site (General for all Verticals)MDD11- Customer Cell PhoneOptionalString (255)Payments"cellphone\_number": "12121"Incluir numero de telefono adicional del compradorcustomer\_in\_site (General for all Verticals)MDD39 - Visa ValidationOptionalString (255)Payments"street": "Av. Corrientes 1234"Incluir Domicilio de clientecampos Adicionales Vertical RetailMDD12- Shipping DeadLine (Num Dias)OptionalString (255)Payments"days\_to\_delivery": "55","Numero de dias que tiene el comercio para hacer la entregacampos Adicionales Vertical RetailMDD13- Metodo de DespachoOptional (Catalogo)String (255)Payments"dispatch\_method": "storepickup","Valores ejemplo: (domicilio, click and collect, carrier) Es recomendable que el API de decidir fije opciones seleccionables y no sean de captura libre para el comercio.campos Adicionales Vertical RetailMDD14- Customer requires Tax Bill ?OptionalString (255)Payments"tax\_voucher\_required": true,"Valor booleano para identificar si el cliente requiere un comprobante fiscal o no S / Ncampos Adicionales Vertical RetailMDD15- Customer Loyality NumberOptionalString (255)Payments"customer\_loyality\_number": "123232","Incluir numero de cliente frecuentecampos Adicionales Vertical RetailMDD16- Promotional / Coupon CodeOptionalString (255)Payments"coupon\_code": "cupon22","Incluir numero de cupon de descuentoitemproductCode(string)ConditionalString (255)Payments"code": "popblacksabbat2016","adult\_content , coupon, gift\_certificate , handling\_only , shipping\_and\_handling , shipping\_only, electronics, Apparel, Housewares, Sports, Toys, Books, Music, Video, Drugs/HBAitemproductDescription(string)ConditionalString (255)Payments"description": "Popular Black Sabbath 2016","Descripcion general del productoitemproductName(string)ConditionalString (255)Payments"name": "popblacksabbat2016ss","Nombre en catalogo del productoitemproductSKU(string)ConditionalString (255)Payments"sku": "asas","SKU en catalogoitemquantity(integer)ConditionalInteger (10)Payments"total\_amount": 20,"Cantidad productos del mismo tipo agregados al carritoitemtotalAmount(amount)ConditionalPayments"quantity": 1,""Precio total = Precio unitario \* quantity / CSITTOTALAMOUNT = CSITUNITPRICE \* CSITQUANTITY "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."itemunitPrice(amount)ConditionalString (15)Payments"unit\_price": 20""Precio Unitaro del producto / "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."#### Ejemplo

[](#ejemplo-7)

```
  $cs_data = array(
        "send_to_cs" => true,
        "channel" => "Web",
        "bill_to" => array(
          "city" => "Buenos Aires",
          "country" => "AR",
          "customer_id" => "martinid",
          "email" => "accept@decidir.com.ar",
          "first_name" => "martin",
          "last_name" => "perez",
          "phone_number" => "1547766111",
          "postal_code" => "1768",
          "state" => "BA",
          "street1" => "GARCIA DEL RIO 3333",
          "street2" => "GARCIA DEL RIO 3333",
        ),
        "ship_to" => array(
          "city" => "Buenos Aires",
          "country" => "AR",
          "customer_id" => "martinid",
          "email" => "accept@decidir.com.ar",
          "first_name" => "martin",
          "last_name" => "perez",
          "phone_number" => "1547766111",
          "postal_code" => "1768",
          "state" => "BA",
          "street1" => "GARCIA DEL RIO 3333",
          "street2" => "GARCIA DEL RIO 3333",
        ),
        "currency" => "ARS",
        "amount" => 12.00,
        "days_in_site" => 243,
        "is_guest" => false,
        "password" => "password",
        "num_of_transactions" => 1,
        "cellphone_number" => "12121",
        "date_of_birth" => "129412",
        "street" => "RIO 4041",
        "days_to_delivery" => "55",
        "dispatch_method" => "storepickup",
        "tax_voucher_required" => true,
        "customer_loyality_number" => "123232",
        "coupon_code" => "cupon22",
        "csmdd17" => "17"
      );

  //Datos de productos, array con los diferentes productos involucrados.
  $cs_products = array(
        array(
          "csitproductcode" => "electronic_product", //Código de producto. MANDATORIO.
          "csitproductdescription" => "NOTEBOOK L845 SP4304LA DF TOSHIBA", //Descripción del producto. MANDATORIO.
          "csitproductname" => "NOTEBOOK L845 SP4304LA DF TOSHIBA",  //Nombre del producto. MANDATORIO.
          "csitproductsku" => "LEVJNSL36GN", //Código identificador del producto. MANDATORIO.
          "csittotalamount" => 6.00, //MANDATORIO
          "csitquantity" => 1,//Cantidad del producto. MANDATORIO.
          "csitunitprice" => 6.00 //Formato Idem CSITTOTALAMOUNT. MANDATORIO
          ),
        array(
          "csitproductcode" => "default", //Código de producto. MANDATORIO.
          "csitproductdescription" => "PENDRIVE 2GB KINGSTON", //Descripción del producto. MANDATORIO.
          "csitproductname" => "PENDRIVE 2GB", //Nombre del producto. MANDATORIO.
          "csitproductsku" => "KSPDRV2g", //Código identificador del producto. MANDATORIO.
          "csittotalamount" => 6.00, //MANDATORIO
          "csitquantity" => 1, //Cantidad del producto. MANDATORIO.
          "csitunitprice" => 6.00 //Formato Idem CSITTOTALAMOUNT. MANDATORIO
        )
      );

```

Para incorporar estos datos en el requerimiento inicial, se debe instanciar un objeto de la clase Decidir\\Data\\Cybersource\\Retail de la siguiente manera.

```
$cybersource = new Decidir\Cybersource\Retail(
                    $datos_cs,  // Datos de la operación
                    $cs_productos, // Datos de los productos
  );

$connector->payment()->setCybersource($cybersource->getData());

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "usuario",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 12.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

    $response = $connector->payment()->ExecutePayment($data);
```

[Volver al inicio](#decidir-sdk-php)

#### Ticketing

[](#ticketing)

Los siguientes parámetros se deben enviar específicamente para la vertical Ticketing. Además se deben enviar datos específicos de cada producto involucrado en la transacción.

Descripcion (Data set)API FieldsRequired/OptionalData TypeOrigen del datoCampo referente en ApiRestComentariosfraud\_detectionsend\_to\_cs(Boolean)RequiredBooleanMDD40 - Fraud Update"send\_to\_cs": true/falsefraud\_detectionChannel(String)RequiredStringMDD6 - Sales Channel"channel": "Web"billTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrabillTocountry(string)RequiredString (2)Payments"country": "AR","[Código ISO](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)billTocustomerID(string)RequiredString (50)Payments"customer\_id": "leilaid","Identificador del usuario unico logueado al portal (No puede ser una direccion de email)billToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorbillTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTolastName(string)RequiredString (60)Payments"last\_name": "leila","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1548866329","Número de telefonobillTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalbillTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)billTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041","Calle Numero interior Numero ExteriorbillTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041","BarriopurchaseTotalscurrency(string)RequiredString (5)Payments"currency": "ARS"purchaseTotalsgrandTotalAmount(amount)RequiredDecimal (15)Payments"amount": 2000"Cantidad total de la transaccion./"999999.CC" Con decimales obligatorios, usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."customer\_in\_site (General for all Verticals)MDD7- Fecha Registro Comprador (num Dias)OptionalString (255)Payments"days\_in\_site": 243,"Numero de dias que tiene registrado un cliente en el portal del comercio.customer\_in\_site (General for all Verticals)MDD8- Usuario Guest? (S/N)OptionalString (255)Payments"is\_guest": false,"Valor Boleano para indicar si el usuario esta comprando como invitado en la pagina del comercio. Valores posibles (S/N)customer\_in\_site (General for all Verticals)MDD9- Customer password HashOptionalString (255)Payments"password": "abracadabra","Valor del password del usuario registrado en el portal del comercio. Incluir el valor en hashcustomer\_in\_site (General for all Verticals)MDD10- Historico de compras del comprador (Num transacciones)OptionalString (255)Payments"num\_of\_transactions": 1,"Conteo de transacciones realizadas por el mismo usuario registrado en el portal del comerciocustomer\_in\_site (General for all Verticals)MDD11- Customer Cell PhoneOptionalString (255)Payments"cellphone\_number": "12121"Incluir numero de telefono adicional del compradorcustomer\_in\_site (General for all Verticals)MDD39- Visa ValidationOptionalString (255)Payments"street": "Av. Corrientes 1234"Incluir Domicilio de clientecustomer\_in\_site (General for all Verticals)MDD10- TXs QuantityOptionalString (255)Payments"num\_of\_transactions": 1Incluir numero de transaccionticketing\_transaction\_dataMDD33 - Days to EventRequeridoIntegerPayments"days\_to\_event": 55Incluir dias para el eventoticketing\_transaction\_dataMDD34 - Delivery TypeRequeridoIntegerPayments"delivery\_type": "Pick Up"Incluir tipo de entregaitemproductCode(string)ConditionalString (255)Payments"code": "popblacksabbat2016","adult\_content , coupon, gift\_certificate , handling\_only , shipping\_and\_handling , shipping\_only, electronics, Apparel, Housewares, Sports, Toys, Books, Music, Video, Drugs/HBAitemproductDescription(string)ConditionalString (255)Payments"description": "Popular Black Sabbath 2016","Descripcion general del productoitemproductName(string)ConditionalString (255)Payments"name": "popblacksabbat2016ss","Nombre en catalogo del productoitemproductSKU(string)ConditionalString (255)Payments"sku": "asas","SKU en catalogoitemquantity(integer)ConditionalInteger (10)Payments"total\_amount": 20,"Cantidad productos del mismo tipo agregados al carritoitemtotalAmount(amount)ConditionalPayments"quantity": 1,""Precio total = Precio unitario \* quantity / CSITTOTALAMOUNT = CSITUNITPRICE \* CSITQUANTITY "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."itemunitPrice(amount)ConditionalString (15)Payments"unit\_price": 20""Precio Unitaro del producto / "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."#### Ejemplo

[](#ejemplo-8)

```

  $cs_data = array(
        "send_to_cs" => true,
        "channel" => "Web",
        "bill_to" => array(
          "city" => "Buenos Aires",
          "country" => "AR",
          "customer_id" => "martinid",
          "email" => "accept@decidir.com.ar",
          "first_name" => "martin",
          "last_name" => "perez",
          "phone_number" => "1547766111",
          "postal_code" => "1427",
          "state" => "BA",
          "street1" => "GARCIA DEL RIO 4000",
          "street2" => "GARCIA DEL RIO 4000",
        ),
        "currency" => "ARS",
        "amount" => 12.00,
        "days_in_site" => 243,
        "is_guest" => false,
        "password" => "abracadabra",
        "num_of_transactions" => 1,
        "cellphone_number" => "12121",
        "date_of_birth" => "129412",
        "street" => "RIO 4041",
        "delivery_type"=> "Pick up",
        "days_to_event"=> 55,
        "csmdd17" => "17"
      );

  //Datos de productos, array con los diferentes productos involucrados.
  $cs_products = array(
        array(
          "csitproductcode" => "concierto2016",
                  "csitproductdescription" => "Popular Concierto 2016",
                  "csitproductname" => "concierto2016",
                  "csitproductsku" => "BS01",
                  "csittotalamount" => 6.00,
                  "csitquantity" => 1,
                  "csitunitprice" => 6.00
          ),
        array(
          "csitproductcode" => "concierto2017",
                  "csitproductdescription" => "Popular Concierto 2017",
                  "csitproductname" => "concierto2017",
                  "csitproductsku" => "BS01",
                  "csittotalamount" => 6.00,
                  "csitquantity" => 1,
                  "csitunitprice" => 6.00
        )
      );

```

Para incorporar estos datos en el requerimiento inicial, se debe instanciar un objeto de la clase Decidir\\Data\\Cybersource\\Ticketing de la siguiente manera.

```
$cybersource = new Decidir\Cybersource\Ticketing(
                    $datos_cs,  // Datos de la operación
                    $cs_productos, // Datos de los productos
  );

$connector->payment()->setCybersource($cybersource->getData());

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "usuario",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 12.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

$response = $connector->payment()->ExecutePayment($data);
```

[Volver al inicio](#decidir-sdk-php)

#### Digital Goods

[](#digital-goods)

Los siguientes parámetros se deben enviar específicamente para la vertical Digital Goods. Además se deben enviar datos específicos de cada producto involucrado en la transacción.

Descripcion (Data set)API FieldsRequired/OptionalData TypeOrigen del datoCampo referente en ApiRestComentariosfraud\_detectionsend\_to\_cs(Boolean)RequiredBooleanMDD40 - Fraud Update"send\_to\_cs": true/falsefraud\_detectionChannel(String)RequiredStringMDD6 - Sales Channel"channel": "Web"billTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrabillTocountry(string)RequiredString (2)Payments"country": "AR","[Código ISO](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)billTocustomerID(string)RequiredString (50)Payments"customer\_id": "leilaid","Identificador del usuario unico logueado al portal (No puede ser una direccion de email)billToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorbillTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTolastName(string)RequiredString (60)Payments"last\_name": "leila","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1548866329","Número de telefonobillTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalbillTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)billTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041","Calle Numero interior Numero ExteriorbillTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041","BarriopurchaseTotalscurrency(string)RequiredString (5)Payments"currency": "ARS"purchaseTotalsgrandTotalAmount(amount)RequiredDecimal (15)Payments"amount": 2000"Cantidad total de la transaccion./"999999.CC" Con decimales obligatorios, usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."customer\_in\_site (General for all Verticals)MDD7- Fecha Registro Comprador (num Dias)OptionalString (255)Payments"days\_in\_site": 243,"Numero de dias que tiene registrado un cliente en el portal del comercio.customer\_in\_site (General for all Verticals)MDD8- Usuario Guest? (S/N)OptionalString (255)Payments"is\_guest": false,"Valor Boleano para indicar si el usuario esta comprando como invitado en la pagina del comercio. Valores posibles (S/N)customer\_in\_site (General for all Verticals)MDD9- Customer password HashOptionalString (255)Payments"password": "abracadabra","Valor del password del usuario registrado en el portal del comercio. Incluir el valor en hashcustomer\_in\_site (General for all Verticals)MDD10- Historico de compras del comprador (Num transacciones)OptionalString (255)Payments"num\_of\_transactions": 1,"Conteo de transacciones realizadas por el mismo usuario registrado en el portal del comerciocustomer\_in\_site (General for all Verticals)MDD11- Customer Cell PhoneOptionalString (255)Payments"cellphone\_number": "12121"Incluir numero de telefono adicional del compradorcustomer\_in\_site (General for all Verticals)MDD39- Visa ValidationOptionalString (255)Payments"street": "Av. Corrientes 1234"Incluir Domicilio de clientecustomer\_in\_site (General for all Verticals)MDD10- TXs QuantityOptionalString (255)Payments"num\_of\_transactions": 1Incluir numero de transacciondigital\_goods\_transaction\_dataMDD32 - Delivery TypeRequeridoIntegerPayments"delivery\_type": "Pick Up"Incluir tipo de entregaitemproductCode(string)ConditionalString (255)Payments"code": "popblacksabbat2016","adult\_content , coupon, gift\_certificate , handling\_only , shipping\_and\_handling , shipping\_only, electronics, Apparel, Housewares, Sports, Toys, Books, Music, Video, Drugs/HBAitemproductDescription(string)ConditionalString (255)Payments"description": "Popular Black Sabbath 2016","Descripcion general del productoitemproductName(string)ConditionalString (255)Payments"name": "popblacksabbat2016ss","Nombre en catalogo del productoitemproductSKU(string)ConditionalString (255)Payments"sku": "asas","SKU en catalogoitemquantity(integer)ConditionalInteger (10)Payments"total\_amount": 20,"Cantidad productos del mismo tipo agregados al carritoitemtotalAmount(amount)ConditionalPayments"quantity": 1,""Precio total = Precio unitario \* quantity / CSITTOTALAMOUNT = CSITUNITPRICE \* CSITQUANTITY "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."itemunitPrice(amount)ConditionalString (15)Payments"unit\_price": 20""Precio Unitaro del producto / "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."#### Ejemplo

[](#ejemplo-9)

```
$cs_data = array(
      "send_to_cs" => true,
      "channel" => "Web",
      "bill_to" => array(
        "city" => "Buenos Aires",
        "country" => "AR",
        "customer_id" => "martinid",
        "email" => "accept@decidir.com.ar",
        "first_name" => "martin",
        "last_name" => "perez",
        "phone_number" => "1547766111",
        "postal_code" => "1427",
        "state" => "BA",
        "street1" => "GARCIA DEL RIO 4000",
        "street2" => "GARCIA DEL RIO 4000",
      ),
      "currency" => "ARS",
      "amount" => 12.00,
      "days_in_site" => 243,
      "is_guest" => false,
      "password" => "abracadabra",
      "num_of_transactions" => 1,
      "cellphone_number" => "12121",
      "date_of_birth" => "129412",
      "street" => "RIO 4041",
      "delivery_type"=> "Pick up",
      "csmdd17" => "17"
    );

//lista de productos cybersource
$cs_products = array(
      array(
        "csitproductcode" => "software2016",
                "csitproductdescription" => "Software 2016",
                "csitproductname" => "soft2016",
                "csitproductsku" => "ST01",
                "csittotalamount" => 6.00,
                "csitquantity" => 1,
                "csitunitprice" => 6.00
      ),
      array(
        "csitproductcode" => "software2017",
                "csitproductdescription" => "Software 2017",
                "csitproductname" => "soft2017",
                "csitproductsku" => "ST01",
                "csittotalamount" => 6.00,
                "csitquantity" => 1,
                "csitunitprice" => 6.00
      )
    );

```

Para incorporar estos datos en el requerimiento inicial, se debe instanciar un objeto de la clase Decidir\\Data\\Cybersource\\DigitalGoods de la siguiente manera.

```
$cybersource = new Decidir\Cybersource\DigitalGoods(
                    $datos_cs,  // Datos de la operación
                    $cs_productos, // Datos de los productos
  );

$connector->payment()->setCybersource($cybersource->getData());

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "usuario",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 12.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

$response = $connector->payment()->ExecutePayment($data);
```

#### Services

[](#services)

Los siguientes parámetros se deben enviar específicamente para la vertical Digital Goods. Además se deben enviar datos específicos de cada producto involucrado en la transacción.

Descripcion (Data set)API FieldsRequired/OptionalData TypeOrigen del datoCampo referente en ApiRestComentariosfraud\_detectionsend\_to\_cs(Boolean)RequiredBooleanMDD40 - Fraud Update"send\_to\_cs": true/falsefraud\_detectionChannel(String)RequiredStringMDD6 - Sales Channel"channel": "Web"billTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrabillTocountry(string)RequiredString (2)Payments"country": "AR","[Código ISO](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)billTocustomerID(string)RequiredString (50)Payments"customer\_id": "leilaid","Identificador del usuario unico logueado al portal (No puede ser una direccion de email)billToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorbillTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTolastName(string)RequiredString (60)Payments"last\_name": "leila","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1548866329","Número de telefonobillTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalbillTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)billTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041","Calle Numero interior Numero ExteriorbillTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041","BarriopurchaseTotalscurrency(string)RequiredString (5)Payments"currency": "ARS"purchaseTotalsgrandTotalAmount(amount)RequiredDecimal (15)Payments"amount": 2000"Cantidad total de la transaccion./"999999.CC" Con decimales obligatorios, usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."customer\_in\_site (General for all Verticals)MDD7- Fecha Registro Comprador (num Dias)OptionalString (255)Payments"days\_in\_site": 243,"Numero de dias que tiene registrado un cliente en el portal del comercio.customer\_in\_site (General for all Verticals)MDD8- Usuario Guest? (S/N)OptionalString (255)Payments"is\_guest": false,"Valor Boleano para indicar si el usuario esta comprando como invitado en la pagina del comercio. Valores posibles (S/N)customer\_in\_site (General for all Verticals)MDD9- Customer password HashOptionalString (255)Payments"password": "abracadabra","Valor del password del usuario registrado en el portal del comercio. Incluir el valor en hashcustomer\_in\_site (General for all Verticals)MDD10- Historico de compras del comprador (Num transacciones)OptionalString (255)Payments"num\_of\_transactions": 1,"Conteo de transacciones realizadas por el mismo usuario registrado en el portal del comerciocustomer\_in\_site (General for all Verticals)MDD11- Customer Cell PhoneOptionalString (255)Payments"cellphone\_number": "12121"Incluir numero de telefono adicional del compradorcustomer\_in\_site (General for all Verticals)MDD39- Visa ValidationOptionalString (255)Payments"street": "Av. Corrientes 1234"Incluir Domicilio de clientecustomer\_in\_site (General for all Verticals)MDD10- TXs QuantityOptionalString (255)Payments"num\_of\_transactions": 1Incluir numero de transaccionservices\_transaction\_dataService TypeRequeridoString (255)"service\_type": "eltipodelservicio"Incluir el tipo de servicioservices\_transaction\_dataReference paymentRequeridoString (255)"reference\_payment\_service1": "reference1"Incluir una referencia de pagoservices\_transaction\_dataReference paymentRequeridoString (255)"reference\_payment\_service2": "reference1"Incluir una referencia de pagoservices\_transaction\_dataReference paymentRequeridoString (255)"reference\_payment\_service3": "reference1"Incluir una referencia de pagoitemproductCode(string)ConditionalString (255)Payments"code": "popblacksabbat2016","adult\_content , coupon, gift\_certificate , handling\_only , shipping\_and\_handling , shipping\_only, electronics, Apparel, Housewares, Sports, Toys, Books, Music, Video, Drugs/HBAitemproductDescription(string)ConditionalString (255)Payments"description": "Popular Black Sabbath 2016","Descripcion general del productoitemproductName(string)ConditionalString (255)Payments"name": "popblacksabbat2016ss","Nombre en catalogo del productoitemproductSKU(string)ConditionalString (255)Payments"sku": "asas","SKU en catalogoitemquantity(integer)ConditionalInteger (10)Payments"total\_amount": 20,"Cantidad productos del mismo tipo agregados al carritoitemtotalAmount(amount)ConditionalPayments"quantity": 1,""Precio total = Precio unitario \* quantity / CSITTOTALAMOUNT = CSITUNITPRICE \* CSITQUANTITY "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."itemunitPrice(amount)ConditionalString (15)Payments"unit\_price": 20""Precio Unitaro del producto / "999999.CC" Es mandatorio informar los decimales, usando el punto como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."#### Ejemplo

[](#ejemplo-10)

```
$cs_data = array(
    "send_to_cs" => true,
    "channel" => "Web",
    "bill_to" => array(
        "city" => "Buenos Aires",
        "country" => "AR",
        "customer_id" => "martinid",
        "email" => "accept@decidir.com.ar",
        "first_name" => "martin",
        "last_name" => "perez",
        "phone_number" => "1547766111",
        "postal_code" => "1768",
        "state" => "BA",
        "street1" => "GARCIA DEL RIO 3333",
        "street2" => "GARCIA DEL RIO 3333",
    ),
    "currency" => "ARS",
    "amount" => 12.00,
    "days_in_site" => 243,
    "is_guest" => false,
    "password" => "password",
    "num_of_transactions" => 1,
    "cellphone_number" => "12121",
    "date_of_birth" => "129412",
    "street" => "RIO 4041",
    "service_type" => "tiposervicio",
    "reference_payment_service1" => "reference1",
    "reference_payment_service2" => "reference2",
    "reference_payment_service3" => "reference3",
    "csmdd17" => "17"
);

//lista de productos cybersource
$cs_products = array(
    array(
        "csitproductcode" => "popblacksabbat2016",
        "csitproductdescription" => "Popular Black Sabbath 2016",
        "csitproductname" => "popblacksabbat2016ss",
        "csitproductsku" => "asas",
        "csittotalamount" => 6.00,
        "csitquantity" => 1,
        "csitunitprice" => 6.00
    ),
    array(
        "csitproductcode" => "popblacksabbat2017",
        "csitproductdescription" => "Popular Black Sabbath 2017",
        "csitproductname" => "popblacksabbat2017ss",
        "csitproductsku" => "asas",
        "csittotalamount" => 6.00,
        "csitquantity" => 1,
        "csitunitprice" => 6.00
    )
);
```

Para incorporar estos datos en el requerimiento inicial, se debe instanciar un objeto de la clase Decidir\\Data\\Cybersource\\Service de la siguiente manera.

```
$cybersource = new Decidir\Cybersource\Service(
                    $datos_cs,  // Datos de la operación
                    $cs_productos, // Datos de los productos
  );

$connector->payment()->setCybersource($cybersource->getData());

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "usuario",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 12.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

$response = $connector->payment()->ExecutePayment($data);
```

#### Travel

[](#travel)

Los siguientes parámetros se deben enviar específicamente para la vertical Travel. Además se deben enviar datos específicos de cada pasajero involucrado en la transacción.

Descripcion (Data set)API FieldsRequired/OptionalData TypeOrigen del datoCampo referente en ApiRestComentariosfraud\_detectionsend\_to\_cs(Boolean)RequiredBooleanMDD40 - Fraud Update"send\_to\_cs": true/falsefraud\_detectionChannel(String)RequiredStringMDD6 - Sales Channel"channel": "Web"billTocity(string)RequiredString (50)Payments"city": "Buenos Aires","Ciudad / Debe comenzar con una letrabillTocountry(string)RequiredString (2)Payments"country": "AR","[Código ISO](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)billTocustomerID(string)RequiredString (50)Payments"customer\_id": "leilaid","Identificador del usuario unico logueado al portal (No puede ser una direccion de email)billToemail(string)RequiredString (100)Payments"email": "","correo electronico del compradorbillTofirstName(string)RequiredString (60)Payments"first\_name": "leila","Nombre del tarjeta habiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTolastName(string)RequiredString (60)Payments"last\_name": "leila","Apellido del tarjetahabiente / Sin caracteres especiales como acentos invertidos, sólo letras, números y espaciosbillTophoneNumber(string)RequiredString (15)Payments"phone\_number": "1548866329","Número de telefonobillTopostalCode(string)RequiredString (10)Payments"postal\_code": "1427","Codigo PostalbillTostate(string)RequiredString (2)Payments"state": "BA","Estado (Si el country = US, el campo se valida para un estado valido en USA)billTostreet1(string)RequiredString (60)Payments"street1": "LAVALLE 4041","Calle Numero interior Numero ExteriorbillTostreet2(string)OptionalString (60)Payments"street2": "LAVALLE 4041","BarriopurchaseTotalscurrency(string)RequiredString (5)Payments"currency": "ARS"purchaseTotalsgrandTotalAmount(amount)RequiredDecimal (15)Payments"amount": 2000"Cantidad total de la transaccion./"999999.CC" Con decimales obligatorios, usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales."customer\_in\_site (General for all Verticals)MDD7- Fecha Registro Comprador (num Dias)OptionalString (255)Payments"days\_in\_site": 243,"Numero de dias que tiene registrado un cliente en el portal del comercio.customer\_in\_site (General for all Verticals)MDD8- Usuario Guest? (S/N)OptionalString (255)Payments"is\_guest": false,"Valor Boleano para indicar si el usuario esta comprando como invitado en la pagina del comercio. Valores posibles (S/N)customer\_in\_site (General for all Verticals)MDD9- Customer password HashOptionalString (255)Payments"password": "abracadabra","Valor del password del usuario registrado en el portal del comercio. Incluir el valor en hashcustomer\_in\_site (General for all Verticals)MDD10- Historico de compras del comprador (Num transacciones)OptionalString (255)Payments"num\_of\_transactions": 1,"Conteo de transacciones realizadas por el mismo usuario registrado en el portal del comerciocustomer\_in\_site (General for all Verticals)MDD11- Customer Cell PhoneOptionalString (255)Payments"cellphone\_number": "12121"Incluir numero de telefono adicional del compradorcustomer\_in\_site (General for all Verticals)MDD39- Visa ValidationOptionalString (255)Payments"street": "Av. Corrientes 1234"Incluir Domicilio de clientecustomer\_in\_site (General for all Verticals)MDD10- TXs QuantityOptionalString (255)Payments"num\_of\_transactions": 1Incluir numero de transacciontravel\_transaction\_datareservation\_codeRequeridoString (255)"reservation\_code": "GJH784"Incluir el codigo de serviciotravel\_transaction\_datathird\_party\_bookingRequeridoString (255)"third\_party\_booking": falseIncluir "true" si es booking por tercerostravel\_transaction\_datadeparture\_cityRequeridoString (255)"departure\_city": "EZE"Incluir codigo de ciudad de salidatravel\_transaction\_datafinal\_destination\_cityRequeridoString (255)"final\_destination\_city": "HND"Incluir codigo de ciudad de llegadatravel\_transaction\_datainternational\_flightRequeridoString (255)"international\_flight": falseIncluir "true" si es vuelo internacionaltravel\_transaction\_datafrequent\_flier\_numberRequeridoString (255)"frequent\_flier\_number": "00000123"Incluir el numero de viajero frecuentetravel\_transaction\_dataclass\_of\_serviceRequeridoString (255)"class\_of\_service": "class"Incluir la clase de serviciotravel\_transaction\_dataday\_of\_week\_of\_flightRequeridoString (255)"day\_of\_week\_of\_flight": 2Incluir el día de la semana de vuelotravel\_transaction\_dataweek\_of\_year\_of\_flightRequeridoString (255)"week\_of\_year\_of\_flight": 5Incluir la semana del año de vuelotravel\_transaction\_dataairline\_codeRequeridoString (255)"airline\_code": "AA"Incluir el código de la aerolíneatravel\_transaction\_datacode\_shareRequeridoString (255)"code\_share": "SKYTEAM"Incluir el código de compartidotravel\_transaction\_datacode\_shareRequeridoString (255)"code\_share": "SKYTEAM"Incluir el código de compartidotravel\_transaction\_data decision\_manager\_travelcomplete\_routeRequeridoString (255)"complete\_route": "EZE-LAX:LAX-HND"Incluir código de ruta completatravel\_transaction\_data decision\_manager\_traveljourney\_typeRequeridoString (255)"journey\_type": "one way"Incluir tipo de viajetravel\_transaction\_data decision\_manager\_traveldeparture\_date departure\_timeRequeridoString (255)"departure\_time": "2017-05-30T09:00Z"Incluir el tiempo de partidatravel\_transaction\_data decision\_manager\_traveldeparture\_date departure\_zoneRequeridoString (255)"departure\_zone": "2017-05-30T09:00Z"Incluir la zona de partidapassengersemail(string)ConditionalString (255)Payments"email": ""Email del pasajeropassengersfirst\_name(string)ConditionalString (255)Payments"first\_name": "Juan"Primer nombre del pasajeropassengerslast\_name(string)ConditionalString (255)Payments"last\_name": "Perez"Apellido del pasajeropassengerspassport\_id(string)ConditionalString (255)Payments"passport\_id": "412314851231"Id del pasaporte del pasajeropassengersphone(string)ConditionalString (255)Payments"phone": "541134356768"Teléfono del pasajeropassengerspassenger\_status(string)ConditionalString (255)Payments"passenger\_status": "gold"Status del pasajeropassengerspassenger\_type(string)ConditionalString (255)Payments"passenger\_type": "ADT"Tipo de pasajero#### Ejemplo

[](#ejemplo-11)

```
$cs_data = array(
    "send_to_cs" => true,
    "channel" => "Web",
    "bill_to" => array(
        "city" => "Buenos Aires",
        "country" => "AR",
        "customer_id" => "martinid",
        "email" => "accept@decidir.com.ar",
        "first_name" => "martin",
        "last_name" => "perez",
        "phone_number" => "1547766111",
        "postal_code" => "1768",
        "state" => "BA",
        "street1" => "GARCIA DEL RIO 3333",
        "street2" => "GARCIA DEL RIO 3333",
    ),
    "currency" => "ARS",
    "amount" => 12.00,
    "days_in_site" => 243,
    "is_guest" => false,
    "password" => "password",
    "num_of_transactions" => 1,
    "cellphone_number" => "12121",
    "date_of_birth" => "129412",
    "street" => "RIO 4041",
    "reservation_code" => "GJH784",
    "third_party_booking" => false,
    "departure_city" => "EZE",
    "final_destination_city" => "HND",
    "international_flight" => true,
    "frequent_flier_number" => "00000123",
    "class_of_service" => "class",
    "day_of_week_of_flight" => 2,
    "week_of_year_of_flight" => 5,
    "airline_code" => "AA",
    "code_share" => "SKYTEAM",
    "decision_manager_travel" => array(
            "complete_route" => "EZE-LAX:LAX-HND",
            "journey_type" => "one way",
            "departure_date" => array(
                    "departure_time" =>  "2017-05-30T09:00Z",
                    "departure_zone "=> "GMT-0300"
            )
    ),
    "airline_number_of_passengers" => 1
);

$cs_passenger = array(
    array(
        "email" => "juan@mail.com",
        "first_name" => "Juan",
        "last_name" => "Perez",
        "passport_id" => "412314851231",
        "phone" => "541134356768",
        "passenger_status" => "gol",
        "passenger_type" => "ADT"
    )
);
```

Para incorporar estos datos en el requerimiento inicial, se debe instanciar un objeto de la clase Decidir\\Data\\Cybersource\\Travel de la siguiente manera.

```
$cybersource = new Decidir\Cybersource\Travel(
                    $datos_cs,  // Datos de la operación
                    $cs_passenger, // Datos de los pasajeros
  );

$connector->payment()->setCybersource($cybersource->getData());

$data = array(
      "site_transaction_id" => "12042017_20",
      "token" => "be211413-757b-487e-bb0c-283d21c0fb6f",
      "user_id" => "usuario",
      "payment_method_id" => 1,
      "bin" => "450799",
      "amount" => 12.00,
      "currency" => "ARS",
      "installments" => 1,
      "description" => "",
      "payment_type" => "single",
      "sub_payments" => array()
    );

$response = $connector->payment()->ExecutePayment($data);
```

[Volver al inicio](#decidir-sdk-php)

Tablas de Referencia
--------------------

[](#tablas-de-referencia)

### Códigos de Medios de pago

[](#códigos-de-medios-de-pago)

MEDIO DE PAGONOMBRE1VISA8DINERS15MASTERCARD20MASTERCARD TEST23TARJETA SHOPPING24TARJETA NARANJA25PAGO FACIL26RAPIPAGO27CABAL29ITALCRED30ARGENCARD31VISA DEBITO134COOPEPLUS36ARCASH37NEXO38CREDIMAS39TARJETA NEVADA41PAGOMISCUENTAS42NATIVA43TARJETA MAS44TARJETA CARREFOUR45TARJETA PYMENACION46PAYSAFECARD47MONEDERO ONLINE48CAJA DE PAGOS50BBPS51COBRO EXPRESS52QIDA53LAPOS WEB TRAVEL54GRUPAR55PATAGONIA 36556TARJETA CLUD DIA59TARJETA TUYA60DISTRIBUTION61LA ANONIMA62CREDIGUIA63CABAL PRISMA64TARJETA SOL65AMEX MT66MC DEBIT67CABAL DEBITO (Cabal24)99MAESTRO1. Visa Debito no acepta devoluciones parciales en e-commerce.

[Volver al inicio](#decidir-sdk-php)

### Divisas Aceptadas

[](#divisas-aceptadas)

DivisaDescripciónCódigo APIAR$Pesos ArgentinosARSU$SDólares AmericanosUSD**NOTA** Si bien la API RESTful de DECIDIR admite compras en Dólares Americanos, la legislación argentina sólo permite transacciones en Pesos Argentinos. Es por esto que DECIDIR recomienda que todas las transacciones se cursen en dicha moneda.

[Volver al inicio](#decidir-sdk-php)

### Provincias

[](#provincias)

ProvinciaCódigoCABACBuenos AiresBCatamarcaKChacoHChubutUCórdobaXCorrientesWEntre RíosRFormosaPJujuyYLa PampaLLa RiojaFMendozaMMisionesNNeuquénQRío NegroRSaltaASan JuanJSan LuisDSanta CruzZSanta FeSSantiago del EsteroGTierra del FuegoVTucumánT[Volver al inicio](#decidir-sdk-php)

Erorres
-------

[](#erorres)

### Erorres de Sistema

[](#erorres-de-sistema)

Listado de [Códigos de Errores](https://decidir.api-docs.io/1.0/tablas-de-referencia-e-informacion-para-el-implementador/cs_answer_codes)

### Erorres de Marca

[](#erorres-de-marca)

Listado de [Códigos de Errores de Medios de Pago](https://decidir.api-docs.io/1.0/tablas-de-referencia-e-informacion-para-el-implementador/payment_method_error_code_ids)

[Volver al inicio](#decidir-sdk-php)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 62.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~175 days

Recently: every ~357 days

Total

11

Last Release

1480d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e99fef15e35330555a285163c2d4cf3c691defaa298dbfbe150584b0454f3ae5?d=identicon)[facundocapua](/maintainers/facundocapua)

---

Top Contributors

[![gshokida](https://avatars.githubusercontent.com/u/19551711?v=4)](https://github.com/gshokida "gshokida (5 commits)")[![facundocapua](https://avatars.githubusercontent.com/u/1374929?v=4)](https://github.com/facundocapua "facundocapua (2 commits)")[![mavalos89](https://avatars.githubusercontent.com/u/21197687?v=4)](https://github.com/mavalos89 "mavalos89 (1 commits)")

### Embed Badge

![Health badge](/badges/facundocapua-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/facundocapua-php-sdk/health.svg)](https://phpackages.com/packages/facundocapua-php-sdk)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
