Belvo Payments (Brazil) API

Pix / Open Finance payment initiation in Brazil.

Documentation

Specifications

Other Resources

OpenAPI Specification

belvo-payments-brazil-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Belvo Accounts Payments (Brazil) API
  description: The Belvo API is a RESTful open-finance API for Latin America. It lets you connect to bank, fiscal, and employment institutions across Mexico, Brazil, and Colombia through Links, then retrieve accounts, balances, transactions, owners, incomes, and recurring expenses. The Payments (Brazil) surface initiates account-to-account payments over Pix and the Open Finance network. All requests use HTTP Basic authentication with your Secret Key ID as the username and Secret Key Password as the password.
  termsOfService: https://belvo.com/terms-and-conditions/
  contact:
    name: Belvo Support
    email: support@belvo.com
    url: https://developers.belvo.com
  version: '1.0'
servers:
- url: https://api.belvo.com
  description: Production
- url: https://sandbox.belvo.com
  description: Sandbox
security:
- basicAuth: []
tags:
- name: Payments (Brazil)
  description: Pix / Open Finance payment initiation in Brazil.
paths:
  /payments/br/payment-intents/:
    get:
      operationId: listPaymentIntents
      tags:
      - Payments (Brazil)
      summary: List all payment intents
      responses:
        '200':
          description: A paginated list of payment intents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPaymentIntents'
    post:
      operationId: createPaymentIntent
      tags:
      - Payments (Brazil)
      summary: Create a payment intent
      description: Create a payment intent capturing the amount, description, provider, and beneficiary required to process a Pix payment over the Open Finance Network.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentIntentRequest'
      responses:
        '201':
          description: The payment intent was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntent'
  /payments/br/payment-intents/{id}/:
    parameters:
    - $ref: '#/components/parameters/ResourceId'
    get:
      operationId: detailPaymentIntent
      tags:
      - Payments (Brazil)
      summary: Get a payment intent's details
      responses:
        '200':
          description: The requested payment intent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntent'
  /payments/br/customers/:
    get:
      operationId: listCustomers
      tags:
      - Payments (Brazil)
      summary: List all customers
      responses:
        '200':
          description: A paginated list of customers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCustomers'
    post:
      operationId: createCustomer
      tags:
      - Payments (Brazil)
      summary: Create a customer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerRequest'
      responses:
        '201':
          description: The customer was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /payments/br/payment-institutions/:
    get:
      operationId: listPaymentInstitutions
      tags:
      - Payments (Brazil)
      summary: List all payment institutions
      responses:
        '200':
          description: A list of institutions available for payments.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentInstitution'
components:
  parameters:
    ResourceId:
      name: id
      in: path
      required: true
      description: The unique identifier of the resource.
      schema:
        type: string
        format: uuid
  schemas:
    Customer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        email:
          type: string
          nullable: true
        identifier:
          type: object
          properties:
            type:
              type: string
              example: CPF
            number:
              type: string
        created_at:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          nullable: true
        previous:
          type: string
          nullable: true
    PaymentIntentRequest:
      type: object
      required:
      - amount
      - description
      - provider
      properties:
        amount:
          type: string
          example: '100.00'
        description:
          type: string
        provider:
          type: string
          example: pix
        customer:
          type: string
          format: uuid
        beneficiary:
          type: object
          properties:
            name:
              type: string
            account:
              type: object
              properties:
                institution:
                  type: string
                number:
                  type: string
                type:
                  type: string
        allowed_payment_method_types:
          type: array
          items:
            type: string
    PaginatedCustomers:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/Customer'
    CustomerRequest:
      type: object
      required:
      - name
      - identifier
      properties:
        name:
          type: string
        email:
          type: string
        identifier:
          type: object
          required:
          - type
          - number
          properties:
            type:
              type: string
              example: CPF
            number:
              type: string
    PaymentInstitution:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        display_name:
          type: string
        status:
          type: string
        logo:
          type: string
          nullable: true
    PaymentIntent:
      type: object
      properties:
        id:
          type: string
          format: uuid
        amount:
          type: string
        currency:
          type: string
          example: BRL
        description:
          type: string
        status:
          type: string
          enum:
          - REQUIRES_ACTION
          - PROCESSING
          - SUCCEEDED
          - CANCELLED
          - FAILED
        provider:
          type: string
        next_action:
          type: object
          nullable: true
          properties:
            type:
              type: string
            redirect_url:
              type: string
        created_at:
          type: string
          format: date-time
    PaginatedPaymentIntents:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/PaymentIntent'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using your Secret Key ID as the username and your Secret Key Password as the password.