Axuz Developers

POST /accounts

Cria uma conta e seeda as 5 folders sistêmicas

  • Access: Team member
  • Service: https://mail-api.axuz.net

Accepted authentication

  • sessionCookie — Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.
  • bearerSession — JWT de acesso da sessão em `Authorization: Bearer`.

Cria a row em mail_accounts e as folders inbox/sent/drafts/ archive/trash na mesma tx. Rollback total se qualquer folder falhar (invariante: toda account tem as 5 folders).

user_id vem SEMPRE do JWT — nunca do payload. Quando team_id é informado, ele é validado contra memberships (status active) antes de qualquer escrita: quem não é membro ativo do team recebe 403 e nada é gravado (H-002, fail-closed — falha na checagem vira 500, nunca permissão). team_id ausente cria conta pessoal, sem checagem de tenant.

Parameters

No parameters.

Request body

application/json · Required

NameTypeRequiredDescription
emailstring<email>yes
display_namestringno
signature_htmlstringno
team_idstring<uuid> | nullno
{
  "email": "pessoa@example.test",
  "display_name": "string",
  "signature_html": "string",
  "team_id": "00000000-0000-0000-0000-000000000000"
}

Responses

201

Conta criada

NameTypeRequiredDescription
idstring<uuid>yes
user_idstring<uuid>yes
team_idoneOfno
emailstring<email>yes
display_namestringno
signature_htmlstringno
created_atstring<date-time>yes

400

Email inválido ou payload malformado

401

Sessão inválida

403

team_id informado não corresponde a um team do qual o usuário é membro ativo

429

Limite de requisições excedido.

NameTypeRequiredDescription
errorstringyes

500

Falha na checagem de membership (fail-closed) ou erro de banco

Examples

"Try it" is turned off in this reference. Use the examples with your test credential.

curl

curl -sS -X POST 'https://mail-api.axuz.net/accounts' \
  -H "Authorization: Bearer $AXUZ_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email":"pessoa@example.test","display_name":"string","signature_html":"string","team_id":"00000000-0000-0000-0000-000000000000"}'

Node.js

const res = await fetch("https://mail-api.axuz.net/accounts", {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "email": "pessoa@example.test",
    "display_name": "string",
    "signature_html": "string",
    "team_id": "00000000-0000-0000-0000-000000000000"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "POST",
    "https://mail-api.axuz.net/accounts",
    headers={
        "Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
    },
    json={
        "email": "pessoa@example.test",
        "display_name": "string",
        "signature_html": "string",
        "team_id": "00000000-0000-0000-0000-000000000000",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())