0% encontró este documento útil (0 votos)
961 vistas17 páginas

Instructivo Api Tienda Online Nave

El documento proporciona información sobre la integración de pagos a través de la API de Nave. Explica cómo obtener credenciales, generar intenciones de pago, autenticarse mediante tokens y recibir notificaciones de pago. Se describen los parámetros requeridos para la configuración inicial, autenticación, generación de intenciones de pago y formato de las respuestas.

Cargado por

evirnet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
961 vistas17 páginas

Instructivo Api Tienda Online Nave

El documento proporciona información sobre la integración de pagos a través de la API de Nave. Explica cómo obtener credenciales, generar intenciones de pago, autenticarse mediante tokens y recibir notificaciones de pago. Se describen los parámetros requeridos para la configuración inicial, autenticación, generación de intenciones de pago y formato de las respuestas.

Cargado por

evirnet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

V2.5.0 - 06.09.

2023

Integración vía API


Con nuestra integración vía API, podés habilitar pagos con Nave en tu propia
aplicación o página web. Brindá a tus usuarios la oportunidad de realizar pagos de
manera sencilla, rápida y segura desde cualquier dispositivo, utilizando pagos con
transferencia o cualquier tarjeta. Además, con Nave, los comercios recibirán los
pagos de forma inmediata y disfrutarán de comisiones bajas.

¿Qué necesitás para comenzar?

1. Credenciales de homologación y producción: Obtené un par de credenciales


que te permitirán recuperar un token de acceso necesario para comunicarte
con nuestras APIs.

2. Utilizá nuestras APIs: Aprovechá nuestros servicios para generar intenciones


de pago y recibir notificaciones de pago en tiempo real.

3. Opciones de visualización: Tenés la flexibilidad de elegir cómo presentar el


proceso de pago a tus usuarios. Podés renderizar un código QR
personalizado o simplemente redirigirlos a nuestro checkout.
2

Configuración inicial
Como parte del proceso de configuraciones iniciales, es necesario informar los
siguientes datos:

Atributo Descripción Tipo Requerido

store_id ID del store. Puede existir más de uno String Sí

Punto de venta donde se acreditarán


pos_id String Sí
los pagos

email Email del comercio String Sí

Dominio desde donde se consumen


domain String Sí
los servicios

Endpoint donde se reciben las


notification_url String Sí
notificaciones de pago

platform Nombre de la plataforma String Sí

Ejemplo:

JavaScript

{
"store_id": "IJgEegwyxaLXgotf1g1calhxdxZoJVSo",
"pos_id": "2a3d18d2-88d5-4a50-95ef-9d99496ec0cb",
"email": "[email protected]",
"domain": "platform.com.ar",
"notification_url": "https://api.com/payment/notification/nave",
"platform": "platform_name",
}

⚠️ ️Esta información podrá enviarse por cualquier medio.


3

Autenticación
Para realizar interacciones HTTPS con nuestros servicios, se requiere un Bearer
Token. Las credenciales necesarias para obtener este token se proporcionarán una
vez que avances con la integración.

Base URL

Testing

JavaScript

POST
https://homoservices.apinaranja.com/security-ms/api/security/auth0/b2b/m2ms

Producción

JavaScript

POST
https://services.apinaranja.com/security-ms/api/security/auth0/b2b/m2ms
4

Parámetros

JavaScript

{
"client_id": "eGXu7VV...LsXWylDmrE",
"client_secret": "BAdRFax_McS...JLBTH-n",
"audience": "https://na...rchants/api",
"cache": true
}

Atributo Descripción Tipo Requerido

client_id Identificación del cliente String Sí

client_secret Clave secreta String Sí

audience Audiencia provista String Sí

cache Cache de token String Sí

⚠️ ️ Recordá que esta información es privada. No la compartas con nadie. El


equipo de Nave nunca te pedirá esta información.
5

Respuesta

JavaScript

{
"access_token": "eyJhbGciOiJS...1A",
"scope": "read... write...",
"expires_in": 86400,
"token_type": "Bearer"
}

Atributo Descripción Tipo

access_token Token generado String

scope Permisos habilitados String

expires_in Tiempo de vida expresado en segundos String

token_type Tipo de token String


6

Ejemplo

JavaScript

curl --location --request POST


'https://homoservices.apinaranja.com/security-ms/api/security/aut
h0/b2b/m2ms' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "eGXu7VVi...rE",
"client_secret": "BAdRFax_McS4...rkkJLBTH-n",
"audience": "https://n...nts/api",
"cache": true
}'

JavaScript

{
"access_token":
"eyJhbGciOiJSUzI1NiIs.k56aEVPVGN4TmtaRE5EWkZOREUzTVRWQ05URXdNakkx
UkRjeU5EQTJPUSJ9.eyJodHRwczovL2.HdyaXRlLnFyX3.m1A",
"scope": "read:ecommerce-api write:ecommerce-api",
"expires_in": 86400,
"token_type": "Bearer"
}
7


Intención de pago
Cuando un usuario decide realizar una compra, es necesario generar la intención de
pago. Esta actúa como una solicitud o autorización formal para completar la
transacción. Al generar la intención de pago, se establecen todos los detalles
necesarios, como el monto a pagar, la información de los productos y los datos
relevantes del comprador.

Base URL

Testing

JavaScript

POST https://e3-api.ranty.io/ecommerce/payment_request/external

Producción

JavaScript

POST
https://api.ranty.io/ecommerce/payment_request/external
8

Parámetros

Headers

Header Tipo Valor

Authorization Bearer Token Token generado

Body

JavaScript

{
"store_id": "112233",
"platform": "uba",
"callback_url": "https://uba.com/order/123",
"order_id": 9546,
"mobile": false,
"payment_request": {
"transactions": [
{
"products": [
{
"id": "883627",
"name": "CURSO 1",
"description": "CURSO 1",
"quantity": 2,
"unit_price": {
"currency": "ARS",
"value": "1000.00"
}
9

}
],
"amount": {
"currency": "ARS",
"value": "2000.00"
}
}
],
"buyer": {
"user_id": "nachocabrera",
"doc_type": "DNI",
"doc_number": "39032555",
"user_email": "[email protected]",
"name": "Nacho Cabrera",
"phone": "N/A",
"billing_address": {
"street_1": "Nueva Cordoba",
"street_2": "N/A",
"city": "1409",
"region": "Córdoba",
"country": "AR",
"zipcode": "5000"
}
}
}
}
10

Atributo Descripción Tipo Requerido

store_id Identificación del comercio String Sí

platform Identificación de la plataforma String Sí

callback_url URL de redirección luego del pago String Sí

order_id Identificación de la orden Number Sí

mobile Identificación del dispositivo Boolean Sí

payment_request Información de la transacción Object Sí

buyer Información del comprador Object Sí


11

Respuesta

JavaScript

{
"status": "PENDING",
"message": "Payment request created",
"data": {
"transaction_id": "c559cd47-4415-4b85-8570-36109052f966",
"qr_data": "00020101021244160012..bfbf81786304E788",
"payment_request_id": "46458184-3cd9..a558bfbf8178",
"checkout_url": "https://checkout.ranty.io/nave/..",
"redirect_to": "https://www.modo.com.ar/pagar/?qr=.."
}
}

Atributo Descripción Tipo

transaction_id Identificación de la transacción String

qr_data Código QR de la intención de pago String

payment_request_id Identificación de la intención de pago String

checkout_url Link de pago String

redirect_to Redirección a aplicaciones para pago mobile String

⚠️ ️ Si la transacción se está llevando a cabo en un dispositivo móvil, es posible


realizar una redirección al atributo "redirect_to" devuelto al crear la intención de
pago. Esto permitirá al usuario realizar el pago utilizando aplicaciones bancarias o
MODO. Proceso incorporado también en nuestro checkout.
12

Ejemplo

JavaScript

curl --location --request POST


'https://e3-api.ranty.io/ecommerce/payment_request/external' \
--header 'Authorization: Bearer eyJraWQiOiJKOFw..' \
--header 'Content-Type: application/json' \
--data-raw '{
"store_id": "112233",
"platform": "uba",
"callback_url": "https://uba.com/order/9546",
"order_id": 9546,
"mobile": true,
"payment_request": {
"transactions": [
{
"products": [
{
"id": "883627",
"name": "CURSO",
"description": "CURSO",
"quantity": 2,
"unit_price": {
"currency": "ARS",
"value": "1000.00"
}
}
],
"amount": {
13

"currency": "ARS",
"value": "2000.00"
}
}
],
"buyer": {
"user_id": "nachocabrera",
"doc_type": "N/A",
"doc_number": "N/A",
"user_email": "[email protected]",
"name": "Angel Quezada",
"phone": "N/A",
"billing_address": {
"street_1": "Nueva Cordoba",
"street_2": "N/A",
"city": "1409",
"region": "Córdoba",
"country": "AR",
"zipcode": "5000"
}
}
}
}'
14

Notificación de pago
Cuando ocurra un evento relacionado con una intención de pago u orden
específica, se enviará una notificación mediante una solicitud POST a la URL de
notificación que se especificó durante el proceso de integración. Mediante esta
notificación recibirás información en tiempo real sobre el evento ocurrido, lo que te
permitirá tomar las acciones correspondientes en tu aplicación o sistema. Es
importante asegurarse de que la URL de notificación esté correctamente
configurada y sea capaz de recibir y procesar las notificaciones entrantes de manera
adecuada.

Parámetros
Body que deberá permitir el endpoint de notificación.

JavaScript

{
"payment_method": {
"type": "wallet",
"id": "wallet"
},
"status": "APPROVED",
"amount": {
"value": "3000.00",
"currency": "ARS"
},
"order_id": "9557",
"happened_at": "2023-05-22T16:04:07.606Z",
}
15

Atributo Descripción Tipo

Identificación del método de pago. Valores


payment_method Object
posibles: wallet, credit_card o debit_card

Estado del pago. Valores posibles:


status String
APPROVED o REJECTED

amount Monto pagado por el usuario Object

order_id Identificación de la orden String

happened_at Fecha y hora del pago String

Para confirmar que la notificación se ha recibido correctamente, es necesario


responder con un código de estado 200. Si se responde con un código de estado
diferente, la notificación se volverá a procesar y se realizarán hasta cinco intentos
adicionales de notificación.

Esquema de reintentos

Intento Frecuencia

Primero 10 segundos

Segundo 70 segundos

Tercero 490 segundos

Cuarto 3430 segundos

Quinto 24010 segundos


16

Renderización de QR
Si es necesario utilizar un desarrollo personalizado para mostrar el código QR, se
puede optar por una solución disponible a nivel de frontend. Esto proporciona una
experiencia mejorada para el usuario, ya que evita redireccionamientos a otros
sitios o páginas externas. Al mostrar el código QR directamente en el frontend, se
puede mantener al usuario dentro de la interfaz de la aplicación o página web, lo
que resulta en una experiencia más fluida y coherente.

JavaScript

e3-ecommerce.ranty.io/tienda_negocio/nave/checkout?
payment_request_id=…&qr_data=…

Atributo Descripción Tipo

id Identificación de la intención de pago String

qr_data Código QR de la intención de pago String

Ejemplo

JavaScript

https://e3-ecommerce.ranty.io/tienda_negocio/nave/checkout?id=e9e16deb-5
373-49c1-8570-05444c82ef70&qr_data=00020101021244160012com.naranjax5
01500113066300584352041520530303254072000.%20005809Argentina5913tie
nda%20test%2016006ABASTO62400536e9e16deb-5373-49c1-8570-05444c82e
f706304C39C
17

Casos de uso
El caso más común implica desarrollar un iframe que muestre la URL mencionada
anteriormente. Esta aplicación se conecta a nuestros servicios a través de
WebSockets para recibir actualizaciones en tiempo real sobre el estado del pago.

También podría gustarte