Skip to main content
POST
https://service.thatsme.com.br
/
api
/
v1.0
/
invitations
Emitir Certificados
curl --request POST \
  --url https://service.thatsme.com.br/api/v1.0/invitations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "event_id": "<string>",
  "badge_id": "<string>",
  "recipient": {},
  "recipient_name": "<string>",
  "recipient_email": "<string>",
  "recipient_number": "<string>",
  "reason": "<string>"
}
'
{
  "invitation_id": "invite_123",
  "message": "Certificado emitido com sucesso",
  "created_at": "2024-02-01T10:30:00Z"
}
Emite um ou mais certificados, vinculados a um evento e a uma badge, para um ou vários destinatários. O certificado é criado com status PENDING e se torna ACCEPTED após o destinatário aceitar.
Toda emissão está vinculada a um evento e a uma badge.
  • Use GET /api/v1.0/events para localizar o event_id
  • Use GET /api/v1.0/badges para localizar o badge_id

Parâmetros do corpo (body)

event_id
string
required
ID do evento vinculado à emissão.
badge_id
string
required
ID do badge utilizado na emissão.
recipient
object
Destinatário único ou array de destinatários. Quando informado, recipient_name e recipient_email no nível raiz não são obrigatórios.Cada item pode conter: recipient_name (obrigatório), recipient_email (obrigatório), recipient_number (opcional, E.164), reason (opcional).
recipient_name
string
Nome completo do destinatário. Obrigatório quando recipient não for informado.
recipient_email
string
E-mail do destinatário que receberá o convite. Obrigatório quando recipient não for informado.
recipient_number
string
Número do destinatário para notificações por SMS ou WhatsApp (formato E.164). Exemplo: +5531987654321.
reason
string
Motivo pelo qual o destinatário está recebendo o certificado. Opcional. Quando usado com recipient, pode ser definido por destinatário dentro de cada item.
É obrigatório informar recipient (objeto ou array) ou o par recipient_name e recipient_email. A emissão de múltiplos certificados consome créditos por destinatário.

Resposta

Emissão de um único destinatário (sem erros):
invitation_id
string
Identificador único do certificado/convite criado.
message
string
Mensagem de confirmação da emissão.
created_at
string
Data e hora da emissão (ISO 8601).
Emissão de múltiplos destinatários ou com erros parciais:
invitations
array
Lista dos certificados emitidos com sucesso. Cada item contém invitation_id e created_at.
message
string
Mensagem de confirmação (inclui quantidade de sucessos e, se houver, de falhas).
total
number
Quantidade de certificados emitidos com sucesso.
success_count
number
Quantidade de certificados emitidos com sucesso.
errors
array
Quando há falhas por destinatário: lista com recipient_email e error por item.
error_count
number
Quantidade de destinatários que falharam (presente quando errors existe).
Por privacidade, a resposta não retorna dados pessoais do destinatário. O acompanhamento do aceite deve ser feito via GET /api/v1.0/invitations.

Exemplo de resposta (um destinatário)

{
  "invitation_id": "invite_123",
  "message": "Certificado emitido com sucesso",
  "created_at": "2024-02-01T10:30:00Z"
}

Exemplo de resposta (múltiplos destinatários)

{
  "invitations": [
    { "invitation_id": "invite_123", "created_at": "2024-02-01T10:30:00Z" },
    { "invitation_id": "invite_456", "created_at": "2024-02-01T10:31:00Z" }
  ],
  "message": "2 certificado(s) emitido(s) com sucesso",
  "total": 2,
  "success_count": 2
}

Exemplo de resposta (sucesso parcial)

{
  "invitations": [
    { "invitation_id": "invite_123", "created_at": "2024-02-01T10:30:00Z" }
  ],
  "message": "1 certificado(s) emitido(s) com sucesso. 1 destinatário(s) falharam.",
  "total": 1,
  "success_count": 1,
  "errors": [
    { "recipient_email": "duplicado@email.com", "error": "Já existe uma emissão para este destinatário neste evento com esta badge e motivo." }
  ],
  "error_count": 1
}

Erros comuns

Evento inexistente, finalizado ou não pertencente ao emissor

{
  "error": "EVENT_NOT_FOUND",
  "message": "Evento não encontrado, finalizado ou não pertence ao emissor autenticado."
}

Badge inexistente ou não pertencente ao emissor

{
  "error": "BADGE_NOT_FOUND",
  "message": "Badge não encontrado ou não pertence ao emissor autenticado."
}

Certificado já emitido para o mesmo destinatário

{
  "error": "INVITATION_ALREADY_EXISTS",
  "message": "Já existe uma emissão para este destinatário neste evento com esta badge e motivo."
}

Dados inválidos ou ausentes

{
  "error": "VALIDATION_ERROR",
  "message": "Campos obrigatórios ausentes: recipient ou recipient_name/recipient_email são obrigatórios."
}

Erro ao processar todos os destinatários

{
  "error": "PROCESSING_ERROR",
  "message": "Erro ao processar todos os destinatários",
  "errors": [
    { "recipient_email": "email@exemplo.com", "error": "Mensagem do erro" }
  ]
}

Saldo insuficiente para emissão

{
  "error": "INSUFFICIENT_BALANCE",
  "message": "Saldo insuficiente para realizar a emissão de N certificado(s)."
}
A emissão consome créditos no momento da criação do certificado.
Caso o saldo seja insuficiente, a emissão não é realizada.