# Ejemplos de integración

A continuación encontrarás ejemplos de integración para los servicios más utilizados en PayGateway

# Pago y creación de ordenes

Permite crear ordenes, pagarlas y facturarlas (si aplica).

`<strong>POST:</strong> /payments/create-pay-order`

***Creación de ordenes mediante link de pago (pago posterior)***

```json
{
	"clienteDireccion": "Ciudad",
	"clienteEmail": "demo@demo.com",
	"clienteNombre": "Nombre de cliente",
	"clienteTaxId": "CF",
	"clienteTelefono": "55555555",
	"ordenDetalle": {
		"0": {
			"productoCantidad": 1,
			"productoId": 0,
			"productoPrecio": "7.91",
			"productoDescMontoDirecto": "Pago de monto directo, pruebas"
		}
	},
	"ordenMonto": "7.91",
	"ordenTiendaDomain": "__DOMINIO_DE_TIENDA__",
	"pagoMetodo": "later_on_store"
}
```

***Creación de ordenes mediante pago en efectivo***

```json
{
	"clienteDireccion": "Ciudad",
	"clienteEmail": "demo@demo.com",
	"clienteNombre": "Nombre de cliente",
	"clienteTaxId": "CF",
	"clienteTelefono": "55555555",
	"ordenDetalle": {
		"0": {
			"productoCantidad": 1,
			"productoId": 0,
			"productoPrecio": "7.91",
			"productoDescMontoDirecto": "Pago de monto directo, pruebas"
		}
	},
	"ordenMonto": "7.91",
	"ordenTiendaDomain": "__DOMINIO_DE_TIENDA__",
	"pagoMetodo": "cash"
}
```

***Creación de ordenes mediante pago con tarjeta***

*NOTA: Para realizar una orden mediante pago con tarjeta, es necesario poseer configurada una afiliación de pago\*.*

```json
{
	"clienteDireccion": "Ciudad",
	"clienteEmail": "demo@demo.com",
	"clienteNombre": "Nombre de cliente",
	"clienteTaxId": "CF",
	"clienteTelefono": "55555555",
	"ordenDetalle": {
		"0": {
			"productoCantidad": 1,
			"productoId": 0,
			"productoPrecio": "10",
			"productoDescMontoDirecto": "Pago de monto directo, PRUEBA"
		}
	},
	"ordenMonto": "10",
	"ordenTiendaDomain": "__DOMINIO_DE_TIENDA__",
	"pagoMetodo": "card",
	"pagoTcExp": "07/24",
	"pagoTcNombre": "Nombre en TC",
	"pagoTcNumero": "4111111111111111"
}
```

# Validación de pagos

Permite validar si una orden es válida y su estado de pago.

`<strong>POST:</strong> /payments/validate-pay`

**Request:**

```json
{
	"token": "4385509296a6fvz",
	"ordenTiendaDomain": "__DOMINIO_DE_TIENDA___"
}
```

# Cancelar ordenes (con sus pagos y facturas)

Permite cancelar una orden, incluyendo todos los pagos y facturas asociados. En el caso de pagos, se realizará la reversa (si el procesador de pagos aún no ha realizado corte). En el caso de facturas, se realizará la anulación de la misma.

`<strong>POST:</strong> /payments/cancel-order`

**Request:**

```json
{
	"orderId": "__ID DE LA ORDEN__"
}
```

# Inicio de sesión mediante SSO

Permite Iniciar sesión por medio del API de ingreso SSO.

`<strong>POST:</strong> /users/sso/authorize`

**Request:**

```json
{
    "username": "__NOMBRE_DE_USUARIO__",
    "password": "testPassword",
    "storeDomain": "__DOMINIO_DE_TIENDA__"
}
```

# Validar sesión iniciada desde SSO

Permite validar si un token es una sesión válida, el token debe haber sido creado mediante el API para ingreso SSO.

`<strong>POST:</strong> /users/sso/check-session`

Request:

```json
{
    "storeDomain": "__DOMINIO_DE_TIENDA__",
    "token": "ayJ0evZiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwic3RpZCI6MTIwLCJleHAiOjE2NzcxOTYwNzUsInQiOiJzc286fF.1_q643etS-d3LVIU6mZUPc6jsI6LnfUCv9Qhvv6QR6V"
}
```