IF Transactions
Endpoint para adicionar transações do fã ao sistema (compras, devoluções, cupons).
📥 Collection Postman
URLs
| Método | URL | Ação | Descrição |
|---|---|---|---|
| POST | /api/IF_Transactions | Cadastrar | Adiciona transações do fã ao sistema |
Produção:
{connect-producao}/api/IF_TransactionsHomologação:
{connect-homologacao}/api/IF_TransactionsAutenticaçã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}Adicionar Transações
Requisição
Endpoint: POST {connect-producao}/api/IF_Transactions
Headers:
AccessToken: {access_token}
Content-Type: application/jsonEstrutura do Body
O body é um array de objetos, onde cada objeto representa um comprador e suas transações.
json
[
{
"userCode": "string",
"userCodeType": 0,
"system": 0,
"name": "string",
"email": "string",
"emailVerified": true,
"cpf": "string",
"gender": "string",
"birthday": "string",
"mobile": "string",
"phone": "string",
"addr1": "string",
"addr2": "string",
"addrNumber": 0,
"addr3": "string",
"addrCity": "string",
"addrState": "string",
"addrZip": "string",
"addrCountry": "string",
"transactions": [ ... ]
}
]Campos do Comprador
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
userCode | string | Sim | CPF ou Email do comprador (usado para identificação) |
userCodeType | number | Sim | Tipo do código: 1 (CPF), 4 (Email) |
system | number | Sim | Sistema de origem (a ser definido pela Fanbase) |
name | string | Sim | Nome do comprador |
email | string | Sim | Email do comprador |
emailVerified | boolean | Sim | Se o email foi previamente verificado |
cpf | string | Sim | CPF do comprador (sem formatação) |
gender | string | Não | Gênero: M / F / O / null |
birthday | string | Não | Data de nascimento (formato DD/MM/YYYY) |
mobile | string | Não | Telefone celular |
phone | string | Não | Telefone alternativo |
addr1 | string | Não | Rua |
addr2 | string | Não | Complemento |
addrNumber | number | Não | Número da casa |
addr3 | string | Não | Bairro |
addrCity | string | Não | Cidade |
addrState | string | Não | Estado (2 dígitos: SP/DF/RJ/etc) |
addrZip | string | Não | CEP |
addrCountry | string | Não | Código numérico do país (ver tabela auxiliar de Countries) |
Campos das Transações
json
{
"transactions": [
{
"externalCode": "string",
"date": "2025-09-20T18:41:31.219Z",
"type": 0,
"productType": 0,
"productDesc": "string",
"productPrice": 0,
"productExternalCode": "string",
"qty": 0,
"value": 0,
"channel": "string",
"deliveryMode": "string",
"priceType": "string",
"cupon": "string",
"paymentMode": "string",
"complement": "string",
"discount": "string",
"discountValue": 0
}
]
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
externalCode | string | Sim | Código único da transação no sistema de origem |
date | datetime | Sim | Data da transação (ISO 8601) |
type | number | Sim | Tipo da transação (ver tabela abaixo) |
productType | number | Sim | Tipo de produto (ver tabela abaixo) |
productDesc | string | Sim | Descrição do produto |
productExternalCode | string | Sim | Código do produto no sistema de origem |
qty | number | Sim | Quantidade |
value | number | Sim | Valor unitário do produto |
channel | string | Sim | Canal de venda (ex: Nome da loja) |
deliveryMode | string | Não | Modo de entrega |
priceType | string | Não | Tipo de preço |
cupon | string | Não | Código do cupom de desconto |
paymentMode | string | Sim | Modo de pagamento (Cartão de crédito, Pix, etc) |
complement | string | Não | Dados complementares (aceita JSON string). Ex: número da linha do pedido |
discount | string | Não | Motivo do desconto |
discountValue | number | Não | Valor do desconto |
Tipos de Transação (type)
| Código | Tipo |
|---|---|
1 | Venda |
2 | Devolução |
161 | Cupom usado |
162 | Cupom não usado |
Tipos de Produto (productType)
| Código | Tipo |
|---|---|
1 | Produto |
2 | Serviço |
Exemplo Completo
json
[
{
"userCode": "12345678900",
"userCodeType": 1,
"system": 0,
"name": "João da Silva",
"email": "joao@exemplo.com",
"emailVerified": true,
"cpf": "12345678900",
"gender": "M",
"birthday": "15/08/1990",
"mobile": "+5511999999999",
"phone": "+5511888888888",
"addr1": "Rua Exemplo",
"addr2": "Apto 101",
"addrNumber": 123,
"addr3": "Centro",
"addrCity": "São Paulo",
"addrState": "SP",
"addrZip": "01234567",
"addrCountry": "31",
"transactions": [
{
"externalCode": "PEDIDO-2025-001",
"date": "2025-09-20T18:41:31.219Z",
"type": 1,
"productType": 1,
"productDesc": "Camisa Oficial 2025",
"productExternalCode": "PROD-CAM-001",
"qty": 2,
"value": 299.90,
"channel": "Loja Online",
"deliveryMode": "Entrega",
"priceType": "Normal",
"cupon": "DESCONTO10",
"paymentMode": "Cartão de Crédito",
"complement": "{\"linha\": 1}",
"discount": "Cupom de desconto",
"discountValue": 29.99
},
{
"externalCode": "PEDIDO-2025-001",
"date": "2025-09-20T18:41:31.219Z",
"type": 1,
"productType": 1,
"productDesc": "Boné Oficial",
"productExternalCode": "PROD-BON-001",
"qty": 1,
"value": 89.90,
"channel": "Loja Online",
"deliveryMode": "Entrega",
"priceType": "Normal",
"paymentMode": "Cartão de Crédito",
"complement": "{\"linha\": 2}"
}
]
}
]Pedidos com múltiplos itens
Quando um pedido tiver mais de um item, envie cada item como uma transação separada dentro do array transactions, usando o campo complement para identificar a linha do pedido (ex: {"linha": 1}, {"linha": 2}).
Resposta de Sucesso
Status: 200 OK
json
{
"header": {
"codigo": 1,
"msg": "Transações processadas com sucesso"
},
"data": {
"total": 1,
"processadas": 2,
"erros": 0
}
}Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
total | number | Total de compradores processados |
processadas | number | Total de transações processadas |
erros | number | Total de transações com erro |
Exemplo de Implementação
javascript
async function adicionarTransacoes(transacoes, accessToken) {
const response = await fetch('{connect-producao}/api/IF_Transactions', {
method: 'POST',
headers: {
'AccessToken': accessToken,
'Content-Type': 'application/json'
},
body: JSON.stringify(transacoes)
});
if (!response.ok) {
throw new Error(`Erro ${response.status}: ${response.statusText}`);
}
return await response.json();
}
// Exemplo de uso
const transacoes = [
{
userCode: "12345678900",
userCodeType: 1,
system: 0, // Será definido pela Fanbase
name: "João da Silva",
email: "joao@exemplo.com",
emailVerified: true,
cpf: "12345678900",
transactions: [
{
externalCode: "PEDIDO-001",
date: new Date().toISOString(),
type: 1, // Venda
productType: 1, // Produto
productDesc: "Camisa Oficial",
productExternalCode: "CAM-001",
qty: 1,
value: 299.90,
channel: "Loja Online",
paymentMode: "Cartão de Crédito"
}
]
}
];
adicionarTransacoes(transacoes, accessToken)
.then(result => console.log(result))
.catch(error => console.error(error));Casos de Uso Comuns
Registrar Venda de E-commerce
json
{
"type": 1,
"productType": 1,
"channel": "E-commerce",
"paymentMode": "Cartão de Crédito"
}Registrar Devolução
json
{
"type": 2,
"productType": 1,
"channel": "E-commerce"
}Registrar Uso de Cupom
json
{
"type": 161,
"cupon": "DESCONTO20",
"discountValue": 50.00
}