Belvo Links API

Manage the credential connections to institutions.

Documentation

Specifications

Other Resources

OpenAPI Specification

belvo-links-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Belvo Accounts Links 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: Links
  description: Manage the credential connections to institutions.
paths:
  /api/links/:
    get:
      operationId: listLinks
      tags:
      - Links
      summary: List all Links
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A paginated list of Links.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLinks'
    post:
      operationId: registerLink
      tags:
      - Links
      summary: Register a new Link
      description: Register a Link by providing the institution and the end-user credentials. Use access_mode single for a one-time pull or recurrent to keep data refreshed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkRequest'
      responses:
        '201':
          description: The Link was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          $ref: '#/components/responses/Error'
  /api/links/{id}/:
    parameters:
    - $ref: '#/components/parameters/ResourceId'
    get:
      operationId: detailLink
      tags:
      - Links
      summary: Get a Link's details
      responses:
        '200':
          description: The requested Link.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
    patch:
      operationId: patchLink
      tags:
      - Links
      summary: Complete or update a Link request
      description: Send a token or OTP to complete a multi-factor Link request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkPatchRequest'
      responses:
        '200':
          description: The updated Link.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
    delete:
      operationId: deleteLink
      tags:
      - Links
      summary: Delete a Link
      responses:
        '204':
          description: The Link was deleted.
components:
  parameters:
    PageSize:
      name: page_size
      in: query
      description: Number of items per page (max 1000).
      schema:
        type: integer
        default: 100
        maximum: 1000
    Page:
      name: page
      in: query
      description: The page number of results to return.
      schema:
        type: integer
        default: 1
    ResourceId:
      name: id
      in: path
      required: true
      description: The unique identifier of the resource.
      schema:
        type: string
        format: uuid
  schemas:
    Pagination:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          nullable: true
        previous:
          type: string
          nullable: true
    Link:
      type: object
      properties:
        id:
          type: string
          format: uuid
        institution:
          type: string
        access_mode:
          type: string
          enum:
          - single
          - recurrent
        status:
          type: string
          enum:
          - valid
          - invalid
          - unconfirmed
          - token_required
        created_at:
          type: string
          format: date-time
        external_id:
          type: string
          nullable: true
        institution_user_id:
          type: string
          nullable: true
        last_accessed_at:
          type: string
          format: date-time
          nullable: true
    Error:
      type: array
      items:
        type: object
        properties:
          request_id:
            type: string
          message:
            type: string
          code:
            type: string
    LinkRequest:
      type: object
      required:
      - institution
      - username
      - password
      properties:
        institution:
          type: string
          example: erebor_mx_retail
        username:
          type: string
        password:
          type: string
        access_mode:
          type: string
          enum:
          - single
          - recurrent
          default: single
        external_id:
          type: string
        username_type:
          type: string
    PaginatedLinks:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/Link'
    LinkPatchRequest:
      type: object
      required:
      - id
      - token
      properties:
        id:
          type: string
          format: uuid
        token:
          type: string
        link:
          type: string
          format: uuid
  responses:
    Error:
      description: An error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  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.