> ## Documentation Index
> Fetch the complete documentation index at: https://scaleup-c34c4386.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PATCH /api/v1/sdk/organizations/:orgId/checkouts/:checkoutId

> Atualiza uma sessão de checkout aberta, desde que pertença à sub-organização do path; valida troca de produto/preço contra :orgId.

Atualiza checkout **aberto** (`status === open`), com o mesmo conjunto de campos opcionais que `PATCH /v1/checkouts/:id`.

Regras específicas deste path:

1. O checkout deve existir e seu produto principal deve ter `organization_id === :orgId`; caso contrário **`404`** (igual ao GET escopado).
2. Se o corpo incluir `product_id` ou `product_price_id`, o **novo** produto (resolvido a partir do preço, se for o caso) também deve pertencer a `:orgId`; senão **`422`**.

Outras regras do núcleo permanecem (ex.: não atualizar checkout já confirmado → **`403`**).

## Autenticação

**JWT da organização pai** com relação para `:orgId`.

## Escopos

Pelo menos um de: `web:write`, `checkouts:write`.

## Parâmetros de path

**orgId** `string` *required*

Sub-organização dona esperada do produto principal (e de qualquer produto novo na atualização).

**checkoutId** `string` *required*

ID da sessão.

## Corpo (parcial)

Todos os campos são opcionais; envie apenas o que mudar. Exemplos em `snake_case` no HTTP:

**customer\_email** `string`

**customer\_name** `string`

**customer\_tax\_id** `string`

**product\_id** `string`

Novo produto principal — deve ser da sub-org `:orgId`.

**product\_price\_id** `string`

Novo preço — produto associado deve ser da sub-org `:orgId`.

**amount** `integer`

Valor em centavos (quando permitido pelo fluxo de preço).

**quantity** `integer`

**discount\_id** `string`

**metadata** `object`

**success\_url** `string`

Para a lista completa, alinhe-se ao comportamento de `PATCH /v1/checkouts/:id` no ambiente que você integra.

## Resposta

`200 OK` — checkout atualizado.

## Erros

| HTTP | Motivo |
| - | - |
| `404` | Checkout não encontrado **ou** não pertence a `:orgId` no sentido do produto principal |
| `403` | Checkout não está `open` |
| `422` | Novo `product_id` / `product_price_id` não é da sub-org `:orgId` |
| `401` / `403` | Token, escopo ou vínculo pai–filho |

## Exemplos

### Atualizar e-mail e nome antes do pagamento

```bash cURL theme={null}
curl -s -X PATCH "${API_BASE:-https://api.chargefy.io/api}/v1/sdk/organizations/${CHILD_ORG_ID}/checkouts/${CHECKOUT_ID}" \
  -H "Authorization: Bearer ${PARENT_JWT}" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_email": "novo.email@cliente.com",
    "customer_name": "Maria Silva Santos"
  }' | jq .
```

```typescript SDK theme={null}
import { Chargefy } from '@chargefy/sdk'

const chargefy = new Chargefy({ accessToken: process.env.PARENT_JWT! })

const updated = await chargefy.subOrganizations.updateCheckout(
  process.env.CHILD_ORG_ID!,
  process.env.CHECKOUT_ID!,
  {
    customerEmail: 'novo.email@cliente.com',
    customerName: 'Maria Silva Santos',
  }
)

if (!updated.ok) {
  console.error(updated.error)
  process.exit(1)
}

console.log('Checkout atualizado:', updated.value.customerEmail, updated.value.customerName)
```

### Trocar para outro produto **do mesmo** filho

```bash cURL theme={null}
curl -s -X PATCH "${API_BASE}/v1/sdk/organizations/${CHILD_ORG_ID}/checkouts/${CHECKOUT_ID}" \
  -H "Authorization: Bearer ${PARENT_JWT}" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "'"${OTHER_PRODUCT_SAME_CHILD_ID}"'"}' | jq .
```

```typescript SDK theme={null}
const switchProduct = await chargefy.subOrganizations.updateCheckout(
  process.env.CHILD_ORG_ID!,
  process.env.CHECKOUT_ID!,
  { productId: process.env.OTHER_PRODUCT_SAME_CHILD_ID! }
)
```

### Metadados para conciliação no marketplace

```typescript theme={null}
await chargefy.subOrganizations.updateCheckout(childOrgId, checkoutId, {
  metadata: {
    marketplace_order_ref: 'ord_998877',
    seller_slug: 'loja-b',
  },
})
```

### Variáveis (bash)

```bash theme={null}
export API_BASE="https://api.chargefy.io/api"
export PARENT_JWT="<supabase_jwt>..."
export CHILD_ORG_ID="uuid_sub_org"
export CHECKOUT_ID="uuid_checkout"
export OTHER_PRODUCT_SAME_CHILD_ID="uuid_outro_produto_mesma_sub_org"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.