POST /v1/checkouts, com uma regra extra:
- Todo produto envolvido na criação (
product_id, ou produto derivado deproduct_price_id, ou cada ID emproducts[]) deve terorganization_idigual a:orgId. - Se você tentar usar um produto de outra sub-organização ou da org pai, a API responde
422com mensagem clara (não expõe dados do produto alheio).
Autenticação
JWT da organização pai, com vínculo direto para:orgId em organization_relationships.
Escopos
Pelo menos um de:web:write ou checkouts:write.
Parâmetros de path
UUID da sub-organização dona do catálogo. Os produtos do corpo devem pertencer a essa org.
Corpo
Igual a POST /v1/checkouts (campos emsnake_case no HTTP). É obrigatório fornecer um entre:
product_idproduct_price_id(produto inferido do preço)products(lista de IDs de produto; o fluxo interno usa o primeiro como principal, como no endpoint principal)
ID do produto da sub-org
:orgId.ID de preço; o produto associado deve ser da sub-org
:orgId.E-mail pré-preenchido no checkout.
Nome do comprador.
CPF/CNPJ quando aplicável.
Valor em centavos quando usar preço customizado ou bundle com
cross_sell (mesmas regras do endpoint principal).URL de retorno após sucesso.
Metadados arbitrários gravados na sessão.
Resposta
201 Created com o objeto checkout (inclui client_secret, url para abrir o fluxo, etc.), no mesmo formato que POST /v1/checkouts.
Erros
| HTTP | Motivo |
|---|---|
401 / 403 | Token ou escopo; ou pai não é pai de :orgId |
404 | Produto/preço inexistente |
422 | Produto não pertence a :orgId, ou validação de preço / cross_sell |
500 | Erro interno |
Exemplos
Checkout simples com produto e e-mail
Usando product_price_id (mesmo filho, preço explícito)
Erro esperado: produto de outra org no mesmo marketplace
SeOTHER_PRODUCT_ID for de outro filho (ou da pai), o path ainda aponta para CHILD_ORG_ID:

