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 venta

Ahora que has podido autorizar tu aplicación y obtener un access_token, el siguiente paso es realizar una transacción de prueba. Recuerda que debes conectar a internet la terminal, configurar la aplicación para poder realizar una venta y configurar el servicio de respuesta.

 

Para realizar una venta, 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.  

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.

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/sale

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 4 valores mínimos requeridos son serialNumber, amount, storeId, traceability. Consulta lista de valores permitidos en una petición.

{
    "serialNumber": "{serialNumber}",
    "amount": "{{amount}}",
    "storeId": "{storeId}",
    "traceability": {}
}

Ejemplo de solicitud / respuesta

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

Solicitud de venta

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

var client = new RestClient("http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/sale");
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", "{\n\t\"serialNumber\": \"{{serialNumber}}\",\n\t\"amount\": \"{{amount}}\",\n\t\"storeId\": \"{{storeId}}\",\n\t\"traceability\": {}\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/sale",
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 =>"{\n\t\"serialNumber\": \"{{serialNumber}}\",\n\t\"amount\": \"{{amount}}\",\n\t\"storeId\": \"{{storeId}}\",\n\t\"traceability\": {}\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, "{\n\t\"serialNumber\": \"{{serialNumber}}\",\n\t\"amount\": \"{{amount}}\",\n\t\"storeId\": \"{{storeId}}\",\n\t\"traceability\": {}\n}");
Request request = new Request.Builder()
.url("http://nubeqa.netpay.com.mx:3334/netpay-integration-service/transactions/sale")
.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/sale"

payload = "{\n\t\"serialNumber\": \"{{serialNumber}}\",\n\t\"amount\": \"{{amount}}\",\n\t\"storeId\": \"{{storeId}}\",\n\t\"traceability\": {}\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.

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