Skip to content

ID Batch V2

Endpoint para procesar registros de usuarios en lote (FanID) y sus datos relacionados.

📥 Collection Postman

Descargar Collection - ID Batch V2

URLs

MétodoURLAcciónDescripción
POST/api/v2/IF_ID_BatchRegistrarProcesa registros de usuarios en lote y sus datos

Producción:

{connect-produccion}/api/v2/IF_ID_Batch

Homologación:

{connect-homologacion}/api/v2/IF_ID_Batch

Autenticación

Todas las solicitudes requieren un token de acceso obtenido en el endpoint de Security. El token debe enviarse en el header AccessToken.

AccessToken: {su_token}

Procesar Registros en Lote

Solicitud

Endpoint: POST {connect-produccion}/api/v2/IF_ID_Batch

Headers:

AccessToken: {access_token}
Content-Type: application/json

Estructura del Body

Estructura Principal

json
{
  "systemId": 0,
  "data": [
    {
      "data": { ... },
      "numbers": [ ... ],
      "sysValues": [ ... ],
      "addresses": { ... },
      "transactions": [ ... ],
      "memberships": [ ... ],
      "optins": [ ... ],
      "attributes": [ ... ],
      "pwd": "string",
      "pwdhash": "string"
    }
  ]
}
CampoTipoObligatorioDescripción
systemIdnumberID del sistema de origen (será informado por Fanbase)
dataarrayArray de objetos con datos de usuarios

Campos del Objeto data (Datos Personales)

json
{
  "data": {
    "identity": 0,
    "name1": "string",
    "gender": "string",
    "socialName": "string",
    "birthday": 0,
    "birthMonth": 0,
    "birthYear": 0,
    "nationalityIso3": "string"
  }
}
CampoTipoObligatorioDescripción
identitynumberMantener siempre 0 para integración
name1stringNombre completo
genderstringNoGénero: M / F / O / null
socialNamestringNoApodo/Nombre social
birthdaynumberDía de nacimiento (01-31)
birthMonthnumberMes de nacimiento (01-12)
birthYearnumberAño de nacimiento (4 dígitos)
nationalityIso3stringNoNacionalidad, formato ISO3 (ej: BRA)

Campos del Array numbers (Documentos)

json
{
  "numbers": [
    {
      "numberType": 0,
      "number": "string",
      "verified": 0
    }
  ]
}
CampoTipoObligatorioDescripción
numberTypenumberTipo de documento (ver tabla abajo)
numberstringNúmero del documento (sin formato)
verifiednumberNoVerificado: 0 (no) o 1 (sí)

Tipos de Documento (numberType)

CódigoTipo
1CPF
3Teléfono
4Email

Campos del Array sysValues (Valores del Sistema)

Datos relevantes que no tienen relación directa con el registro (ej: Número de carnet, Código de Socio).

json
{
  "sysValues": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
CampoTipoObligatorioDescripción
keystringClave identificadora
valuestringValor asociado

Campos del Objeto addresses (Dirección)

json
{
  "addresses": {
    "addressType": 0,
    "add1": "string",
    "add2": "string",
    "number": 0,
    "add3": "string",
    "zip": "string",
    "city": "string",
    "state": "string",
    "iso3": "string"
  }
}
CampoTipoObligatorioDescripción
addressTypenumberTipo: 1 (Principal), 2 (Alternativo)
add1stringCalle/Dirección
add2stringNoComplemento
numbernumberNoNúmero de la casa
add3stringBarrio
zipstringCódigo postal
citystringCiudad
statestringEstado (2 dígitos: SP/DF/RJ/etc)
iso3stringPaís, formato ISO3 (ej: BRA)

Campos del Array transactions (Transacciones) - Opcional

Clase opcional para agregar datos de transacciones (compras de e-commerce, tiendas, etc).

json
{
  "transactions": [
    {
      "date": "2025-09-20T18:41:31.219Z",
      "type": 0,
      "productType": 0,
      "productDesc": "string",
      "productExternalCode": "string",
      "qty": 0,
      "value": 0,
      "channel": "string",
      "externalCode": "string",
      "deliveryMode": "string",
      "priceType": "string",
      "cupon": "string",
      "paymentMode": "string",
      "complement": "string",
      "discount": "string",
      "discountValue": 0
    }
  ]
}
CampoTipoObligatorioDescripción
datedatetimeFecha de la transacción (ISO 8601)
typenumberTipo de transacción
productTypenumberTipo de producto
productDescstringDescripción del producto
productExternalCodestringCódigo del producto en el sistema de origen
qtynumberCantidad
valuenumberValor unitario
channelstringCanal de venta (ej: Nombre de la tienda)
externalCodestringCódigo de la transacción en el sistema de origen
deliveryModestringNoModo de entrega
priceTypestringNoTipo de precio
cuponstringNoCódigo de cupón de descuento
paymentModestringModo de pago (Tarjeta de crédito, Pix, etc)
complementstringNoCódigo del ítem en el pedido (ej: item:1, item:2)
discountstringNoMotivo del descuento
discountValuenumberNoValor del descuento

Campos del Array memberships (Planes de Socio) - Opcional

Clase opcional para agregar datos de planes de socio.

json
{
  "memberships": [
    {
      "externalId": "string",
      "status": "string",
      "data": "2025-09-20T18:41:31.219Z",
      "cancelamento": "2025-09-20T18:41:31.219Z",
      "codigoCliente": "string",
      "plano": "string",
      "planoCode": "string",
      "complemento": "string",
      "parcelas": 0,
      "validade": "2025-09-20T18:41:31.219Z",
      "origem": "string",
      "ativacao": "2025-09-20T18:41:31.219Z",
      "tipoVigencia": "string",
      "formaPagamento": "string",
      "guests": [ ... ],
      "attributes": [ ... ]
    }
  ]
}
CampoTipoObligatorioDescripción
externalIdstringCódigo del contrato en el sistema de origen
statusstringEstado: Activo/Inactivo/Moroso/etc
datadatetimeFecha de contratación
cancelamentodatetimeNoFecha de cancelación (si fue cancelado)
codigoClientestringCPF o Email del cliente
planostringNombre del plan
planoCodestringNoCódigo del plan en el sistema de origen
complementostringNoOtras informaciones del contrato
parcelasnumberNoNúmero de cuotas pagadas
validadedatetimeNoFecha de validez (cuando no hay renovación automática)
origemstringNoCanal de origen de la contratación
ativacaodatetimeNoFecha de activación (inicio de vigencia)
tipoVigenciastringNoTipo de vigencia: Anual, Mensual
formaPagamentostringNoModo de pago (Tarjeta de crédito, Pix, etc)

Dependientes/Invitados (guests)

json
{
  "guests": [
    {
      "guestFanbaseId": 0,
      "externalId": "string",
      "cpf": "string",
      "email": "string",
      "celular": "string",
      "name1": "string",
      "gender": "string",
      "socialName": "string",
      "birthday": 0,
      "birthMonth": 0,
      "birthYear": 0
    }
  ]
}
CampoTipoObligatorioDescripción
guestFanbaseIdnumberNoID Fanbase existente (si se conoce)
externalIdstringNoCódigo del dependiente en el sistema de origen
cpfstringNoCPF del dependiente
emailstringNoEmail del dependiente
celularstringNoCelular del dependiente
name1stringNoNombre completo
genderstringNoGénero: M/F/O/null
socialNamestringNoApodo
birthdaynumberNoDía de nacimiento (01-31)
birthMonthnumberNoMes de nacimiento (01-12)
birthYearnumberNoAño de nacimiento (4 dígitos)

Atributos del Membership (attributes)

json
{
  "attributes": [
    {
      "type": "string",
      "name": "string",
      "value": "string",
      "note": "string",
      "externalCode": "string"
    }
  ]
}
CampoTipoObligatorioDescripción
typestringTipo del atributo (ej: Card)
namestringNoNombre de identificación (ej: Carnet)
valuestringValor del atributo
notestringNoCampo libre para anotaciones
externalCodestringNoCódigo interno del atributo

Campos del Array optins (Opt-ins)

Información de opt-ins (LGPD/GDPR) concedidos por el fan en los sistemas legados.

json
{
  "optins": [
    {
      "optinCode": "string",
      "optinDesc": "string",
      "optinDate": "2025-09-20T18:41:31.219Z",
      "optinCancelDate": "2025-09-20T18:41:31.219Z"
    }
  ]
}
CampoTipoObligatorioDescripción
optinCodestringCódigo del opt-in (ej: USOPRIVACIDAD)
optinDescstringDescripción del opt-in
optinDatedatetimeFecha y hora de aceptación
optinCancelDatedatetimeNoFecha y hora de cancelación

Campos del Array attributes (Atributos del Usuario)

Atributos personalizados del fan para visualización customizada en Fanbox.

Atención

Es necesario solicitar internamente la configuración de los atributos antes de usar.

json
{
  "attributes": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
CampoTipoObligatorioDescripción
keystringClave de identificación del atributo
valuestringValor del atributo

Campos de Contraseña (Creación de Cuenta SSO)

Creación de Cuenta SSO

Si envía el campo pwd o pwdhash, el sistema creará automáticamente una cuenta en el SSO (Single Sign-On) para el usuario. Esto permite que el usuario inicie sesión en la plataforma usando sus credenciales.

CampoTipoObligatorioDescripción
pwdstringNoContraseña en texto plano para creación de cuenta
pwdhashstringNoContraseña encriptada para creación de cuenta

Importante

  • Use pwd para enviar contraseña en texto plano (el sistema hará el hash)
  • Use pwdhash si ya tiene la contraseña en formato hash
  • Nunca envíe ambos - elija uno u otro
  • Si ninguno es enviado, el usuario será creado sin cuenta de login

Ejemplo Completo - Registro Simple

json
{
  "systemId": 0,
  "data": [
    {
      "data": {
        "identity": 0,
        "name1": "Juan García",
        "gender": "M",
        "socialName": "Juan",
        "birthday": 15,
        "birthMonth": 8,
        "birthYear": 1990,
        "nationalityIso3": "BRA"
      },
      "numbers": [
        {
          "numberType": 1,
          "number": "12345678900",
          "verified": 1
        },
        {
          "numberType": 4,
          "number": "juan@ejemplo.com",
          "verified": 1
        }
      ],
      "sysValues": [
        {
          "key": "CODIGO_SOCIO",
          "value": "SOC-123456"
        }
      ],
      "addresses": {
        "addressType": 1,
        "add1": "Calle Ejemplo",
        "add2": "Depto 101",
        "number": 123,
        "add3": "Centro",
        "zip": "01234567",
        "city": "São Paulo",
        "state": "SP",
        "iso3": "BRA"
      }
    }
  ]
}

Ejemplo Completo - Registro con Plan de Socio y Cuenta SSO

json
{
  "systemId": 0,
  "data": [
    {
      "data": {
        "identity": 0,
        "name1": "María Santos",
        "gender": "F",
        "birthday": 20,
        "birthMonth": 3,
        "birthYear": 1985,
        "nationalityIso3": "BRA"
      },
      "numbers": [
        {
          "numberType": 1,
          "number": "98765432100",
          "verified": 1
        },
        {
          "numberType": 4,
          "number": "maria@ejemplo.com",
          "verified": 1
        }
      ],
      "addresses": {
        "addressType": 1,
        "add1": "Av. Principal",
        "number": 500,
        "add3": "Jardín América",
        "zip": "04567890",
        "city": "São Paulo",
        "state": "SP",
        "iso3": "BRA"
      },
      "memberships": [
        {
          "externalId": "CONTRATO-2025-001",
          "status": "Activo",
          "data": "2025-01-15T10:00:00.000Z",
          "codigoCliente": "98765432100",
          "plano": "Plan Premium Anual",
          "planoCode": "PREMIUM-ANUAL",
          "parcelas": 12,
          "validade": "2026-01-15T10:00:00.000Z",
          "origem": "Website",
          "ativacao": "2025-01-15T10:00:00.000Z",
          "tipoVigencia": "Anual",
          "formaPagamento": "Tarjeta de Crédito"
        }
      ],
      "optins": [
        {
          "optinCode": "NEWSLETTER",
          "optinDesc": "Acepto recibir newsletters",
          "optinDate": "2025-01-15T10:00:00.000Z"
        },
        {
          "optinCode": "SMS",
          "optinDesc": "Acepto recibir SMS promocionales",
          "optinDate": "2025-01-15T10:00:00.000Z"
        }
      ],
      "pwd": "contraseña123"
    }
  ]
}

Respuesta de Éxito

Status: 200 OK

json
{
  "header": {
    "codigo": 1,
    "msg": "Ok"
  },
  "data": {
    "resume": {
      "total": 1,
      "success": 1,
      "fail": 0,
      "status": "SUCCESS"
    },
    "items": [
      {
        "userId": 6011883,
        "success": true,
        "cpf": "12345678900",
        "email": "juan@ejemplo.com",
        "alternativeNumber": null,
        "messageError": null,
        "account": {
          "success": true,
          "login": "12345678900",
          "messageError": null
        }
      }
    ]
  }
}

Campos de la Respuesta

Resume

CampoTipoDescripción
totalnumberTotal de usuarios procesados
successnumberTotal procesados con éxito
failnumberTotal con error
statusstringEstado general: SUCCESS, PARTIAL_SUCCESS o FAILURE

Items

CampoTipoDescripción
userIdnumberID del usuario creado (0 si no fue creado)
successbooleanÉxito en el procesamiento
cpfstringCPF del usuario
emailstringEmail del usuario
alternativeNumberstring/nullCódigo alternativo
messageErrorstring/nullMensaje de error
accountobjectDetalles de la cuenta SSO creada

Account (cuando pwd o pwdhash es enviado)

CampoTipoDescripción
successbooleanSi la cuenta SSO fue creada con éxito
loginstringLogin de la cuenta (generalmente CPF)
messageErrorstring/nullMensaje de error en la creación de la cuenta

Ejemplo de Implementación

javascript
async function procesarRegistrosLote(datos, accessToken) {
  const response = await fetch('{connect-produccion}/api/v2/IF_ID_Batch', {
    method: 'POST',
    headers: {
      'AccessToken': accessToken,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(datos)
  });

  if (!response.ok) {
    throw new Error(`Error ${response.status}: ${response.statusText}`);
  }

  return await response.json();
}

const datos = {
  systemId: 0,
  data: [
    {
      data: {
        identity: 0,
        name1: "Juan García",
        birthday: 15,
        birthMonth: 8,
        birthYear: 1990
      },
      numbers: [
        { numberType: 1, number: "12345678900", verified: 1 },
        { numberType: 4, number: "juan@ejemplo.com", verified: 1 }
      ],
      pwd: "contraseña123"
    }
  ]
};

procesarRegistrosLote(datos, accessToken)
  .then(result => console.log(result))
  .catch(error => console.error(error));

Tablas Auxiliares

Para campos como iso3 (país) y nationalityIso3 (nacionalidad), consulte la página de Tablas Auxiliares con la lista completa de códigos ISO3 de países.

Documentación de la API Fanbase