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

# Criar uma nova cobrança

> Permite que você crie um link de cobrança pro seu cliente pagar você.



## OpenAPI

````yaml /openapi-v1.yaml post /billing/create
openapi: 3.1.0
info:
  title: API AbacatePay
  description: API para gerenciamento de cobranças e pagamentos usando o AbacatePay.
  version: 1.0.0
servers:
  - url: https://api.abacatepay.com/v1
    description: Único servidor para os ambientes de produção e sandbox.
security: []
paths:
  /billing/create:
    post:
      summary: Criar uma nova cobrança
      description: Permite que você crie um link de cobrança pro seu cliente pagar você.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                frequency:
                  type: string
                  description: >-
                    Define o tipo de frequência da cobrança. Para cobranças
                    únicas, use `ONE_TIME`. Para cobranças que podem ser pagas
                    mais de uma vez, use `MULTIPLE_PAYMENTS`.
                  enum:
                    - ONE_TIME
                    - MULTIPLE_PAYMENTS
                  default: ONE_TIME
                  example: ONE_TIME
                methods:
                  type: array
                  description: >-
                    Métodos de pagamento que serão utilizados. Aceita um ou
                    mais: `PIX` e `CARD`
                  items:
                    type: string
                    enum:
                      - PIX
                      - CARD
                  minItems: 1
                  maxItems: 2
                  uniqueItems: true
                  default:
                    - PIX
                  example:
                    - PIX
                    - CARD
                products:
                  type: array
                  description: Lista de produtos que seu cliente está pagando.
                  items:
                    type: object
                    properties:
                      externalId:
                        type: string
                        description: >-
                          O id do produto em seu sistema. Utilizamos esse id
                          para criar seu produto na AbacatePay de forma
                          automática, então certifique-se de que seu id é único.
                        example: prod-1234
                      name:
                        type: string
                        description: Nome do produto.
                        example: Assinatura de Programa Fitness
                      description:
                        type: string
                        description: Descrição detalhada do produto.
                        example: Acesso ao programa fitness premium por 1 mês.
                      quantity:
                        type: integer
                        description: Quantidade do produto sendo adquirida.
                        minimum: 1
                        example: 2
                      price:
                        type: integer
                        description: >-
                          Preço por unidade do produto em centavos. O mínimo é
                          100 (1 BRL).
                        minimum: 100
                        example: 2000
                    required:
                      - externalId
                      - name
                      - quantity
                      - price
                    additionalProperties: false
                  minItems: 1
                  example:
                    - externalId: prod-1234
                      name: Assinatura de Programa Fitness
                      description: Acesso ao programa fitness premium por 1 mês.
                      quantity: 2
                      price: 2000
                returnUrl:
                  type: string
                  format: uri
                  description: >-
                    URL para redirecionar o cliente caso o mesmo clique na opção
                    "Voltar".
                  example: https://example.com/billing
                completionUrl:
                  type: string
                  format: uri
                  description: >-
                    URL para redirecionar o cliente quando o pagamento for
                    concluído.
                  example: https://example.com/completion
                customerId:
                  type: string
                  description: O id de um cliente já cadastrado em sua loja.
                  example: cust_abcdefghij
                customer:
                  type: object
                  description: >-
                    Dados do seu cliente. Caso o cliente não exista ele será
                    criado.
                  required:
                    - name
                    - cellphone
                    - email
                    - taxId
                  additionalProperties: false
                  properties:
                    name:
                      type: string
                      description: Nome completo do seu cliente
                      example: Daniel Lima
                    cellphone:
                      type: string
                      description: Celular do cliente
                      example: (11) 4002-8922
                    email:
                      type: string
                      description: E-mail do cliente
                      example: daniel_lima@abacatepay.com
                    taxId:
                      type: string
                      description: CPF ou CNPJ do cliente.
                      example: 123.456.789-01
                allowCoupons:
                  type: boolean
                  default: false
                  example: false
                  description: Se verdadeiro cupons podem ser usados na billing
                coupons:
                  type: array
                  description: Lista de cupons disponíveis para resem usados com a billing
                  example:
                    - ABKT10
                    - ABKT5
                    - PROMO10
                  default: []
                  maxItems: 50
                  items:
                    type: string
                externalId:
                  type: string
                  description: >-
                    Caso você tenha um identificador único da sua aplicação para
                    cobranças, completamente opcional.
                  example: seu_id_123
                metadata:
                  type: object
                  description: Metadados opcionais para a cobrança
                  additionalProperties: true
                  default:
                    externalId: '123'
              required:
                - frequency
                - methods
                - products
                - returnUrl
                - completionUrl
              additionalProperties: false
      responses:
        '200':
          description: Cobrança criada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Billing'
                  error:
                    type: 'null'
                    example: null
        '401':
          description: Não autorizado. Falha na autenticação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem de erro descrevendo o motivo da falha na
                      autenticação.
                    example: Token de autenticação inválido ou ausente.
      security:
        - bearerAuth: []
components:
  schemas:
    Billing:
      type: object
      properties:
        id:
          type: string
          description: Identificador único da cobrança.
          example: bill_123456
        url:
          type: string
          format: uri
          description: URL onde o usuário pode concluir o pagamento.
          example: https://pay.abacatepay.com/bill-5678
        amount:
          type: number
          description: Valor total a ser pago em centavos. (Deprecated)
          deprecated: true
          example: 4000
        status:
          type: string
          description: Status atual da cobrança.
          enum:
            - PENDING
            - EXPIRED
            - CANCELLED
            - PAID
            - REFUNDED
          example: PENDING
        devMode:
          type: boolean
          description: Indica se a cobrança foi criada em ambiente de testes.
          example: true
        methods:
          type: array
          description: Métodos de pagamento suportados para esta cobrança.
          items:
            type: string
            enum:
              - PIX
              - CARD
          example:
            - PIX
            - CARD
        products:
          type: array
          description: Lista de produtos na cobrança.
          items:
            type: object
            properties:
              id:
                type: string
                description: Identificador único do produto.
                example: prod_123456
              externalId:
                type: string
                description: O id do produto em seu sistema.
                example: prod-1234
              quantity:
                type: integer
                description: Quantidade do produto sendo adquirida.
                example: 2
        frequency:
          type: string
          description: Frequência da cobrança.
          enum:
            - ONE_TIME
            - MULTIPLE_PAYMENTS
          example: ONE_TIME
        nextBilling:
          type: string
          format: date-time
          nullable: true
          description: Data e hora da próxima cobrança, ou null para cobranças únicas.
          example: 'null'
        customer:
          $ref: '#/components/schemas/Customer'
          type: object
          nullable: true
        allowCoupons:
          type: boolean
          nullable: true
          default: false
          description: Se verdadeiro cupons podem ser usados na billing
        coupons:
          type: array
          description: Lista de cupons disponíveis para resem usados com a billing
          nullable: true
          default: []
          items:
            type: string
      required:
        - id
        - url
        - status
        - devMode
        - methods
        - products
        - frequency
        - createdAt
        - updatedAt
    Customer:
      type: object
      description: Os dados do seu cliente.
      required:
        - name
        - cellphone
        - email
        - taxId
      additionalProperties: false
      properties:
        id:
          type: string
          description: Identificador único do cliente
          example: bill_123456
        metadata:
          type: object
          description: Dados do cliente
          properties:
            name:
              type: string
              description: Nome completo do seu cliente
              example: Daniel Lima
            cellphone:
              type: string
              description: Celular do cliente
              example: (11) 4002-8922
            email:
              type: string
              description: E-mail do cliente
              example: daniel_lima@abacatepay.com
            taxId:
              type: string
              description: CPF ou CNPJ do cliente.
              example: 123.456.789-01
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Cabeçalho de autenticação Bearer no formato `Bearer
        <abacatepay-api-key>` onde `<abacatepay-api-key>` é a sua chave de API.

````