> ## 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.

# Atualizar ativação de país por entidade

> Atualiza o status de ativação por país para um merchant. Idempotente se o status não mudar; emite webhook entity.country_activation_changed ao alterar.

## Overview

Define o status operacional de ativação para um país em uma entidade merchant. **Não** altera o perfil da entidade — use [`GET /entities/{id}`](/pt/api-reference/entities/get) para reconsultar o dossiê após ativar.

Em cada mudança real de status, a Gu1 emite o webhook [`entity.country_activation_changed`](/pt/webhooks/events/entity-events) para endpoints inscritos. Transições entre status são **livres** (qualquer status pode ir para qualquer outro).

Valores suportados de `countryCode`: **AR**, **BR**, **CL**, **CO**, **MX**, **US** (case-insensitive).

## Endpoint

```
PATCH http://api.gu1.ai/entities/{id}/country-activations/{countryCode}
```

## Autenticação

Requer `entities:edit` (fallback legacy: `entities:write`).

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Path Parameters

<ParamField path="id" type="string" required>
  UUID da entidade (merchant).
</ParamField>

<ParamField path="countryCode" type="string" required>
  País ISO 3166-1 alpha-2 a atualizar (`AR`, `BR`, `CL`, `CO`, `MX`, `US`).
</ParamField>

## Request Body

<ParamField body="status" type="string" required>
  Um de: `deactivated`, `activation_requested`, `activation_in_progress`, `activated`.
</ParamField>

## Resposta

| Campo                 | Tipo           | Descrição                                                        |
| --------------------- | -------------- | ---------------------------------------------------------------- |
| `data.entityId`       | string         | UUID da entidade                                                 |
| `data.countryCode`    | string         | Código de país normalizado                                       |
| `data.status`         | string         | Novo status                                                      |
| `data.previousStatus` | string         | Status antes desta chamada                                       |
| `data.changed`        | boolean        | `false` se o status já era o solicitado (sem webhook)            |
| `data.activatedAt`    | string \| null | Timestamp da última vez em `activated`                           |
| `data.deactivatedAt`  | string \| null | Timestamp da última vez em `deactivated`                         |
| `data.updatedAt`      | string \| null | Timestamp da última alteração                                    |
| `data.countries`      | array          | Snapshot completo dos seis países do allowlist após esta chamada |

## Exemplo

```bash theme={null}
curl -X PATCH "https://api.gu1.ai/entities/550e8400-e29b-41d4-a716-446655440000/country-activations/CO" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"activation_requested"}'
```

```json theme={null}
{
  "success": true,
  "data": {
    "entityId": "550e8400-e29b-41d4-a716-446655440000",
    "countryCode": "CO",
    "status": "activation_requested",
    "previousStatus": "deactivated",
    "changed": true,
    "activatedAt": null,
    "deactivatedAt": null,
    "updatedAt": "2026-07-03T15:00:00.000Z",
    "countries": [
      { "countryCode": "AR", "status": "deactivated", "activatedAt": null, "deactivatedAt": null, "updatedAt": null },
      { "countryCode": "CO", "status": "activation_requested", "activatedAt": null, "deactivatedAt": null, "updatedAt": "2026-07-03T15:00:00.000Z" },
      { "countryCode": "MX", "status": "activated", "activatedAt": "2026-07-03T14:00:00.000Z", "deactivatedAt": null, "updatedAt": "2026-07-03T14:00:00.000Z" }
    ]
  }
}
```

## Payload do webhook (ao alterar)

Quando `changed` é `true`, inscritos recebem:

```json theme={null}
{
  "event": "entity.country_activation_changed",
  "timestamp": "2026-07-03T15:00:00.000Z",
  "organizationId": "org-uuid",
  "payload": {
    "entity": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "externalId": "merchant_123",
      "name": "Acme Corp",
      "type": "company",
      "countryCode": "US"
    },
    "countryCode": "CO",
    "status": "activation_requested",
    "previousStatus": "deactivated",
    "activeCountryCodes": ["MX"],
    "countries": [
      { "countryCode": "AR", "status": "deactivated" },
      { "countryCode": "CO", "status": "activation_requested" },
      { "countryCode": "MX", "status": "activated" }
    ],
    "timeline": [
      {
        "previousStatus": "deactivated",
        "status": "activation_requested",
        "changedAt": "2026-07-03T15:00:00.000Z"
      }
    ],
    "changedAt": "2026-07-03T15:00:00.000Z"
  }
}
```

## Erros

| HTTP | Code                       | Quando                                     |
| ---- | -------------------------- | ------------------------------------------ |
| 400  | `UNSUPPORTED_COUNTRY_CODE` | País fora do allowlist v1                  |
| 404  | `ENTITY_NOT_FOUND`         | A entidade não existe na organização atual |
