Autorización Copy
POST https://sandbox.paguelofacil.com/rest/processTx/AUTH
Autorización
Paguelofacil ofrece la posibilidad de realizar una autorización antes de generar una captura. La autorización se puede ver como una reserva de fondos en la tarjeta de tu comprador. Cuando realices una autorización todavía no se le generará un cobro a tu cliente en su tarjeta. Solo cuando se realice una captura el cliente verá el pago.
IMPORTANTE — PagueloFacil tiene credenciales para ambiente de pruebas y credenciales para ambiente de producción que permiten integrar los métodos de pago, no se deben confundir al momento de realizar las configuraciones, cada ambiente requiere de sus credenciales. El monto mínimo es de $ 1.00 y la moneda permitida es USD.
Servicio POST
/rest/processTx/{TRANSACCION_TYPE}
Autorizar una transacción
Para realizar una autorización solo debes realizar una petición con la solicitud de autorización y procesar la respuesta una vez la autorización sea procesada.
Descripción de parámetros
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
cclw | String Ej.: A7BFCAF7B6………. | Si | Este es el código web que recibe de parte de Paguelofacil y que identifica a su comercio |
amount | Numeric, Money Ej.: 10.00 – 1450.15 – 9.14 | Si | El monto o valor total de la transacción a realizar. NO PONER COMAS (,) o separador de miles. |
taxAmount | Numeric, Money Ej.: 10.00 – 1450.15 – 9.14 | Si | Declaras cuanto de ese monto es ITBMS NO PONER COMAS (,) o separador de miles. |
String MaxLength:100 | Si | Email del Tarjeta habiente | |
phone | Numeric MaxLength:16 | Si | Teléfono del Tarjeta habiente |
address | String MaxLength:100 | No | Dirección del la tarjeta |
concept | String MaxLength:100 | Si | Concepto de la transacción |
description | String MaxLength:150 | Si | Descripción de la transacción |
ipCheck | Ip (0.0.0.0) | No | Dirección Ip del Comprador, está información es analizada para fraude de la transacción |
additionalData | Arreglo de campos con formato (sessionKount) | No | Recibe el sessionIdobtenido a través de la Huella del dispositivo que permite calcular un mejor score de fraude. |
lang | String MaxLength:2 | No | Idioma de la transacción. Valores posibles: * EN para Inglés * ES para Español |
customFieldValues | Array de campos con formato: (id, label, value) | No | Información adicional de la transacción. Serán retornados cuando implementas el api de consulta de transacciones |
cardInformation | Arreglo de campos con formato: (cardNumber, expMonth, expYear, cvv, firstName, lastName, cardType) | Si | Información de la tarjeta de crédito del comprador. * cardNumber: Número de la tarjeta de crédito * expMonth: Mes en el que expira la tarjeta * expYear: Año en el que expira la tarjeta * cvv: código de seguridad * firstName: Nombre del cliente * lastName: Apellido del cliente * cardType: Tipo de tarjeta VISA o MASTERCARD |
Petición de Autorización
Realiza la petición de la autorización indicándonos en la URL que es una AUTH
.
PHP
//Ejemplo de AUTH
$urlConfig = [https://sandbox.paguelofacil.com/rest/processTx/AUTH
](https://sandbox.paguelofacil.com/rest/processTx/AUTH);
$cclw = 'D17B05A095489D1176560B4666A283454185F353F401D0201CC5C16F92535DF6B1DEBA18E79442CC0D6F75FD024207680AFBDFD6CF015478BF30CBEF9160A08D ';
$amount=3.50;//El monto o valor total de la transacción a realizar. NO PONER
$description='Nro-Order-523';//MaxLength:150 ;Es la descripción o el motivo de la transacción en proceso
$creditcard='4916000000000000';
$carType = 'VISA';
$creditcardmonth=12
;//Mes de expiración de la tarjeta, siempre 2 dígitos
$creditcardyear=32
;//Numeric Ej.:02 Año de expiración de la tarjeta.
$creditcard_cvc=003
;//Código de Seguridad de la tarjeta Numeric MaxLength:3
$name='alam';//String MaxLength:25 Nombre del tarjeta habiente
$lastname='brito';//String MaxLength:25 Apellido del Tarjeta habiente
$email='alambrito@correo.com';//String MaxLength:100 Email del
$address='testing new address';//String MaxLength:100 Dirección del Tarjeta
$phone='60201236';//Numeric MaxLength:16 Teléfono del Tarjeta habiente
$ip = '100.20.23.34'; //Ip del comprador
$data = array(
cclw
=> $cclw ,
amount
=> $amount,
taxAmount
=> 1.00,
email
=> $email,
phone
=> $phone,
address
=> $address,
concept
=> $description,
description
=> $description,
ipCheck
=> $ip,
lang
=> 'ES', //EN
additionalData
=> [sessionKount
: 123as777dfsdf898
],
customFieldValues
=> [[id
=>idOrder
,nameOrLabel
=>Nro de Orden
,value
=>OD-234567
],
[id
=>idUser
,nameOrLabel
=>User
,value
=>24
],
[id
=>idTx
,nameOrLabel
=>Txtx
,value
=>678643
],
[id
=>reference
,nameOrLabel
=>Referencia
,value
=>6754
],
[id
=>activo
,nameOrLabel
=>estado
,value
=>true
]],
cardInformation
=> array(
cardNumber
=> $creditcard,
expMonth
=> $creditcardmonth,
expYear
=> $creditcardyear,
cvv
=> $creditcard_cvc,
firstName
=> $name,
lastName
=> $lastname,
cardType
=> $carType,
),
);
$json=json_encode($data);
$ch = curlinit();
curlsetopt($ch,CURLOPTURL, $urlConfig);
curlsetopt($ch, CURLOPTPOST, true);
curlsetopt($ch,CURLOPTRETURNTRANSFER,true);
curlsetopt($ch, CURLOPTHTTPHEADER, array('Content-Type: application/json','authorization:WT5hTaUcpa4J3h4AmrZa2EXXJs8boUVa|DIRd852djHbq2j5Fca5VDUkDbExTBCVf'));
curlsetopt($ch,CURLOPT_POSTFIELDS,$json);
$result = curl_exec($ch);
echo
;
echo Respuesta de paguelo Facil
;
echo
;
$result = json_decode($result, true);
NODE
cconst axios = require(axios
);
const callAuth = async () => {
const payload = {
cclw: '004D3EF3780409D107C59C85664B800FA63FFE09247A7731B8464CCE837F3C2233F973F7308DB9A7069BD460BEC62C6E6054DD1F2DDF7F22067F857FB9E031AA ',
amount: 3.50,//El monto o valor total de la transacción a realizar. NO PONER
taxAmount: 1.0,
email: 'alambrito@correo.com',//String MaxLength:100 Email del
phone: '60201236',//Numeric MaxLength:16 Teléfono del Tarjeta habiente,
address: 'testing new address',//String MaxLength:100 Dirección del Tarjeta,
concept: 'Nro-Order-523',//MaxLength:150 ;Es la descripción o el motivo de la transacción en proceso
description: 'Nro-Order-523',//MaxLength:150 ;Es la descripción o el motivo de la transacción en proceso
cardInformation: {
cardNumber: '4916000000000000',
expMonth: 12
,//Mes de expiración de la tarjeta, siempre 2 dígitos
expYear: 32
,//Numeric Ej.:02 Año de expiración de la tarjeta.
cvv: 003
,//Código de Seguridad de la tarjeta Numeric MaxLength:3
firstName: 'alam',//String MaxLength:25 Nombre del tarjeta habiente
lastName: 'brito',//String MaxLength:25 Apellido del Tarjeta habiente
cardType: 'VISA'
}
};
const options = {
headers: {
authorization
: 'WT5hTaUcpa4J3h4AmrZa2EXXJs8boUVa|DIRd852djHbq2j5Fca5VDUkDbExTBCVf',
content-type
: 'application/json'
}
};
console.log(Start AUTH
);
await axios.post('https://secure.paguelofacil.com/rest/processTx/AUTH', payload, options)
.then((response) => {
console.log(Response Authorize Service:
);
console.log(response.data);
console.log(Business logic...
);
}).catch((error) => {
console.log(error);
}).then(() => {
console.log(End AUTH
);
});
};
Respuesta de Autorización
INFO — Al realizar la petición recibirás la respuesta en formato JSON. Debes obtener la variable Status
la cual si es recibida como 1
la transacción fue autorizada.
//Ejemplo de AUTH
{
headerStatus
:{
code
:200,
description
:Success
},
serverTime
:2019-04-15T07:01:50
,
message
:null,
data
:{
date
:2019-04-15T07:01:50
,
authStatus
:14
,
cardType
:VISA
,
type
:VISA
,
idtx
:691276,
cardToken
:04NABCDEFG0D4ZD3LR6
,
totalPay
:3.5
,
binInfo
:{
id
:0030ae56-d070-4b5a-869c-35df5909c3f3
,
risk_score
:99,
funds_remaining
:541.18499999999994543031789362430572509765625,
queries_remaining
:36079,
ip_address
:{
risk
:45,
city
:{
confidence
:20,
geoname_id
:4744870,
names
:{
en
:Ashburn
,
ru
:\\u0410\\u0448\\u0431\\u0435\\u0440\\u043d
}
},
continent
:{
code
:NA
,
geoname_id
:6255149,
names
:{
de
:Nordamerika
,
en
:North America
,
es
:Norteam\\u00e9rica
,
fr
:Am\\u00e9rique du Nord
,
ja
:\\u5317\\u30a2\\u30e1\\u30ea\\u30ab
,
pt-BR
:Am\\u00e9rica do Norte
,
ru
:\\u0421\\u0435\\u0432\\u0435\\u0440\\u043d\\u0430\\u044f \\u0410\\u043c\\u0435\\u0440\\u0438\\u043a\\u0430
,
zh-CN
:\\u5317\\u7f8e\\u6d32
}
},
country
:{
confidence
:99,
geoname_id
:6252001,
is_high_risk
:false,
iso_code
:US
,
names
:{
de
:USA
,
en
:United States
,
es
:Estados Unidos
,
fr
:\\u00c9tats-Unis
,
ja
:\\u30a2\\u30e1\\u30ea\\u30ab\\u5408\\u8846\\u56fd
,
pt-BR
:Estados Unidos
,
ru
:\\u0421\\u0428\\u0410
,
zh-CN
:\\u7f8e\\u56fd
}
},
location
:{
accuracy_radius
:1000,
latitude
:39.04809999999999803321770741604268550872802734375,
local_time
:2019-05-22T08:01:50-04:00
,
longitude
:-77.47280000000000654836185276508331298828125,
metro_code
:511,
time_zone
:America\\/New_York
},
postal
:{
code
:20149
,
confidence
:10
},
registered_country
:{
geoname_id
:6252001,
iso_code
:US
,
names
:{
de
:USA
,
en
:United States
,
es
:Estados Unidos
,
fr
:\\u00c9tats-Unis
,
ja
:\\u30a2\\u30e1\\u30ea\\u30ab\\u5408\\u8846\\u56fd
,
pt-BR
:Estados Unidos
,
ru
:\\u0421\\u0428\\u0410
,
zh-CN
:\\u7f8e\\u56fd
}
},
subdivisions
:[
{
confidence
:60,
geoname_id
:6254928,
iso_code
:VA
,
names
:{
en
:Virginia
,
fr
:Virginie
,
ja
:\\u30d0\\u30fc\\u30b8\\u30cb\\u30a2\\u5dde
,
pt-BR
:Virg\\u00ednia
,
ru
:\\u0412\\u0438\\u0440\\u0434\\u0436\\u0438\\u043d\\u0438\\u044f
,
zh-CN
:\\u5f17\\u5409\\u5c3c\\u4e9a\\u5dde
}
}
],
traits
:{
autonomous_system_number
:14618,
autonomous_system_organization
:Amazon.com, Inc.
,
domain
:amazonaws.com
,
ip_address
:100.24.233.128
,
isp
:Amazon.com
,
organization
:Amazon.com
,
user_type
:hosting
}
},
credit_card
:{
issuer
:{
name
:MBNA EUROPE BANK LTD.
,
phone_number
:08009174466
},
brand
:Visa
,
country
:GB
,
is_issued_in_billing_address_country
:false,
is_prepaid
:false,
type
:credit
},
email
:{
first_seen
:2019-04-24
,
is_free
:false,
is_high_risk
:false
},
billing_address
:{
latitude
:9,
longitude
:-80,
distance_to_ip_location
:3354,
is_in_ip_country
:false
},
disposition
:{
action
:manual_review
,
reason
:custom_rule
}
},
name
:alam brito
,
displayNum
:6988
,
operationType
:AUTH
,
returnUrl
:https:\\/\\/admin.paguelofacil.com\\/PF\\/#\\/default-receipt\\/AUTH-IV6LR0UYAY
,
requestPayAmount
:3.5,
email
:[alambrito@correo.com](mailto:alambrito@correo.com)
,
codOper
:AUTH-IV6LR0UAAA
,
status
:0, // 1 Autorizada, 0 no autorizada
messageSys
:CARD NO. ERROR
},
success
:true
}
Parámetros de respuesta
Nombre | Tipo | Formato | Descripción |
---|---|---|---|
headerStatus | JSON | Header Status, Indica el estado de la consulta | |
code | Integer | Código del estado de la respuesta | |
description | String | Descripción del estado de la respuesta | |
serverTime | Date as String | yyyy-MM-dd'T'HH:mm:ss | Current Server Time |
message | String | Mensaje de la respuesta | |
data | String | JSON | JsonArray |
date | DateTime | yyyy-MM-dd'T'HH:mm:ss | Fecha de la transacción |
authStatus | String | Estado de sesión de la transacción | |
cardType | String | VISA / MASTERCARD | Tipo de tarjeta usada para la transacción |
type | String | VISA / MASTERCARD | Proveedor de la tarjeta usada para la transacción |
idtx | Integer | Id identificador de la transacción | |
cardToken | String | Token generado de la transacción | |
totalPay | String | Monto total de la transacción | |
binInfo | JSON | Información del provvedor de la tarjeta (El retorno de estos datos puede variar según el proveedor) | |
name | String | Nombre del tarjetahabiente | |
displayNum | String | Últimos digitos de la tarjeta | |
operationType | String | Tipo de operación | |
returnUrl | String | La dirección URL de retorno | |
requestPayAmount | Numeric | Monto a pagar de la petición | |
String | Correo del cliente | ||
codOper | String | Código de operación de la transacción | |
status | Boolean | Indica si la transacción se procesó exitosamente o no | |
messageSys | Boolean | Indica el mensaje del sistema | |
success | Boolean | Retorna true si el headerStatus es SUCCESS |
Huella del dispositivo
En integraciones de este tipo PagueloFacil no puede recopilar datos de tu cliente, que son importantes para calcular nuestro Score de Fraude (Esto ayuda a saber si una transacción es un posible fraude). Si implementas el código que te presentamos a continuación, el Score de tus transacciones será más exacto.
Ejemplo, html
te sirve para obtener el sessionId que debes enviar en el servicio que estes implementando para realizar la transacciones (AUTH, Auth-Capt, Captura, Servidor a Servidor, Recurrentes).
Request Params
Key | Datatype | Required | Description |
---|---|---|---|
CTAX | null | ||
RETURN_URL | string | ||
PF_CF | null | ||
CARD_TYPE | null | ||
PARM_1 | number | ||
cclw | string | ||
amount | string | ||
description | string | ||
taxAmount | string | ||
email | string | ||
phone | number | ||
concept | string | ||
cardNumber | number | ||
expMonth | number | ||
expYear | number | ||
cvv | number | ||
firstName | string | ||
lastName | string | ||
cardType | string |
Request Body
{"cclw"=>"2413555b2fd551e5d7988bb335cc16cec4a73178a9edfd3b229bcce72e9ee22c67b907d9124ee59662f47e00f4956b00f95d25d401170713b0f2091a6e29d95e", "amount"=>10.0, "taxAmount"=>1.0, "email"=>"jorge@hotmail.com", "phone"=>"66336535", "concept"=>"test", "description"=>"test", "cardInformation"=>{"cardNumber"=>"4059310181757001", "expMonth"=>"12", "expYear"=>"23", "cvv"=>"123", "firstName"=>"jorge", "lastName"=>"gomez", "cardType"=>"VISA"}}
HEADERS
Key | Datatype | Required | Description |
---|---|---|---|
Authorization | string |
RESPONSES
status: OK
{"headerStatus":{"code":551,"description":"Error, Invalid Field"},"serverTime":"2022-03-23T11:25:20","message":"Invalid Fields [{\"entity\": \"ProcessAuth\", \"field\": \"cardInformation\", \"required\": true)], in the entity 'ProcessAuth'","requestId":null,"data":{},"success":false}