# Órdenes de pago

Esta API proporciona un mecanismo para alojar órdenes de pago independientemente de su origen y aplicación.

El sistema que aloja una orden es responsable por la trazabilidad al origen a través de los campos de referencia y por la aplicación mediante la definición de Webhooks.

Endpoint Induxsoft: https://pix.api.induxsoft.net/ordenes/

## Crear una orden de pago


### Solicitud
```
POST {endpoint}
Authorization: basic base64(owner:claveAPI)
{
	"consumidor":"id del consumidor",
	"consumidor2":" (opcional) Id de un consumidor alterno si falla el intento al principal",
	"concepto":"Concepto de la orden de pago",
	"referencia":"Id de trazabilidad, por ejemplo el id de contrato",
	"pixfmt":"(opcional) Id de formato de pago de PIX",
	"pixref":"(opcional) Referencia para PIX",
	"importe":Importe de la orden,
	"divisa":"MXN",
	"expiracion":"(opcional) fecha en que ya no es válida la orden",
	"max_intentos": (opcional) Número máximo de intentos antes de cancelarla 0-Ilimitado,
	"inicio":"(opcional, si no se incluye se asume la fecha y hora actuales) fecha a partir de la cual se intentarán los cargos automáticos",
	"webhook":"(opcional)URL de Webhook asociado"
}
```
### Respuesta

```
{
	"success":true,
	"data":{
		"id_orden":"Id de la orden",
	}
}
```

## Cancelar una orden de pago
### Solicitud
```
DELETE {endpoint}/{id_orden}
Authorization: basic base64(owner:claveAPI)

```
### Respuesta

```
{
	"success":true,
	"data":{
		"id_orden":"Id de la orden",
		"tiempo":"Fecha y hora de cancelación"
	}
}
```

## Consultar una orden de pago
### Solicitud
```
GET {endpoint}/{id_orden_o_referencia}

/* Autenticación a nivel de sistema*/
Authorization: basic base64(owner:claveAPI)

/* Autenticación a nivel del usuario (consumidor), la orden debe ser de ese consumidor*/
Authorization: bearer ids

```
### Respuesta

```
{
	"success":true,
	"data":{
		"id":"Id de la orden de pago",
		"consumidor":"id del usuario (consumidor)",
		"consumidor2":"Id de un consumidor alterno si falla el intento al principal",
		"concepto":"RENOVACIÓN AUTOMÁTICA, FACTUDESK ESTÁNDAR",
		"referencia":"Id de trazabilidad, por ejemplo el id de contrato",
		"pixfmt":"Id de formato de pago de PIX",
		"pixref":"Referencia para PIX",
		"importe":1111,
		"divisa":"MXN",
		"expiracion":"fecha en que ya no es válida la orden",
		"max_intentos":Número máximo de intentos antes de cancelarla 0-Ilimitado,
		"inicio":"fecha a partir de la cual se intentarán los cargos automáticos",
		"ult_intento":"fecha del ultimo intento de cobro",
		"ult_error":"Mensaje del último mensaje de error",
		"intentos":Entero que indica la cantidad de veces que se ha intentado ejecutar,
		"liquidacion":"Fecha en que se liquidó",
		"ref_pago":"Trazabildiad hacia el pago",
		"ref_factura":"Trazabildiad hacia la factura",
		"status":0-Vigente, 1-Pagada, 2-Expirada, 3-Cancelada
		"f_cancelacion":"fecha de cancelación de la orden",
		"webhook":"URL de Webhook"
	}
}
```

## Consultar varias órdenes de pago
### Solicitud
```
GET {endpoint}?status={p_status}&fi={fecha_inicial}&ff={fecha_final}&consumidor={id_consumidor}&limit={cantidad}&orden=desc

/* Autenticación a nivel de sistema*/
Authorization: basic base64(owner:claveAPI)

/* Autenticación a nivel del usuario (consumidor), establece el parámetro id_consumidor al que corresponda al usuario*/
Authorization: bearer ids
```
* p_status=0-Vigentes,1-Pagadas,2-Expiradas,3-Canceladas, si no es especifica se asume 0
* fecha_inicial, fecha en formato yyyy-mm-dd inicial, si no se especifica se asume hoy
* fecha_final, fecha en formato yyyy-mm-dd inicial, si no se especifica se asume hoy
* id_consumidor, si se establece las órdenes devueltas deben estar asociadas a ese consumidor
* limit, cantidad de órdenes a devolver, si no se especifica se asume 100
* orden=desc, si se establece se ordena por las más recientes de inicio (inicio desc), caso contrario se ordena por inicio

### Respuesta

```
{
	"success":true,
	"data":[{...datos de la orden...},...]
}
```