Patpass Rest
Patpass Comercio
Ambientes y credenciales
La API REST de Patpass está protegida para garantizar que solamente comercios autorizados por Transbank hagan uso de las operaciones disponibles. La seguridad esta implementada mediante los siguientes mecanismos:
- Canal seguro a través de TLSv1.2 para la comunicación del cliente con Webpay.
- Autenticación y autorización mediante el intercambio de headers
Commercecode
yAuthorization
.
Ambiente de Producción
Las URLs de endpoints de producción están alojados dentro de https://www.pagoautomaticocontarjetas.cl//.
// Host: https://www.pagoautomaticocontarjetas.cl/
// Host: https://www.pagoautomaticocontarjetas.cl/
// Host: https://www.pagoautomaticocontarjetas.cl/
# Host: https://www.pagoautomaticocontarjetas.cl/
# Host: https://www.pagoautomaticocontarjetas.cl/
Host: https://www.pagoautomaticocontarjetas.cl/
Ambiente de Integración
Las URLs de endpoints de integración están alojados dentro de https://pagoautomaticocontarjetasint.transbank.cl//.
Consulta la documentación para conocer las tarjetas de prueba que funcionan en el ambiente de integración.
// Host: https://pagoautomaticocontarjetasint.transbank.cl/
// Host: https://pagoautomaticocontarjetasint.transbank.cl/
// Host: https://pagoautomaticocontarjetasint.transbank.cl/
# Host: https://pagoautomaticocontarjetasint.transbank.cl/
# Host: https://pagoautomaticocontarjetasint.transbank.cl/
Host: https://pagoautomaticocontarjetasint.transbank.cl/
Credenciales del Comercio
// Commercecode: 28299257
// Authorization: cxxXQgGD9vrVe4M41FIt
// Commercecode: 28299257
// Authorization: cxxXQgGD9vrVe4M41FIt
// Commercecode: 28299257
// Authorization: cxxXQgGD9vrVe4M41FIt
# Commercecode: 28299257
# Authorization: cxxXQgGD9vrVe4M41FIt
# Commercecode: 28299257
# Authorization: cxxXQgGD9vrVe4M41FIt
Commercecode: 28299257
Authorization: cxxXQgGD9vrVe4M41FIt
Content-Type: application/json
Iniciar Inscripción
Para iniciar una inscripción debes llamar al método Inscription.start
Inscription.start()
Permite gatillar el inicio del proceso de inscripción. Los datos ingresados serán precargados en el formulario al momento de mostrarse.
// Versión 3.x del SDK
PatpassComercio.Inscription inscription = new PatpassComercio.Inscription(new PatpassOptions(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, IntegrationType.TEST));
final PatpassComercioInscriptionStartResponse response = inscription.start(url,
name,
firstLastName,
secondLastName,
rut,
serviceId,
finalUrl,
maxAmount,
phoneNumber,
mobileNumber,
patpassName,
personEmail,
commerceEmail,
address,
city);
// Versión 2.x del SDK
final PatpassComercioInscriptionStartResponse response = PatpassComercio.Inscription.start(
'http://misitio.cl/finalizar_suscripcion', // URL
'Diego', // Nombre
'Sanchez', // Primer apellido
'Valdovinos', // Segundo apellido
'12345678-9', // Rut
'323123', // Id de servicio
'http://misitio.cl/voucher', // URL Final
0, // Monto máximo
'57508624', // Teléfono fijo
'57508624', // Teléfono celular
'Help - 8050014', // Nombre PatPass
'persona@test.cl', // Email Persona
'comercio@test.cl', // Email Comercio
'Merced 156, Santiago, Chile', // Dirección
'Santiago' // Ciudad
);
$response = PatpassComercio\Inscription::start(
'http://misitio.cl/finalizar_suscripcion', // URL
'Diego', // Nombre
'Sanchez', // Primer apellido
'Valdovinos', // Segundo apellido
'12345678-9', // Rut
'323123', // Id de servicio
'http://misitio.cl/voucher', // URL Final
0, // Monto máximo
'57508624', // Teléfono fijo
'57508624', // Teléfono celular
'Help - 8050014', // Nombre PatPass
'persona@test.cl', // Email Persona
'comercio@test.cl', // Email Comercio
'Merced 156, Santiago, Chile', // Dirección
'Santiago' // Ciudad
);
// Versión 4.x del SDK
var inscription = new Inscription(new Options(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, PatpassComercioIntegrationType.Test));
var result = inscription.Start(
url: 'http://misitio.cl/finalizar_suscripcion',
name: 'Diego',
fLastname: 'Sanchez',
sLastname: 'Valdovinos',
rut: '12345678-9',
serviceId: '323123',
finalUrl: 'http://misitio.cl/voucher',
maxAmount: 0,
phoneNumber: '57508624',
mobileNumber: '57508624',
patpassName: 'Help - 8050014',
personEmail: 'persona@test.cl',
commerceEmail: 'comercio@test.cl',
address: 'Merced 156, Santiago, Chile',
city: 'Santiago'
);
// Versión 3.x del SDK
var response = Inscription.Start(
url: 'http://misitio.cl/finalizar_suscripcion',
name: 'Diego',
fLastname: 'Sanchez',
sLastname: 'Valdovinos',
rut: '12345678-9',
serviceId: '323123',
finalUrl: 'http://misitio.cl/voucher',
maxAmount: 0,
phoneNumber: '57508624',
mobileNumber: '57508624',
patpassName: 'Help - 8050014',
personEmail: 'persona@test.cl',
commerceEmail: 'comercio@test.cl',
address: 'Merced 156, Santiago, Chile',
city: 'Santiago'
);
@url = "https://callback_url/resultado/de/la/transaccion"
@name = "Nombre"
@first_last_name = "Primer Apellido"
@second_last_name = "Segundo Apellido"
@rut = "11111111-1"
@service_id = "Identificador del servicio unico de suscripción"
@final_url = "https://callback/final/comprobante/transacción"
@max_amount = 10000; # monto máximo de la suscripció
@phone_number = "numero telefono fijo de suscrito"
@mobile_number = "numero de telefono móvil de suscrito"
@patpass_name = "Nombre asignado a la suscripción"
@person_email = "Correo de suscrito"
@commerce_email = "Correo de comercio"
@address = "Dirección de Suscrito"
@city = "Ciudad de suscrito"
## Versión 2.x del SDK
@inscription = Transbank::Patpass::PatpassComercio::Inscription.new()
@resp = @inscription.start(
@url,
@name,
@first_last_name,
@second_last_name,
@rut,
@service_id,
@final_url,
@max_amount,
@phone_number,
@mobile_number,
@patpass_name,
@person_email,
@commerce_email,
@address,
@city
)
## Versión 1.x del SDK
@resp = Transbank::Patpass::PatpassComercio::Inscription::start(
url: @url,
name: @name,
first_last_name: @first_last_name,
second_last_name: @second_last_name,
rut: @rut,
service_id: @service_id,
final_url: @final_url,
max_amount: @max_amount,
phone_number: @phone_number,
mobile_number: @mobile_number,
patpass_name: @patpass_name,
person_email: @person_email,
commerce_email: @commerce_email,
address: @address,
city: @city
)
return_url = "https://callback_url/resultado/de/la/transaccion"
name = "Nombre"
first_last_name = "Primer Apellido"
second_last_name = "Segundo Apellido"
rut = "11111111-1"
service_id = "Identificador del servicio unico de suscripción"
final_url = "https://callback/final/comprobante/transacción"
max_amount = 10000; # monto máximo de la suscripció
phone_number = "numero telefono fijo de suscrito"
mobile_number = "numero de telefono móvil de suscrito"
patpass_name = "Nombre asignado a la suscripción"
person_email = "Correo de suscrito"
commerce_mail = "Correo de comercio"
address = "Dirección de Suscrito"
city = "Ciudad de suscrito"
## Versión 3.x del SDK
ins = Inscription(PatpassComercioOptions(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, IntegrationType.TEST))
resp = ins.start(return_url, name, first_last_name, second_last_name, rut, service_id, None,
max_amount, phone_number, mobile_number, patpass_name,
person_email, commerce_mail, address, city)
## Versión 2.x del SDK
resp = Inscription.start(return_url, name, first_last_name, second_last_name, rut, service_id, final_url,
max_amount, phone_number, mobile_number, patpass_name,
person_email, commerce_mail, address, city)
POST restpatpass/v1/services/patInscription
Commercecode: 28299257
Authorization: cxxXQgGD9vrVe4M41FIt
Content-Type: application/json
{
"url": "http://misitio.cl/finalizar_suscripcion",
"nombre": "Diego",
"pApellido": "Sanchez",
"sApellido": "Valdovinos",
"rut": "12345678-9",
"serviceId": "323123",
"finalUrl": "http://misitio.cl/voucher",
"commerceCode": "28299257",
"montoMaximo": "",
"telefonoFijo": "57508624",
"telefonoCelular": "57508624",
"nombrePatPass": "Help - 8050014",
"correoPersona": "persona@test.cl",
"correoComercio": "comercio@test.cl",
"direccion": "Merced 156, Santiago, Chile",
"ciudad": "Santiago"
}
Parámetros Inscription.start
Nombre tipo |
Descripción |
---|---|
url String |
URL de retorno del comercio (no permite 'localhost' ni '127.0.0.1') |
firstName String |
Nombre del tarjetahabiente |
fLastname String |
Apellido paterno del tarjetahabiente |
sLastname String |
Apellido materno del tarjetahabiente |
rut String |
Rut del tarjetahabiente (solo rut válidos o '11111111-1' para pruebas) |
serviceId String |
ID del servicio del tarjetahabiente |
finalUrl String |
Url final de la inscripción (no permite 'localhost' ni '127.0.0.1') |
maxAmount String |
Monto máximo del PAT a inscribir |
phoneNumber String |
Teléfono fijo del tarjetahabiente |
mobileNumber String |
Teléfono celular del tarjetahabiente |
patPassName String |
Nombre del PAT |
userEmail String |
Correo al tarjetahabiente con la suscripción |
commerceEmail String |
Correo para el comercio con el comprobante de suscripción |
userAddress String |
Dirección del tarjetahabiente |
userCity String |
Ciudad del tarjetahabiente |
Respuesta Inscription.start
response.getToken();
response.getUrl();
$response->token;
$response->url;
response.Token;
response.Url;
response.token
response.url
## Versión 3.x del SDK
response['token']
respone['url']
## Versión 2.x del SDK
response.token
respone.url
Nombre tipo |
Descripción |
---|---|
token xs:string |
Token de la transacción. Largo: 64. |
url xs:string |
URL de formulario de pago Patpass Comercio. Largo máximo: 256. |
Mensajes de error
Código | Descripción |
---|---|
-1 | Error interno |
-101 | URL final incorrecta |
-102 | URL retorno incorrecta |
-103 | Nombre Incorrecto |
-104 | Apellido Paterno incorrecto |
-105 | Apellido Materno incorrecto |
-106 | Rut inválido |
-107 | Id de Servicio incorrecto |
-108 | Código de comercio inválido |
-109 | Monto tope inválido |
-110 | Headers de autentificación requeridos |
-111 | Headers de autentificación erróneos |
La respuesta de este método se debe utilizar para crear un campo de nombre tokenComercio
en un formulario, al cual se le asigna el valor de token
y debe ser enviado a url
.
<form action="<Insertar URL aquí>" method="post" name="tokenForm">
<input type="hidden" name="tokenComercio" value="<Insertar token aquí>">
<input type="submit" class="btn btn-success" value="Inscribirse en Patpass Comercio">
</form>
Estado de una Inscripción
Para finalizar el proceso de inscripción se debe llamar a Inscription.status
Inscription.status
Este método permite finalizar el proceso de inscripción del PAT asociado al token que se generó en la inscripción
La respuesta del método contiene el estado y la URL para desplegar el voucher.
// Versión 3.x del SDK
PatpassComercio.Inscription inscription = new PatpassComercio.Inscription(new PatpassOptions(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, IntegrationType.TEST));
final PatpassComercioTransactionStatusResponse response = inscription.status(token);
// Versión 2.x del SDK
final PatpassComercioTransactionStatusResponse response =
PatpassComercio.Transaction.status(token);
$response = PatpassComercio\Inscription::getStatus($token);
// Versión 4.x del SDK
var inscription = new Inscription(new Options(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, PatpassComercioIntegrationType.Test));
var response = inscription.Status(token);
// Versión 3.x del SDK
var response = Inscription.Status(token);
## Versión 2.x del SDK
@inscription = Transbank::Patpass::PatpassComercio::Inscription.new()
@resp = @inscription.status(token: @token)
## Versión 1.x del SDK
@response = Transbank::Patpass::PatpassComercio::Inscription::status(token)
## Versión 3.x del SDK
ins = Inscription(PatpassComercioOptions(IntegrationCommerceCodes.PATPASS_COMERCIO, IntegrationApiKeys.PATPASS_COMERCIO, IntegrationType.TEST))
resp = ins.status(token)
## Versión 2.x del SDK
resp = Inscription.status(token)
POST restpatpass/v1/services/status
Commercecode: 28299257
Authorization: cxxXQgGD9vrVe4M41FIt
Content-Type: application/json
{
"token": "21383fe8ba4c4cdd9e18518daf4e9bcbaffd9e8e3ad4ec36f66ae2b4e80cc4b5"
}
Parámetros Inscription.status
Nombre
tipo | Descripción
token
String | Token entregado al iniciar inscripción
Respuesta Inscription.status
response.getVoucherUrl();
response.isAuthorized();
$response->$status;
$response->$urlVoucher;
response.Status;
response.UrlVoucher;
response.status
response.voucher_url
## Versión 3.x del SDK
response['status']
respone['voucher_url']
## Versión 2.x del SDK
response.status
response.voucher_url
Nombre tipo |
Descripción |
---|---|
authorized string |
Boolean representa estado de la transacción. |
voucherUrl string |
URL para mostrar el voucher. Largo máximo: 256. |
La respuesta de este método se debe utilizar para crear un campo de nombre tokenComercio
en un formulario, al cual se le asigna el valor de token
y debe ser enviado a voucherUrl
.
<form action="<Insertar URL aquí>" method="post" name="tokenForm">
<input type="hidden" name="tokenComercio" value="<Insertar token aquí>">
<input type="submit" class="btn btn-success" value="Inscribirse en Patpass Comercio">
</form>