Skip to content

ID Batch V2

Endpoint para processar cadastros em lote de usuários (FanID) e seus dados relacionados.

📥 Collection Postman

Baixar Collection - ID Batch V2

URLs

MétodoURLAçãoDescrição
POST/api/v2/IF_ID_BatchCadastrarProcessa cadastros em lote de usuários e seus dados

Produção:

{connect-producao}/api/v2/IF_ID_Batch

Homologação:

{connect-homologacao}/api/v2/IF_ID_Batch

Autenticação

Todas as requisições requerem um token de acesso obtido no endpoint de Security. O token deve ser enviado no header AccessToken.

AccessToken: {seu_token}

Processar Cadastros em Lote

Requisição

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

Headers:

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

Estrutura do Body

Estrutura Principal

json
{
  "systemId": 0,
  "data": [
    {
      "data": { ... },
      "numbers": [ ... ],
      "sysValues": [ ... ],
      "addresses": { ... },
      "transactions": [ ... ],
      "memberships": [ ... ],
      "optins": [ ... ],
      "attributes": [ ... ],
      "pwd": "string",
      "pwdhash": "string"
    }
  ]
}
CampoTipoObrigatórioDescrição
systemIdnumberSimID do sistema de origem (será informado pela Fanbase)
dataarraySimArray de objetos com dados dos usuários

Campos do Objeto data (Dados Pessoais)

json
{
  "data": {
    "identity": 0,
    "name1": "string",
    "gender": "string",
    "socialName": "string",
    "birthday": 0,
    "birthMonth": 0,
    "birthYear": 0,
    "nationalityIso3": "string"
  }
}
CampoTipoObrigatórioDescrição
identitynumberSimManter sempre 0 para integração
name1stringSimNome completo
genderstringNãoGênero: M / F / O / null
socialNamestringNãoApelido/Nome social
birthdaynumberSimDia do nascimento (01-31)
birthMonthnumberSimMês do nascimento (01-12)
birthYearnumberSimAno do nascimento (4 dígitos)
nationalityIso3stringNãoNacionalidade, formato ISO3 (ex: BRA)

Campos do Array numbers (Documentos)

json
{
  "numbers": [
    {
      "numberType": 0,
      "number": "string",
      "verified": 0
    }
  ]
}
CampoTipoObrigatórioDescrição
numberTypenumberSimTipo do documento (ver tabela abaixo)
numberstringSimNúmero do documento (sem formatação)
verifiednumberNãoVerificado: 0 (não) ou 1 (sim)

Tipos de Documento (numberType)

CódigoTipo
1CPF
3Telefone
4Email

Campos do Array sysValues (Valores do Sistema)

Dados relevantes que não possuem ligação direta com o cadastro (ex: Número de carteirinha, Código de Sócio).

json
{
  "sysValues": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
CampoTipoObrigatórioDescrição
keystringSimChave identificadora
valuestringSimValor associado

Campos do Objeto addresses (Endereço)

json
{
  "addresses": {
    "addressType": 0,
    "add1": "string",
    "add2": "string",
    "number": 0,
    "add3": "string",
    "zip": "string",
    "city": "string",
    "state": "string",
    "iso3": "string"
  }
}
CampoTipoObrigatórioDescrição
addressTypenumberSimTipo: 1 (Principal), 2 (Alternativo)
add1stringSimRua/Logradouro
add2stringNãoComplemento
numbernumberNãoNúmero da casa
add3stringSimBairro
zipstringSimCEP
citystringSimCidade
statestringSimEstado (2 dígitos: SP/DF/RJ/etc)
iso3stringSimPaís, formato ISO3 (ex: BRA)

Campos do Array transactions (Transações) - Opcional

Classe opcional para adicionar dados de transações (compras de e-commerce, lojas, 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
    }
  ]
}
CampoTipoObrigatórioDescrição
datedatetimeSimData da transação (ISO 8601)
typenumberSimTipo da transação
productTypenumberSimTipo de produto
productDescstringSimDescrição do produto
productExternalCodestringSimCódigo do produto no sistema de origem
qtynumberSimQuantidade
valuenumberSimValor unitário
channelstringSimCanal de venda (ex: Nome da loja)
externalCodestringSimCódigo da transação no sistema de origem
deliveryModestringNãoModo de entrega
priceTypestringNãoTipo de preço
cuponstringNãoCódigo do cupom de desconto
paymentModestringSimModo de pagamento (Cartão de crédito, Pix, etc)
complementstringNãoCódigo do item no pedido (ex: item:1, item:2)
discountstringNãoMotivo do desconto
discountValuenumberNãoValor do desconto

Campos do Array memberships (Planos de Sócio) - Opcional

Classe opcional para adicionar dados de planos de sócio.

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": [ ... ]
    }
  ]
}
CampoTipoObrigatórioDescrição
externalIdstringSimCódigo do contrato no sistema de origem
statusstringSimStatus: Ativo/Inativo/Inadimplente/etc
datadatetimeSimData da contratação
cancelamentodatetimeNãoData de cancelamento (se cancelado)
codigoClientestringSimCPF ou Email do cliente
planostringSimNome do plano
planoCodestringNãoCódigo do plano no sistema de origem
complementostringNãoOutras informações do contrato
parcelasnumberNãoNúmero de parcelas pagas
validadedatetimeNãoData de validade (quando não há renovação automática)
origemstringNãoCanal de origem da contratação
ativacaodatetimeNãoData de ativação (início da vigência)
tipoVigenciastringNãoTipo de vigência: Anual, Mensal
formaPagamentostringNãoModo de pagamento (Cartão de crédito, Pix, etc)

Dependentes/Convidados (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
    }
  ]
}
CampoTipoObrigatórioDescrição
guestFanbaseIdnumberNãoID Fanbase existente (se conhecido)
externalIdstringNãoCódigo do dependente no sistema de origem
cpfstringNãoCPF do dependente
emailstringNãoEmail do dependente
celularstringNãoCelular do dependente
name1stringNãoNome completo
genderstringNãoGênero: M/F/O/null
socialNamestringNãoApelido
birthdaynumberNãoDia do nascimento (01-31)
birthMonthnumberNãoMês do nascimento (01-12)
birthYearnumberNãoAno do nascimento (4 dígitos)

Atributos do Membership (attributes)

json
{
  "attributes": [
    {
      "type": "string",
      "name": "string",
      "value": "string",
      "note": "string",
      "externalCode": "string"
    }
  ]
}
CampoTipoObrigatórioDescrição
typestringSimTipo do atributo (ex: Card)
namestringNãoNome de identificação (ex: Carteirinha)
valuestringSimValor do atributo
notestringNãoCampo livre para anotações
externalCodestringNãoCódigo interno do atributo

Campos do Array optins (Opt-ins)

Informações de opt-ins (LGPD) concedidos pelo fã nos sistemas legados.

json
{
  "optins": [
    {
      "optinCode": "string",
      "optinDesc": "string",
      "optinDate": "2025-09-20T18:41:31.219Z",
      "optinCancelDate": "2025-09-20T18:41:31.219Z"
    }
  ]
}
CampoTipoObrigatórioDescrição
optinCodestringSimCódigo do opt-in (ex: USOPRIVACIDADE)
optinDescstringSimDescrição do opt-in
optinDatedatetimeSimData e hora do aceite
optinCancelDatedatetimeNãoData e hora de cancelamento

Campos do Array attributes (Atributos do Usuário)

Atributos personalizados do fã para exibição customizada no Fanbox.

Atenção

É necessário solicitar internamente a configuração dos atributos antes de usar.

json
{
  "attributes": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
CampoTipoObrigatórioDescrição
keystringSimChave de identificação do atributo
valuestringSimValor do atributo

Campos de Senha (Criação de Conta SSO)

Criação de Conta SSO

Se você enviar o campo pwd ou pwdhash, o sistema irá criar automaticamente uma conta no SSO (Single Sign-On) para o usuário. Isso permite que o usuário faça login na plataforma usando suas credenciais.

CampoTipoObrigatórioDescrição
pwdstringNãoSenha em texto plano para criação de conta
pwdhashstringNãoSenha criptografada para criação de conta

Importante

  • Use pwd para enviar senha em texto plano (o sistema fará o hash)
  • Use pwdhash se já possui a senha em formato hash
  • Nunca envie ambos - escolha um ou outro
  • Se nenhum for enviado, o usuário será criado sem conta de login

Exemplo Completo - Cadastro Simples

json
{
  "systemId": 0,
  "data": [
    {
      "data": {
        "identity": 0,
        "name1": "João da Silva",
        "gender": "M",
        "socialName": "João",
        "birthday": 15,
        "birthMonth": 8,
        "birthYear": 1990,
        "nationalityIso3": "BRA"
      },
      "numbers": [
        {
          "numberType": 1,
          "number": "12345678900",
          "verified": 1
        },
        {
          "numberType": 4,
          "number": "joao@exemplo.com",
          "verified": 1
        }
      ],
      "sysValues": [
        {
          "key": "CODIGO_SOCIO",
          "value": "SOC-123456"
        }
      ],
      "addresses": {
        "addressType": 1,
        "add1": "Rua Exemplo",
        "add2": "Apto 101",
        "number": 123,
        "add3": "Centro",
        "zip": "01234567",
        "city": "São Paulo",
        "state": "SP",
        "iso3": "BRA"
      }
    }
  ]
}

Exemplo Completo - Cadastro com Plano de Sócio e Conta SSO

json
{
  "systemId": 0,
  "data": [
    {
      "data": {
        "identity": 0,
        "name1": "Maria Santos",
        "gender": "F",
        "birthday": 20,
        "birthMonth": 3,
        "birthYear": 1985,
        "nationalityIso3": "BRA"
      },
      "numbers": [
        {
          "numberType": 1,
          "number": "98765432100",
          "verified": 1
        },
        {
          "numberType": 4,
          "number": "maria@exemplo.com",
          "verified": 1
        }
      ],
      "addresses": {
        "addressType": 1,
        "add1": "Av. Principal",
        "number": 500,
        "add3": "Jardim América",
        "zip": "04567890",
        "city": "São Paulo",
        "state": "SP",
        "iso3": "BRA"
      },
      "memberships": [
        {
          "externalId": "CONTRATO-2025-001",
          "status": "Ativo",
          "data": "2025-01-15T10:00:00.000Z",
          "codigoCliente": "98765432100",
          "plano": "Plano 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": "Cartão de Crédito"
        }
      ],
      "optins": [
        {
          "optinCode": "NEWSLETTER",
          "optinDesc": "Aceito receber newsletters",
          "optinDate": "2025-01-15T10:00:00.000Z"
        },
        {
          "optinCode": "SMS",
          "optinDesc": "Aceito receber SMS promocionais",
          "optinDate": "2025-01-15T10:00:00.000Z"
        }
      ],
      "pwd": "senha123"
    }
  ]
}

Resposta de Sucesso

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": "joao@exemplo.com",
        "alternativeNumber": null,
        "messageError": null,
        "account": {
          "success": true,
          "login": "12345678900",
          "messageError": null
        }
      }
    ]
  }
}

Campos da Resposta

Resume

CampoTipoDescrição
totalnumberTotal de usuários processados
successnumberTotal processados com sucesso
failnumberTotal com erro
statusstringStatus geral: SUCCESS, PARTIAL_SUCCESS ou FAILURE

Items

CampoTipoDescrição
userIdnumberID do usuário criado (0 se não criado)
successbooleanSucesso no processamento
cpfstringCPF do usuário
emailstringEmail do usuário
alternativeNumberstring/nullCódigo alternativo
messageErrorstring/nullMensagem de erro
accountobjectDetalhes da conta SSO criada

Account (quando pwd ou pwdhash for enviado)

CampoTipoDescrição
successbooleanSe a conta SSO foi criada com sucesso
loginstringLogin da conta (geralmente CPF)
messageErrorstring/nullMensagem de erro na criação da conta

Exemplo de Implementação

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

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

  return await response.json();
}

const dados = {
  systemId: 0,
  data: [
    {
      data: {
        identity: 0,
        name1: "João da Silva",
        birthday: 15,
        birthMonth: 8,
        birthYear: 1990
      },
      numbers: [
        { numberType: 1, number: "12345678900", verified: 1 },
        { numberType: 4, number: "joao@exemplo.com", verified: 1 }
      ],
      pwd: "senha123"
    }
  ]
};

processarCadastrosLote(dados, accessToken)
  .then(result => console.log(result))
  .catch(error => console.error(error));

Tabelas Auxiliares

Para campos como iso3 (país) e nationalityIso3 (nacionalidade), consulte a página de Tabelas Auxiliares com a lista completa de códigos ISO3 de países.

Documentação da API Fanbase