Download OpenAPI specification:Download
Administrative API for core banking operations. This API provides endpoints for partner institutions to manage accounts, balances, and authentication.
All endpoints require OAuth2 Bearer Token authentication.
POST /v1/auth/token and use "Try it out"client_id: Your OAuth2 client IDclient_secret: Your OAuth2 client secretgrant_type: client_credentialsaccess_token from the responseNow all your requests will automatically include the token!
If you prefer to test manually, add this header to your requests:
Authorization: Bearer <your-access-token>
All endpoints require authentication. Make sure to obtain a valid token before making requests.
Obtain an access token using OAuth2 client credentials flow. The token can be used to authenticate subsequent API requests.
| client_id required | string non-empty Client identifier for OAuth2 authentication |
| client_secret required | string non-empty Client secret for OAuth2 authentication |
| grant_type required | string Value: "client_credentials" OAuth2 grant type - must be client_credentials |
{- "client_id": "string",
- "client_secret": "string",
- "grant_type": "client_credentials"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 0
}List accounts with pagination and filtering support. Use the generic filter parameter to search by account number, type, status, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "string",
- "number": "string",
- "type": "string",
- "status": "INACTIVE",
- "person": {
- "document": "string",
- "name": "string",
- "type": "string"
}, - "createdAt": "string",
- "updatedAt": "string",
- "closedAt": "string"
}
]
}Retrieve detailed information about a specific account by ID. This is an administrative API that requires institution authentication only.
| id required | number > 0 Account unique identifier |
{- "id": "string",
- "number": "string",
- "type": "string",
- "status": "INACTIVE",
- "person": {
- "document": "string",
- "name": "string",
- "type": "string"
}, - "createdAt": "string",
- "updatedAt": "string",
- "closedAt": "string"
}Creates an OAuth2 credential for the Accounts API (BancoDigitalAPI) by provisioning a client in Keycloak and persisting metadata in the database.
| id required | number > 0 Account ID |
| description required | string non-empty Credential description |
| scopes required | Array of strings non-empty Items Enum: "pix.write" "pix.create" "pix.read" "account.read" "webhook.read" "webhook.write" "transactions.read" "billets.write" "billets.create" "billets.read" "infractions.write" "infractions.read" Scopes to grant to this credential |
| allowedIps required | Array of strings non-empty [ items^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\... ] List of allowed IPs/CIDR ranges (required) |
{- "description": "string",
- "scopes": [
- "pix.write"
], - "allowedIps": [
- "string"
]
}{- "clientId": "string",
- "clientSecret": "string",
- "id": 0,
- "description": "string",
- "allowedIps": [
- "string"
]
}Creates a credential in PIX Manager API for a specific account. All data is automatically retrieved from the account.
| id required | number > 0 Account ID |
{- "clientId": "string",
- "clientSecret": "string",
- "pixKey": "string",
- "pixKeyCreated": true
}Updates a credential in PIX Manager API for a specific account. All data is automatically retrieved from the account.
| id required | number > 0 Account ID |
{- "message": "string"
}Deletes a credential from PIX Manager API for a specific account.
| id required | number > 0 Account ID |
| clientId required | string non-empty Client ID to be deleted |
{- "message": "string"
}Retrieve the current balance of a specific account by account ID. This is an administrative API that requires institution authentication only.
| id required | number > 0 Account unique identifier |
{- "accountId": "string",
- "balance": {
- "available": 0,
- "current": 0,
- "blocked": 0
}, - "currency": "string",
- "lastUpdated": "string"
}Retrieve all PIX keys registered in DICT (Diretório de Identificadores de Contas Transacionais) for a specific account. This endpoint queries the Brazilian Central Bank PIX directory to list all keys associated with the account. This is an administrative API that requires institution authentication only.
| id required | number > 0 Account unique identifier |
[- {
- "key": "string",
- "keyType": "CPF",
- "accountNumber": "string",
- "branch": "string",
- "accountType": "string",
- "participant": "string",
- "createdAt": "string"
}
]List people with pagination and filtering support. Use the generic filter parameter to search by name, document, type, status, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "string",
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "type": "string",
- "birthDate": "string",
- "email": "string",
- "status": "INACTIVE",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve detailed information about a specific person by ID. This endpoint provides person data including name, document, type, contact information, and status. This is an administrative API that requires institution authentication only.
| id required | number > 0 Person unique identifier |
{- "id": "string",
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "type": "string",
- "birthDate": "string",
- "email": "string",
- "status": "INACTIVE",
- "createdAt": "string",
- "updatedAt": "string"
}List onboardings with pagination and filtering support.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
| showIncomplete | boolean Default: false |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountType": "NATURAL_PERSON",
- "status": "PENDING",
- "company": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "person": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "address": {
- "zipCode": "string",
- "address": "string",
- "number": "string",
- "complement": "string",
- "district": "string"
}, - "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "observation": "string",
- "isPep": true,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Create a new onboarding request. Returns the complete created resource.
| accountType required | string Enum: "NATURAL_PERSON" "LEGAL_PERSON" "SALARY_ACCOUNT" |
| companyName | string |
| companyTradeName | string |
| companyDocument | string |
| companyEmail | string <email> |
| companyPhone | string >= 8 characters |
| personName required | string non-empty |
| personTradeName | string |
| personDocument required | string non-empty |
| personEmail required | string <email> |
| personPhone required | string >= 8 characters |
| addrZipCode required | string >= 8 characters |
| addrAddress required | string non-empty |
| addrNumber required | string non-empty |
| addrComplement | string |
| addrDistrict required | string non-empty |
| baasId | string <uuid> |
| deviceId | string <uuid> |
| accountPassword required | string non-empty |
| accountMasterPassword required | string non-empty |
| onlyPerson | boolean Default: false |
| isPep | boolean Default: false |
{- "accountType": "NATURAL_PERSON",
- "companyName": "string",
- "companyTradeName": "string",
- "companyDocument": "string",
- "companyPhone": "stringst",
- "personName": "string",
- "personTradeName": "string",
- "personDocument": "string",
- "personPhone": "stringst",
- "addrZipCode": "stringst",
- "addrAddress": "string",
- "addrNumber": "string",
- "addrComplement": "string",
- "addrDistrict": "string",
- "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "accountPassword": "string",
- "accountMasterPassword": "string",
- "onlyPerson": false,
- "isPep": false
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountType": "NATURAL_PERSON",
- "status": "PENDING",
- "company": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "person": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "address": {
- "zipCode": "string",
- "address": "string",
- "number": "string",
- "complement": "string",
- "district": "string"
}, - "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "observation": "string",
- "isPep": true,
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve detailed information about a specific onboarding by ID.
| id required | string <uuid> Onboarding unique identifier |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountType": "NATURAL_PERSON",
- "status": "PENDING",
- "company": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "person": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "address": {
- "zipCode": "string",
- "address": "string",
- "number": "string",
- "complement": "string",
- "district": "string"
}, - "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "observation": "string",
- "isPep": true,
- "createdAt": "string",
- "updatedAt": "string"
}Update an existing onboarding request. Returns the complete updated resource.
| id required | string <uuid> Onboarding unique identifier |
| accountType | string Enum: "NATURAL_PERSON" "LEGAL_PERSON" "SALARY_ACCOUNT" |
| companyName | string |
| companyTradeName | string |
| companyDocument | string |
| companyEmail | string <email> |
| companyPhone | string >= 8 characters |
| personName | string non-empty |
| personTradeName | string |
| personDocument | string non-empty |
| personEmail | string <email> |
| personPhone | string >= 8 characters |
| addrZipCode | string >= 8 characters |
| addrAddress | string non-empty |
| addrNumber | string non-empty |
| addrComplement | string |
| addrDistrict | string non-empty |
| baasId | string <uuid> |
| deviceId | string <uuid> |
| accountPassword | string non-empty |
| accountMasterPassword | string non-empty |
| onlyPerson | boolean Default: false |
| isPep | boolean Default: false |
{- "accountType": "NATURAL_PERSON",
- "companyName": "string",
- "companyTradeName": "string",
- "companyDocument": "string",
- "companyPhone": "stringst",
- "personName": "string",
- "personTradeName": "string",
- "personDocument": "string",
- "personPhone": "stringst",
- "addrZipCode": "stringst",
- "addrAddress": "string",
- "addrNumber": "string",
- "addrComplement": "string",
- "addrDistrict": "string",
- "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "accountPassword": "string",
- "accountMasterPassword": "string",
- "onlyPerson": false,
- "isPep": false
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountType": "NATURAL_PERSON",
- "status": "PENDING",
- "company": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "person": {
- "name": "string",
- "tradeName": "string",
- "document": "string",
- "email": "string",
- "phone": "string"
}, - "address": {
- "zipCode": "string",
- "address": "string",
- "number": "string",
- "complement": "string",
- "district": "string"
}, - "baasId": "2e4ca0ac-4c94-47cc-bb48-ebd98f366530",
- "deviceId": "4de4adb9-21ee-47e3-aeb4-8cf8ed6c109a",
- "observation": "string",
- "isPep": true,
- "createdAt": "string",
- "updatedAt": "string"
}Approve an onboarding request and optionally create an account.
| id required | string <uuid> Onboarding unique identifier |
| createAccount | boolean Default: true |
| planId | integer > 0 |
| observation | string |
| forceAccept | boolean Default: false |
{- "createAccount": true,
- "planId": 0,
- "observation": "string",
- "forceAccept": false
}{- "personId": 0,
- "accountId": 0
}Reject an onboarding request.
| id required | string <uuid> Onboarding unique identifier |
| observation | string |
{- "observation": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "PENDING",
- "createdAt": "string",
- "updatedAt": "string"
}Upload onboarding document image (front/back/selfie). Multipart is processed in banking-api and sent as FormData to Atlas.
| id required | string <uuid> Onboarding unique identifier |
| type required | string Enum: "FRONT" "BACK" "SELFIE" Image type: FRONT, BACK, or SELFIE |
| file | any Image file (multipart/form-data) |
{- "type": "FRONT",
- "key": "string",
}Retrieve detailed information about a specific transaction by ID. This is an administrative API that requires institution authentication only.
| id required | number > 0 Transaction unique identifier |
{- "id": "string",
- "amount": "string",
- "type": "string",
- "creditDebitType": "string",
- "paymentType": "string",
- "payer": {
- "name": "string",
- "document": "string",
- "ispb": "string",
- "branch": "string",
- "accountType": "string",
- "accountNumber": "string"
}, - "payee": {
- "name": "string",
- "document": "string",
- "ispb": "string",
- "branch": "string",
- "accountType": "string",
- "accountNumber": "string"
}, - "additionalInformation": "string",
- "status": 0,
- "reason": "string",
- "reference": "string",
- "relatedAccountId": "string",
- "actionTag": "string",
- "createdAt": "string",
- "updatedAt": "string"
}List transactions with pagination and filtering support. Use the generic filter parameter to search by transaction type, status, reference, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "string",
- "amount": "string",
- "type": "string",
- "creditDebitType": "string",
- "paymentType": "string",
- "payer": {
- "name": "string",
- "document": "string",
- "ispb": "string",
- "branch": "string",
- "accountType": "string",
- "accountNumber": "string"
}, - "payee": {
- "name": "string",
- "document": "string",
- "ispb": "string",
- "branch": "string",
- "accountType": "string",
- "accountNumber": "string"
}, - "additionalInformation": "string",
- "status": 0,
- "reason": "string",
- "reference": "string",
- "relatedAccountId": "string",
- "actionTag": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve detailed information about a specific movement by ID. This is an administrative API that requires institution authentication only.
| id required | number > 0 Movement unique identifier |
{- "id": 0,
- "accountId": 0,
- "transactionId": 0,
- "amount": "string",
- "type": "CREDIT",
- "description": "string",
- "previousBalance": "string",
- "isRefund": true,
- "createdAt": "string",
- "updatedAt": "string"
}List movements with pagination and filtering support. Use the generic filter parameter to search by movement type, account, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": 0,
- "accountId": 0,
- "transactionId": 0,
- "amount": "string",
- "type": "CREDIT",
- "description": "string",
- "previousBalance": "string",
- "isRefund": true,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve detailed information about a specific infraction by ID. This is an administrative API that requires institution authentication only.
| id required | string <uuid> Infraction unique identifier |
{- "id": "string",
- "transactionId": 0,
- "accountId": 0,
- "type": "string",
- "reportedBy": "string",
- "reportDetails": "string",
- "status": "string",
- "debitParticipant": 0,
- "creditParticipant": 0,
- "analysisResult": "string",
- "relatedId": "string",
- "analysisDetails": "string",
- "internalAnalysis": "string",
- "payerName": "string",
- "payerDocument": "string",
- "msgEndToEndId": "string",
- "fraudType": "string",
- "creationTime": "string",
- "createdAt": "string",
- "updatedAt": "string"
}List infractions with pagination and filtering support. Use the generic filter parameter to search by infraction type, status, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "string",
- "transactionId": 0,
- "accountId": 0,
- "type": "string",
- "reportedBy": "string",
- "reportDetails": "string",
- "status": "string",
- "debitParticipant": 0,
- "creditParticipant": 0,
- "analysisResult": "string",
- "relatedId": "string",
- "analysisDetails": "string",
- "internalAnalysis": "string",
- "payerName": "string",
- "payerDocument": "string",
- "msgEndToEndId": "string",
- "fraudType": "string",
- "creationTime": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}List refunds with pagination and filtering support. Use the generic filter parameter to search by refund reason, status, etc. This is an administrative API that requires institution authentication only.
| page | integer > 0 Default: 1 Page number (starts at 1) |
| perPage | integer ( 0 .. 100 ] Default: 10 Number of records per page (max 100) |
| filter | string Generic text search filter |
| sortBy | string Default: "createdAt" Field to sort by (default: createdAt) |
| sortOrder | string Default: "desc" Enum: "asc" "desc" "ASC" "DESC" Sort order (asc or desc, default: desc) |
{- "meta": {
- "total": 0,
- "perPage": 0,
- "currentPage": 0,
- "firstPage": 0,
- "lastPage": 0,
- "nextPage": 0,
- "prevPage": 0
}, - "data": [
- {
- "id": "string",
- "transactionId": 0,
- "accountId": 0,
- "refundReason": "string",
- "refundDetails": "string",
- "amount": "string",
- "status": "string",
- "refundEndToEndId": "string",
- "refundAttempts": 0,
- "requestingParticipant": 0,
- "contestedParticipant": 0,
- "analysisResult": "string",
- "analysisDetails": "string",
- "refundRejectionReason": "string",
- "relatedId": "string",
- "relatedInfractionId": "string",
- "creationTime": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Get refund by ID
| id required | string <uuid> Refund ID |
{- "id": "string",
- "transactionId": 0,
- "accountId": 0,
- "refundReason": "string",
- "refundDetails": "string",
- "amount": "string",
- "status": "string",
- "refundEndToEndId": "string",
- "refundAttempts": 0,
- "requestingParticipant": 0,
- "contestedParticipant": 0,
- "analysisResult": "string",
- "analysisDetails": "string",
- "refundRejectionReason": "string",
- "relatedId": "string",
- "relatedInfractionId": "string",
- "creationTime": "string",
- "createdAt": "string",
- "updatedAt": "string"
}