Confirma e enfileira a importação
POST/api/members/imports/{id}/start
- Auth
- Requiere token
- Quién puede:
- moderator
- X-CommunityId
X-CommunityIdEnvía el X-CommunityId de la comunidad en la que ocurre la operación.
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
| Nombre | Dónde | Tipo | Descripción |
|---|---|---|---|
idobligatorio | path | string (uuid) |
Headers
| Nombre | Tipo | Descripción |
|---|---|---|
X-CommunityIdopcional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Cuerpo de la solicitud application/json
| Nombre | Tipo | Descripción |
|---|---|---|
sheetopcional | string | |
headerRowopcional | integer | ≥ 1, ≤ 30 |
delimiteropcional | string | |
encodingopcional | string | |
mappingobligatorio | object[] | |
mapping[].columnobligatorio | integer | O `index` da coluna, como veio na análise. |
mapping[].targetobligatorio | ignore | email | firstName | lastName | phone | tags | groups | consent | field | newField | |
mapping[].fieldKeyopcional | string | Com `field`: a `key` de um campo customizado existente. |
mapping[].newFieldopcional | object | Com `newField`: o campo criado na hora, sempre opcional. |
mapping[].newField.labelopcional | string | max 120 |
mapping[].newField.typeopcional | TEXT | NUMBER | DATE | SELECT | BOOLEAN | |
optionsobligatorio | object | |
options.roleopcional | member | moderator | |
options.groupIdsopcional | string (uuid)[] | |
options.tagsopcional | string[] | |
options.originopcional | string | De onde veio a lista. Obrigatória no start; texto simples, sem link; vai no e-mail. · max 150 |
options.consentValuesopcional | string[] | Com uma coluna `consent`: os valores que contam como sim. |
options.consentDeclarationopcional | boolean | Sem coluna `consent`: a declaração aceita (obrigatória no start). |
Respuestas
| Código | Descripción |
|---|---|
202 | Enfileirada. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado. |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
409 | Já confirmada ou abandonada. |
429 | Outra planilha está sendo lida nesta comunidade (uma por vez) ou no servidor. Tente de novo em instantes (`reason: busy`). |
Ejemplo con 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":{}}'