Documentation Index
Fetch the complete documentation index at: https://docs.turbofypay.com/llms.txt
Use this file to discover all available pages before exploring further.
Contrato canonico
Este recurso documenta somente o Checkout P0 de parceiros:POST /v1/checkoutsGET /v1/checkouts/:idGET /v1/checkouts
/checkout/*, /charges/*, /c/* e /product-checkouts/* nao sao o contrato publico canonico novo para parceiros.
Autenticacao canonica
Headers obrigatorios para o recurso:x-client-idx-client-secret
POST /v1/checkouts->checkout:writeGET /v1/checkouts/:id->checkout:readGET /v1/checkouts->checkout:read
Seguranca adicional no POST
Idempotencia
Idempotency-Key e obrigatorio no POST /v1/checkouts.
Compatibilidade atual: o backend tambem aceita x-idempotency-key, mas o header canonico para parceiros e Idempotency-Key.
Assinatura HMAC
NoPOST /v1/checkouts, os headers abaixo sao validados:
x-turbofy-timestampx-turbofy-signature
- Em
production, a assinatura e obrigatoria. - Fora de
production, a assinatura pode ser opcional.
Semantica publica obrigatoria
bill_*e o identificador publico do checkout.- A
urlretornada aponta para a superficie renderizada atual do frontend (/c/session/:sessionId). - Isso nao redefine a semantica publica do recurso
/v1/checkouts.
Modelo publico de resposta
Envelope padrao do recurso:GET /v1/checkouts, alem do envelope, existe paginacao minima:
Mapeamento do DTO publico (backend -> contrato)
Campos retornados nodata do checkout:
id:bill_${session.id}url:${FRONTEND_URL}/c/session/${session.id}amount:charge.amountCentspaidAmount:charge.amountCentsquandocharge.paidAtexiste, senaonullitems:session.metadata.publicContract.itemsstatus: status publico mapeado decharge.statusfrequency: sempreONE_TIMEno P0coupons: sempre[]no P0devMode: semprefalseno P0customerId: semprenullno P0returnUrl:session.returnUrlcompletionUrl:session.metadata.publicContract.completionUrlreceiptUrl: semprenullno P0metadata:session.metadata.publicContract.publicMetadata ?? {}createdAt:session.createdAtupdatedAt:charge.updatedAt
Erros tipados do recurso (P0)
| HTTP | code | Origem |
|---|---|---|
400 | IDEMPOTENCY_KEY_REQUIRED | Create checkout sem idempotencia. |
422 | FREQUENCY_NOT_ENABLED_YET | frequency diferente de ONE_TIME. |
422 | CUSTOMER_NOT_ENABLED_IN_P0 | customerId enviado no P0. |
422 | COUPONS_NOT_ENABLED_IN_P0 | coupons enviado no P0. |
422 | COURSE_PRICE_NOT_FOUND | Item referencia CoursePrice inexistente. |
422 | COURSE_PRICE_INACTIVE | CoursePrice inativo. |
422 | COURSE_PRICE_NOT_OWNED_BY_MERCHANT | CoursePrice fora do merchant autenticado. |
422 | COURSE_PRICE_TYPE_NOT_ENABLED_YET | CoursePrice nao e do tipo ONE_TIME. |
422 | INVALID_CHECKOUT_ID | id/after invalido para formato publico bill_*. |
404 | CHECKOUT_NOT_FOUND | Checkout nao encontrado para o merchant autenticado. |
Fora de escopo do P0
Itens abaixo nao estao habilitados no P0:frequency = MULTIPLE_PAYMENTSfrequency = SUBSCRIPTIONcustomerIdfuncionalcouponsfuncionaispayment-linkssubscriptionscustomer prefill- recorrencia