> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pilotstatus.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Sincronizar uma recarga com cartão

> Chame depois que o `stripe.confirmPayment()` resolver. Lê o PaymentIntent no Stripe e, quando está `succeeded`, credita a carteira — uma única vez: uma repetição, ou uma chamada depois que o nosso webhook do Stripe já creditou, responde `credited: false`. Nunca cobra (não é o `/confirm` do Stripe). `canceled` marca o pedido como `FAILED`. Não lê corpo. Só Proprietário.

**Requer uma chave com escopo de tenant** — uma chave de workspace, ou uma chave de conta com `x-workspace-id`.



## OpenAPI

````yaml openapi.pt.json POST /v1/billing/payment-intents/{id}/sync
openapi: 3.1.0
info:
  title: API Pilot Status
  version: 1.0.0
  license:
    name: Pilot Status Terms of Service
    url: https://pilotstatus.com.br/terms
  description: >-
    API REST pública do Pilot Status. Autentique com o header `x-api-key:
    ps_...` (ou `x-api-key-id`). Base URL: https://pilotstatus.com.br
servers:
  - url: https://pilotstatus.com.br
security:
  - apiKey: []
  - apiKeyId: []
paths:
  /v1/billing/payment-intents/{id}/sync:
    post:
      tags:
        - Billing
      summary: Sincronizar uma recarga com cartão
      description: >-
        Chame depois que o `stripe.confirmPayment()` resolver. Lê o
        PaymentIntent no Stripe e, quando está `succeeded`, credita a carteira —
        uma única vez: uma repetição, ou uma chamada depois que o nosso webhook
        do Stripe já creditou, responde `credited: false`. Nunca cobra (não é o
        `/confirm` do Stripe). `canceled` marca o pedido como `FAILED`. Não lê
        corpo. Só Proprietário.


        **Requer uma chave com escopo de tenant** — uma chave de workspace, ou
        uma chave de conta com `x-workspace-id`.
      operationId: post_billing_payment_intents_id_sync
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: O `paymentIntentId` (`pi_…`).
          example: pi_3QabcDEF
        - name: x-workspace-id
          in: header
          required: false
          schema:
            type: string
          description: >-
            Só com chave de conta (`ps_account_`): o workspace em que agir,
            obtido em `GET /v1/workspaces`. Sem ele, uma chave de conta recebe
            `400 WORKSPACE_ID_REQUIRED`.
          example: cmh2a9z8y0002ws8example1q
      responses:
        '200':
          description: Resultado
          content:
            application/json:
              schema:
                type: object
                properties:
                  paymentIntentId:
                    type: string
                  status:
                    type: string
                    description: Status no Stripe.
                  amount:
                    type: number
                  currency:
                    type: string
                  orderId:
                    type:
                      - string
                      - 'null'
                  orderStatus:
                    type: string
                    enum:
                      - COMPLETED
                      - PENDING
                      - FAILED
                      - UNCHANGED
                  credited:
                    type: boolean
                    description: '`true` só na chamada que creditou a carteira.'
                  balance:
                    type:
                      - number
                      - 'null'
                    description: Saldo da carteira logo depois deste crédito, ou `null`.
                  cardSaved:
                    type: boolean
              example:
                paymentIntentId: pi_3QabcDEF
                status: succeeded
                amount: 150
                currency: BRL
                orderId: cmh2b7q4s0003to8example8t
                orderStatus: COMPLETED
                credited: true
                balance: 212.4
                cardSaved: true
        '400':
          description: O id não é um `pi_…`
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  The id must be a Stripe PaymentIntent id (pi_…). | O id deve
                  ser o id de um PaymentIntent do Stripe (pi_…).
                code: INVALID_PAYMENT_INTENT_ID
        '401':
          description: Chave de API ausente, inválida ou revogada
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Invalid API key
        '403':
          description: >-
            Chave com escopo de número (`NUMBER_SCOPE_NOT_ALLOWED`), papel do
            usuário sem permissão (`PERMISSION_DENIED`) ou chave de conta fora
            dos seus workspaces (`WORKSPACE_MEMBERSHIP_REQUIRED`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: This endpoint requires a tenant-scoped API key
                code: NUMBER_SCOPE_NOT_ALLOWED
        '404':
          description: Não é um intent de recarga deste workspace
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  Payment intent not found for this workspace. | Payment intent
                  não encontrado neste workspace.
                code: PAYMENT_INTENT_NOT_FOUND
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Sua chave de API ps_
    apiKeyId:
      type: apiKey
      in: header
      name: x-api-key-id
      description: Id da chave de API (alternativa ao x-api-key)

````

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