Skip to main content
PATCH
/
transactions
/
{id}
Atualizar transação
curl --request PATCH \
  --url http://api.gu1.ai/transactions/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "metadata": {},
  "deviceDetails": {},
  "channel": {},
  "reason": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt

Use this file to discover all available pages before exploring further.

Visão geral

Use este endpoint para enriquecer ou corrigir uma transação após a criação: metadata, deviceDetails, channel ou reason. Não altera valor, status, partes ou outros campos centrais (para status use Alterar status).
Merge superficial em metadata e deviceDetails: apenas as chaves enviadas são sobrescritas; as demais permanecem. Objetos aninhados (ex.: metadata.tags) são substituídos por completo se você enviar essa chave. Para limpar channel, envie "channel": null.

Endpoints

MétodoEndpointQuando
Por IDPATCH /transactions/{id}Você tem o UUID interno da gu1
Por external IDPATCH /transactions/external/{externalId}Só tem o externalId do create
Mesmo body e mesma resposta nos dois.
PATCH https://api.gu1.ai/transactions/{id}
PATCH https://api.gu1.ai/transactions/external/{externalId}

Autenticação

Requer transactions:edit:
Authorization: Bearer YOUR_API_KEY

Parâmetros de consulta

executeRules
boolean
default:"false"
Com true, reexecuta regras KYT com trigger transaction_updated após o patch. Padrão: false.

Body

Pelo menos um campo é obrigatório.
metadata
object
Merge superficial sobre o metadata existente. Chaves omitidas não são removidas.
deviceDetails
object
Merge superficial sobre deviceDetails existente (coluna device_details). Para incluir ou corrigir contexto do dispositivo após o create: ipAddress, deviceId, osName, manufacturer, model, flags (isVpn, isEmulator, …). Mesmo esquema de Criar transação. Regras usam caminhos como deviceDetails.ipAddress.
channel
string | null
Canal da transação (máx. 50 caracteres). null para limpar.
reason
string
Motivo de resultado/recusa. Ver Enum reason.

Exemplo

{
  "metadata": {
    "clientReference": "INV-2026-0042",
    "tags": { "segment": "retail" }
  },
  "deviceDetails": {
    "ipAddress": "203.0.113.10",
    "deviceId": "dev-abc-123",
    "osName": "iOS",
    "osVersion": "17.0",
    "manufacturer": "Apple",
    "model": "iPhone"
  },
  "channel": "mobile",
  "reason": "FRAUD_SUSPECTED"
}

Resposta (200 OK)

Retorna success, o subconjunto atualizado em transaction (id, externalId, channel, reason, metadata, deviceDetails, updatedAt) e opcionalmente rulesExecutionSummary se executeRules=true.

Erros

StatusCódigoQuando
400VALIDATION_ERRORBody inválido
400NO_CHANGESValores já iguais ao armazenado
404NOT_FOUNDTransação inexistente na org
403Sem permissão transactions:edit

Efeitos colaterais

  • Auditoria: evento transaction_updated na linha do tempo (changes pode incluir metadata, deviceDetails, channel, reason).
  • Webhook: transaction.updated (inclui mapa changes e deviceDetails atual quando aplicável).
  • Regras: somente com executeRules=true.

Exemplo

curl -X PATCH "https://api.gu1.ai/transactions/external/tx_12345" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"metadata":{"note":"Corrigido após callback"},"channel":"api"}'

Relacionado

Obter transação

Ler a transação completa

Alterar status

Atualizar status

Criar transação

Metadata na criação

Enum reason

Valores de reason