Skip to content

Confirma e enfileira a importação

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

Auth
Requires a token
Who can call it:
moderator
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

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.

Parameters

NameInTypeDescription
idrequiredpathstring (uuid)

Headers

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

Request body application/json

NameTypeDescription
sheetoptionalstring
headerRowoptionalinteger≥ 1, ≤ 30
delimiteroptionalstring
encodingoptionalstring
mappingrequiredobject[]
mapping[].columnrequiredintegerO `index` da coluna, como veio na análise.
mapping[].targetrequiredignore | email | firstName | lastName | phone | tags | groups | consent | field | newField
mapping[].fieldKeyoptionalstringCom `field`: a `key` de um campo customizado existente.
mapping[].newFieldoptionalobjectCom `newField`: o campo criado na hora, sempre opcional.
mapping[].newField.labeloptionalstringmax 120
mapping[].newField.typeoptionalTEXT | NUMBER | DATE | SELECT | BOOLEAN
optionsrequiredobject
options.roleoptionalmember | moderator
options.groupIdsoptionalstring (uuid)[]
options.tagsoptionalstring[]
options.originoptionalstringDe onde veio a lista. Obrigatória no start; texto simples, sem link; vai no e-mail. · max 150
options.consentValuesoptionalstring[]Com uma coluna `consent`: os valores que contam como sim.
options.consentDeclarationoptionalbooleanSem coluna `consent`: a declaração aceita (obrigatória no start).

Responses

StatusDescription
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`).

curl example

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":{}}'