Pular para o conteúdo

Confirma e enfileira a importação

POST/api/members/imports/{id}/start

Auth
Exige token
Quem pode:
moderator
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

Owner e admin. Recebe o mesmo corpo do preview, com `mapping` e `options` obrigatórios: `role` só `member` ou `moderator`; `origin` obrigatória (até 150 caracteres, texto simples, sem link; vai no e-mail, escapada); com coluna `consent`, `consentValues` não vazio; sem ela, `consentDeclaration: true`. O clique é a confirmação: grupos e tags que faltam (da coluna Grupos/Tags) e os campos `newField` são criados no processamento, sem outra etapa. Responde **202** antes de qualquer e-mail: o processamento é assíncrono (fila, lotes de 200 linhas, retomável). Cada pessoa nova recebe o convite da importação (conta nova: link de definir senha, 7 dias; conta existente: "você foi adicionado(a)"), com a origem e o link "Agradeço o convite, mas não quero participar"; quem já era membro não recebe. Os envios não contam na cota de campanhas. Ao terminar, quem importou recebe um e-mail com o resumo. Acompanhe em `GET /api/members/imports/{id}`. **Comunidade suspensa pela Memberfy** (F-86): 403 com `errors`, `code: COMMUNITY_SUSPENDED` e o motivo (em `message` e em `reason`) para owner, admin, moderador e financeiro; nada é criado nem enviado. Suspensa durante o processamento, a importação para no próximo lote: vira `INTERRUPTED`, as linhas restantes não criam perfil, nenhum convite a mais sai e quem importou recebe o resumo dizendo que foi interrompida pela suspensão.

Parâmetros

NomeOndeTipoDescrição
idobrigatóriopathstring (uuid)

Headers

NomeTipoDescrição
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corpo da requisição application/json

NomeTipoDescrição
sheetopcionalstring
headerRowopcionalinteger≥ 1, ≤ 30
delimiteropcionalstring
encodingopcionalstring
mappingobrigatórioobject[]
mapping[].columnobrigatóriointegerO `index` da coluna, como veio na análise.
mapping[].targetobrigatórioignore | email | firstName | lastName | phone | tags | groups | consent | field | newField
mapping[].fieldKeyopcionalstringCom `field`: a `key` de um campo customizado existente.
mapping[].newFieldopcionalobjectCom `newField`: o campo criado na hora, sempre opcional.
mapping[].newField.labelopcionalstringmax 120
mapping[].newField.typeopcionalTEXT | NUMBER | DATE | SELECT | BOOLEAN
optionsobrigatórioobject
options.roleopcionalmember | moderator
options.groupIdsopcionalstring (uuid)[]
options.tagsopcionalstring[]
options.originopcionalstringDe onde veio a lista. Obrigatória no start; texto simples, sem link; vai no e-mail. · max 150
options.consentValuesopcionalstring[]Com uma coluna `consent`: os valores que contam como sim.
options.consentDeclarationopcionalbooleanSem coluna `consent`: a declaração aceita (obrigatória no start).

Respostas

CódigoDescrição
202Enfileirada.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409Já confirmada ou abandonada.
429Outra planilha está sendo lida nesta comunidade (uma por vez) ou no servidor. Tente de novo em instantes (`reason: busy`).

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/members/imports/<id>/start" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"mapping":[{}],"options":{}}'