IF Transactions
Endpoint para agregar transacciones del fan al sistema.
📥 Collection Postman
URLs
| Método | URL | Acción | Descripción |
|---|---|---|---|
| POST | /api/v2/IF_ID_Batch | Registrar | Agrega transacciones del fan al sistema |
Producción:
{connect-producao}/api/v2/IF_ID_BatchHomologación:
{connect-homologacao}/api/v2/IF_ID_BatchAutenticación
Todas las solicitudes requieren un token de acceso obtenido en el endpoint de Security. El token debe ser enviado en el header AccessToken.
Agregar Transacciones
Solicitud
Endpoint: POST {connect-producao}/api/v2/IF_ID_Batch
Headers:
AccessToken: {access_token}
Content-Type: application/jsonBody:
json
[
{
"userCode": "12345678900",
"userCodeType": 1,
"system": 0,
"name": "Juan Silva",
"email": "juan@ejemplo.com",
"emailVerified": true,
"cpf": "12345678900",
"gender": "M",
"birthday": "15/08/1980",
"mobile": "+5511999999999",
"phone": "+5511888888888",
"addr1": "Calle Ejemplo",
"addr2": "Apto 101",
"addrNumber": 123,
"addr3": "Centro",
"addrCity": "São Paulo",
"addrState": "SP",
"addrZip": "01234567",
"addrCountry": "31",
"transactions": [
{
"externalCode": "VENTA-001",
"date": "2025-09-20T18:41:31.219Z",
"type": 1,
"productType": 1,
"productDesc": "Producto Ejemplo",
"productExternalCode": "PROD-001",
"qty": 2,
"value": 100.00,
"channel": "Tienda Online",
"deliveryMode": "Entrega",
"priceType": "Normal",
"cupon": "DESCUENTO10",
"paymentMode": "Tarjeta de Crédito",
"complement": "{\"línea\": 1}",
"discount": "Cupón de descuento",
"discountValue": 10.00
}
]
}
]Campos del Body
Datos del Comprador
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
userCode | string | Sí | CPF o email del comprador |
userCodeType | number | Sí | Tipo del código: 1 para CPF, 4 para email |
system | number | Sí | Sistema de origen (definido por Fanbase) |
name | string | Sí | Nombre del comprador |
email | string | Sí | Email del comprador |
emailVerified | boolean | Sí | Indica si el email fue verificado |
cpf | string | Sí | CPF del comprador |
gender | string | No | Género: M/F/O/null |
birthday | string | No | Fecha de nacimiento (formato DD/MM/YYYY) |
mobile | string | No | Teléfono celular |
phone | string | No | Teléfono alternativo |
addr1 | string | No | Calle |
addr2 | string | No | Complemento |
addrNumber | number | No | Número de la casa |
addr3 | string | No | Barrio |
addrCity | string | No | Ciudad |
addrState | string | No | Estado (2 dígitos: SP/DF/etc) |
addrZip | string | No | CEP |
addrCountry | string | No | Código numérico del país |
Transacciones
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
externalCode | string | Sí | Código único de la transacción en el sistema de origen |
date | datetime | Sí | Fecha de la transacción (ISO 8601) |
type | number | Sí | Tipo: 1 (venta), 2 (devolución), 161 (cupón usado), 162 (cupón no usado) |
productType | number | Sí | Tipo: 1 (producto), 2 (servicio) |
productDesc | string | Sí | Descripción del producto |
productPrice | number | No | Obsoleto - desconsiderar |
productExternalCode | string | Sí | Código del producto en el sistema de origen |
qty | number | Sí | Cantidad |
value | number | Sí | Valor unitario del producto |
channel | string | Sí | Canal de venta (ej: nombre de la tienda) |
deliveryMode | string | Sí | Modo de entrega |
priceType | string | Sí | Tipo de precio |
cupon | string | No | Código del cupón de descuento |
paymentMode | string | Sí | Modo de pago (ej: Tarjeta de crédito, Pix) |
complement | string | No | Datos complementarios (JSON string) |
discount | string | No | Motivo del descuento |
discountValue | number | No | Valor del descuento |
Respuesta de Éxito
Estado: 200 OK
json
{
"header": {
"codigo": 1,
"msg": "Transacciones procesadas con éxito"
},
"data": {
"total": 1,
"processadas": 1,
"erros": 0
}
}Ejemplo de Implementación
javascript
async function agregarTransacciones(transacciones, accessToken) {
const response = await fetch('{connect-producao}/api/v2/IF_ID_Batch', {
method: 'POST',
headers: {
'AccessToken': accessToken,
'Content-Type': 'application/json'
},
body: JSON.stringify(transacciones)
});
if (!response.ok) {
throw new Error(`Error ${response.status}: ${response.statusText}`);
}
return await response.json();
}