Efí Cobranças API

Boleto / card / Pix charges. Host cobrancas.api.efipay.com.br, no mTLS.

OpenAPI Specification

efi-bank-cobran-as-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Efí (formerly Gerencianet) Payments Authorization Cobranças API
  description: "Representative subset of Efí's public REST APIs for the Brazilian financial system. Efí (ex-Gerencianet) is a Brazilian payment institution and digital bank. This document groups operations across several distinct API hosts, each with its own base URL and authentication requirements:\n\n- Pix API - base https://pix.api.efipay.com.br (sandbox\n  https://pix-h.api.efipay.com.br). OAuth2 client-credentials (token at\n  POST /oauth/token) PLUS a mandatory mutual TLS (mTLS) client certificate\n  (.p12/.pem) on every request, as required by the Brazilian Central Bank.\n  Paths under /v2/*.\n\n\n- Cobranças (Charges) API - base https://cobrancas.api.efipay.com.br (sandbox\n  https://cobrancas-h.api.efipay.com.br). OAuth2 client-credentials over HTTP\n  Basic (token at POST /v1/authorize). No mTLS certificate required. Paths\n  under /v1/charge, /v1/charges, /v1/carnet.\n\n\n- Pix via Open Finance API - base https://openfinance.api.efipay.com.br\n  (sandbox https://openfinance-h.api.efipay.com.br). OAuth2 client-credentials\n  (token at POST /v1/oauth/token) PLUS a mandatory mTLS certificate.\n\n\nBecause OpenAPI 3.0 has a single security-scheme model, the mTLS requirement for the Pix and Open Finance hosts is described here in prose and cannot be fully expressed as a securityScheme; treat the mTLS client certificate as mandatory on those hosts in addition to the OAuth2 bearer token. Endpoints marked \"modeled\" in the repository review follow the Brazilian Central Bank Pix API v2 standard that Efí implements; the create/query charge, webhook, charge, and carnê operations were confirmed directly against Efí's public documentation."
  version: '1.0'
  contact:
    name: Efí Developers
    url: https://dev.efipay.com.br
servers:
- url: https://pix.api.efipay.com.br
  description: Pix API - production (mTLS certificate required)
- url: https://pix-h.api.efipay.com.br
  description: Pix API - sandbox / homologação (mTLS certificate required)
- url: https://cobrancas.api.efipay.com.br
  description: Cobranças (Charges) API - production
- url: https://openfinance.api.efipay.com.br
  description: Pix via Open Finance API - production (mTLS certificate required)
security:
- oAuth2ClientCredentials: []
tags:
- name: Cobranças
  description: Boleto / card / Pix charges. Host cobrancas.api.efipay.com.br, no mTLS.
paths:
  /v1/charge:
    post:
      operationId: createCharge
      tags:
      - Cobranças
      summary: Create a charge (two-step)
      description: Creates a charge (transação) describing the item(s), value, and quantity, before associating a payment method.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeRequest'
      responses:
        '200':
          description: The created charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charge/one-step:
    post:
      operationId: createChargeOneStep
      tags:
      - Cobranças
      summary: Create a charge (one-step)
      description: Creates a charge and associates the payment method (boleto, card, or Pix) in a single request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeOneStepRequest'
      responses:
        '200':
          description: The created charge with payment details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charges:
    get:
      operationId: listCharges
      tags:
      - Cobranças
      summary: List charges
      description: Returns issued charges, filterable by charge_type and date range (begin_date, end_date).
      parameters:
      - name: charge_type
        in: query
        required: false
        description: Filter by charge type (for example billet or carnet).
        schema:
          type: string
      - name: begin_date
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: A list of charges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charge/{id}:
    parameters:
    - $ref: '#/components/parameters/ChargeId'
    get:
      operationId: getCharge
      tags:
      - Cobranças
      summary: Retrieve a charge
      description: Returns information for a single charge (transação) by id.
      responses:
        '200':
          description: The requested charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v1/charge/{id}/pay:
    parameters:
    - $ref: '#/components/parameters/ChargeId'
    post:
      operationId: payCharge
      tags:
      - Cobranças
      summary: Associate a payment method to a charge
      description: Associates a charge with the desired payment method (boleto bancário, credit card, or Pix).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayChargeRequest'
      responses:
        '200':
          description: The charge with payment details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charge/{id}/billet:
    parameters:
    - $ref: '#/components/parameters/ChargeId'
    put:
      operationId: updateChargeBilletDueDate
      tags:
      - Cobranças
      summary: Change a charge's boleto due date
      description: Alters the expiration (vencimento) date of a boleto charge.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                expire_at:
                  type: string
                  format: date
      responses:
        '200':
          description: The updated charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charge/{id}/cancel:
    parameters:
    - $ref: '#/components/parameters/ChargeId'
    put:
      operationId: cancelCharge
      tags:
      - Cobranças
      summary: Cancel a charge
      description: Cancels an existing charge.
      responses:
        '200':
          description: The cancelled charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/charge/{id}/settle:
    parameters:
    - $ref: '#/components/parameters/ChargeId'
    put:
      operationId: settleCharge
      tags:
      - Cobranças
      summary: Manually settle a charge
      description: Marks a charge as paid (baixa manual).
      responses:
        '200':
          description: The settled charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    ChargeItem:
      type: object
      properties:
        name:
          type: string
        value:
          type: integer
          description: Unit value in cents (centavos).
        amount:
          type: integer
    Charge:
      type: object
      properties:
        charge_id:
          type: integer
        status:
          type: string
        total:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/ChargeItem'
        payment:
          type: object
          additionalProperties: true
    PayChargeRequest:
      type: object
      properties:
        payment:
          type: object
          additionalProperties: true
    Error:
      type: object
      properties:
        nome:
          type: string
        mensagem:
          type: string
        error:
          type: string
        error_description:
          type: string
    ChargeList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Charge'
    ChargeRequest:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ChargeItem'
    ChargeOneStepRequest:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ChargeItem'
        payment:
          type: object
          description: Payment method - banking_billet, credit_card, or pix.
          additionalProperties: true
  parameters:
    ChargeId:
      name: id
      in: path
      required: true
      description: The charge (transação) identifier.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: Missing or invalid OAuth2 token, or (on Pix / Open Finance) a missing or invalid mTLS certificate.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: 'OAuth2 client-credentials. Obtain a bearer token from the host''s token endpoint using HTTP Basic auth (Client_Id / Client_Secret), then send it as Authorization: Bearer. On the Pix and Open Finance hosts a mutual TLS (mTLS) client certificate (.p12/.pem) is additionally mandatory on every request, including the token request, per Brazilian Central Bank rules.'
      flows:
        clientCredentials:
          tokenUrl: https://pix.api.efipay.com.br/oauth/token
          scopes:
            cob.write: Create and revise immediate Pix charges.
            cob.read: Read immediate Pix charges.
            cobv.write: Create and revise dated Pix charges.
            cobv.read: Read dated Pix charges.
            pix.write: Request Pix refunds.
            pix.read: Read received Pix and refunds.
            pix.send: Send Pix (Cash-Out).
            loc.write: Create payload locations.
            webhook.write: Configure and delete webhooks.
            webhook.read: Read webhooks.
            gn.opb.participants.read: Read Open Finance participants.
            gn.opb.payment.pix.send: Initiate Pix via Open Finance.
            gn.opb.payment.pix.read: Read Open Finance payments.