Documentación
  • Inicio
  • Community
  • Ayuda

›Smart API

Checkout

  • Introducción
  • Autenticación
  • Procesar datos de compra
  • Cargar página de pago alojada en nuestros servidores
  • Consulta del detalle de la transacción
  • Cancelar transacción
  • Recursos Checkout

    • Información Checkout

Smart API

  • Terminal punto de venta Smart
  • Autorización
  • Realizando una venta
  • Recibiendo la respuesta
  • Realizando una reimpresión
  • Realizando una cancelación
  • API Reference
  • Recursos terminal Smart

    • Netpay Market
    • Configuracion de la terminal
    • Configuración app Smart Pinpad

Realizando una cancelación

En caso de requerirlo, se puede cancelar una venta realizada el mismo día consumiendo el servicio de cancelación.

 

Para realizar una cancelación, es necesario contar con la siguiente información:  

  • {{serialNumber}} : Numero de serie. Cadena numérica a 10 dígitos ubicada en la parte posterior de la terminal (S/N).
  • {{storeId}} : Número identificador de comercio asignado por terminal.
  • {{access_token}} : Token de acceso necesario para consumir el servicio. Ver obtener token de acceso.
  • {{orderId}} : numero de orden generado al realizar una venta. Ver información de regreso de la terminal.  

Cosas a tener en cuenta

  • La terminal debe tener acceso a internet en todo momento sin restricciones al dominio y subdominios *.netpay.com.mx para recibir y enviar solicitudes.
  • Debe estar encendida la pantalla de la terminal y estar en primer plano la pantalla principal de la aplicación.
  • Sólo se puede cancelar una transacción realizada el mismo día, y la cancelación se debe solicitar antes de las 20:00 hora Ciudad de México por el monto total.

Ambientes

SANDBOX URL BASE:
http://nubeqa.netpay.com.mx:3334

PRODUCCIÓN URL BASE:
https://suite.netpay.com.mx/

Estructura de una petición

POST /netpay-integration-service/transactions/cancel

Headers

Los siguientes headers deben ser enviados en la petición

  • Content-Type: application/json
  • Authorization: Bearer {{access_token}}

Body

En la petición, se debe mandar un objeto JSON con los datos según se requieran. Los 3 valores mínimos requeridos son serialNumber, orderId, storeId. Consulta lista de valores permitidos en una petición.

{
    "serialNumber": "{{serialNumber}}",
    "orderId": "{{orderId}}",
    "storeId": "{{storeId}}"
}

 

Ejemplo de solicitud / respuesta

A continuación, se muestra un ejemplo de una petición para solicitar una cancelación y los diferentes mensajes de respuesta.

Solicitud de cancelación

cURL
C#
PHP
JAVA
Python
curl -L -X POST 'http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/cancel' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {{access_token}}' \
--data-raw '{
"orderId": "{{orderId}}",
"serialNumber": "{{serialNumber}}",
"storeId": "{{storeId}}"
}'

var client = new RestClient("http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/cancel");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{access_token}}");
request.AddParameter("application/json", "{\r\n \"orderId\": \"{{orderId}}\",\r\n \"serialNumber\": \"{{serialNumber}}\",\r\n \"storeId\": \"{{storeId}}\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n \"orderId\": \"{{orderId}}\",\r\n \"serialNumber\": \"{{serialNumber}}\",\r\n \"storeId\": \"{{storeId}}\"\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer {{access_token}}"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"orderId\": \"{{orderId}}\",\r\n \"serialNumber\": \"{{serialNumber}}\",\r\n \"storeId\": \"{{storeId}}\"\r\n}");
Request request = new Request.Builder()
.url("http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/cancel")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{access_token}}")
.build();
Response response = client.newCall(request).execute();
import requests

url = "http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/cancel"

payload = "{\r\n \"orderId\": \"{{orderId}}\",\r\n \"serialNumber\": \"{{serialNumber}}\",\r\n \"storeId\": \"{{storeId}}\"\r\n}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{access_token}}'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

Respuestas

  • SUCCESS: Se obtendrá la siguiente respuesta si la información enviada es correcta.
  • INVALID TOKEN: Se obtendrá la siguiente respuesta si el {{access_token}} enviado es incorrecto.
  • MISSING TERMINAL: Se obtendrá la siguiente respuesta si el {{serialNumber}} enviado es incorrecto.

 

SUCCESS
INVALID TOKEN
MISSING TERMINAL
{
"code": "00",
"message": "Mensaje enviado exitosamente"
}
{
"error": "invalid_token",
"error_description": "Cannot convert access token to JSON"
}
{
"code": "19",
"message": "No se encontró la terminal"
}

 

NOTA: Es importante que el {{serialNumber}}, {{storeId}}, URL BASE y PATH queden configurables dentro de algún menú de configuración o un archivo externo dado que pueden cambiar en el ambiente de producción.

← Realizando una reimpresiónAPI Reference →
  • Cosas a tener en cuenta
  • Ambientes
  • Estructura de una petición
    • Headers
    • Body
  • Ejemplo de solicitud / respuesta
    • Solicitud de cancelación
  • Respuestas
Documentación
Docs
Ecommerce CheckoutTerminal Smart API
Community
CommunityAyudaGitHub
Contacto
[email protected]
© 2020 NetPay