O USD Coin (USDC) emergiu como um pilar de estabilidade e confiabilidade. Como uma stablecoin totalmente reservada e lastreada em dólar, o USDC preenche a lacuna entre a moeda fiduciária tradicional e o crescente mundo dos ativos digitais. Ele oferece a velocidade e o alcance global das criptomoedas, mantendo a estabilidade de preço do dólar americano, tornando-o um meio ideal para comércio, negociação e remessas na internet.
No centro do ecossistema USDC está a Circle, a principal desenvolvedora da stablecoin. A Circle oferece um conjunto de APIs que capacitam desenvolvedores e empresas a integrar o USDC em seus aplicativos de forma contínua. A Circle Mint API, em particular, oferece um poderoso portal para cunhar novos USDC, resgatá-los por moeda fiduciária e transferi-los por uma infinidade de blockchains suportadas. Isso não é "negociação" no sentido de especular sobre flutuações de preço em uma bolsa de mercado aberto, mas sim algo mais fundamental: a capacidade de mover valor programaticamente, de entrar dos trilhos financeiros tradicionais para o mundo digital e de sair novamente.
Este artigo é o seu guia completo para dominar a API da Circle para transações USDC. Embarcaremos em uma jornada detalhada, começando pela configuração inicial da sua conta de desenvolvedor até a execução de transferências e pagamentos complexos. Abordaremos:
- Primeiros Passos: Configurando sua conta e entendendo a diferença crítica entre os ambientes de sandbox e produção.
- Autenticação: Conectando-se de forma segura à API da Circle usando suas credenciais.
- Conceitos Essenciais: Um mergulho profundo nos modelos de dados e recursos essenciais que formam os blocos de construção da API, como Pagamentos, Saques e Transferências.
- Executando Transações: Instruções passo a passo para entrada de fiat, gerenciamento de sua carteira USDC, transferência de USDC entre blockchains e saída de volta para fiat.
- Recursos Avançados e Melhores Práticas: Aproveitando recursos poderosos como requisições idempotentes para prevenir erros, usando webhooks para notificações em tempo real, lidando com grandes conjuntos de dados com paginação e implementando tratamento de erros robusto.
Ao final deste guia, você terá o conhecimento e exemplos práticos necessários para construir aplicativos sofisticados que aproveitam o poder de um dólar digital estável, global e programável.
Quer uma plataforma integrada e tudo-em-um para sua Equipe de Desenvolvedores trabalhar em conjunto com máxima produtividade?
Apidog entrega todas as suas demandas e substitui o Postman por um preço muito mais acessível!
Primeiros Passos com a Circle
Antes de escrever uma única linha de código, você precisa configurar seu ambiente de desenvolvimento e obter suas credenciais. Esta etapa fundamental é crucial para um processo de integração suave.
Ambientes Sandbox vs. Produção
A Circle oferece dois ambientes distintos para suas APIs: Sandbox e Produção. Compreender seus papéis é o primeiro passo para uma integração bem-sucedida e segura.
- Ambiente Sandbox: Este é o seu playground de desenvolvimento pessoal. O sandbox é projetado para testes, prototipagem e integração sem quaisquer consequências financeiras no mundo real. Ele espelha a funcionalidade da API de produção, permitindo que você construa e refine seu aplicativo com total confiança. As transações no sandbox usam redes de teste e não envolvem dinheiro real ou USDC. Todos os dados dentro do sandbox são separados do ambiente de produção.
- Ambiente de Produção: Este é o ambiente ativo onde ocorrem transações financeiras reais. Uma vez que seu código esteja completamente testado e aperfeiçoado no sandbox, você pode fazer a transição para a produção simplesmente trocando o host da API e usando suas chaves de API ativas.
Os hosts de API para cada ambiente são os seguintes:
Ambiente | URL do Host da API |
---|---|
Sandbox | https://api-sandbox.circle.com |
Produção | https://api.circle.com |
Ao longo deste guia, todos os exemplos usarão a URL do sandbox. Esta é uma prática crítica: sempre desenvolva e teste primeiro no ambiente sandbox.
Criando Sua Conta Sandbox
Sua jornada começa criando uma conta de desenvolvedor da Circle, que lhe dará acesso ao ambiente sandbox.
- Navegue até o Site da Circle: Vá para a página oficial de desenvolvedores da Circle.
- Inscreva-se: Procure a opção para se inscrever em uma conta de desenvolvedor ou sandbox. Você precisará fornecer algumas informações básicas, como seu endereço de e-mail e uma senha segura.
- Verifique Seu E-mail: Após enviar o formulário de inscrição, você receberá um e-mail de verificação. Clique no link dentro deste e-mail para ativar sua conta.
- Acesse o Painel: Uma vez que sua conta seja verificada, você pode fazer login no painel do desenvolvedor. Este painel é o seu centro para gerenciar seus aplicativos, chaves de API e visualizar sua atividade no sandbox.
Gerando Sua Primeira Chave de API
Uma chave de API é um token secreto único que autentica as requisições do seu aplicativo para a API da Circle. Ela prova que uma requisição está vindo de você e não de um terceiro não autorizado.
Veja como gerar uma chave de API a partir do seu novo painel do sandbox:
- Faça login na sua conta sandbox de desenvolvedor da Circle.
- Navegue até a Seção de Chaves de API: No painel, encontre uma seção rotulada "API Keys" (Chaves de API) ou "Developer Settings" (Configurações de Desenvolvedor).
- Crie uma Nova Chave: Haverá uma opção para "Create a New API Key" (Criar uma Nova Chave de API). Clique nela.
- Nomeie Sua Chave: Dê à sua chave um nome descritivo (por exemplo, "Meu Aplicativo de Negociação - Teste"). Isso ajuda a identificar o propósito da chave mais tarde, especialmente se você tiver várias chaves para diferentes aplicativos.
- Copie e Proteja Sua Chave: Após a criação, sua chave de API será exibida na tela. Esta é a única vez que a chave completa será mostrada. Você deve copiá-la imediatamente e armazená-la em um local seguro, como um gerenciador de senhas ou um arquivo de variável de ambiente para seu projeto. Não codifique sua chave de API diretamente em seu código-fonte.
Sua chave de API é uma informação sensível. Qualquer pessoa que a possua pode fazer requisições em nome de sua conta. Trate-a com o mesmo nível de segurança que você trataria uma senha.
Autenticação e Configuração Inicial
Com sua chave de API em mãos, você está pronto para fazer suas primeiras chamadas à API da Circle. O primeiro passo é dominar o processo de autenticação e testar sua conexão para garantir que tudo esteja configurado corretamente.
Autenticação de API: O Token Bearer
A API da Circle usa o esquema de autenticação Bearer Token. Este é um método padrão de autenticação HTTP onde cada requisição de API deve incluir um cabeçalho Authorization
contendo sua chave de API.
O formato do cabeçalho é: Authorization: Bearer SUA_CHAVE_API
Você deve substituir SUA_CHAVE_API
pela chave secreta real que você gerou no capítulo anterior.
Testando Sua Conexão
Antes de mergulhar em transações complexas, é essencial realizar dois testes simples: um para verificar a conectividade básica de rede com os servidores da API da Circle e outro para verificar se sua chave de API está configurada corretamente.
Testando Conectividade Bruta com /ping
O endpoint /ping
é uma verificação de saúde simples. Não requer autenticação e é usado para confirmar que você pode alcançar os servidores da API da Circle.
Veja como chamá-lo usando cURL, uma ferramenta comum de linha de comando para fazer requisições HTTP:
curl -H 'Accept: application/json' \
-X GET --url https://api-sandbox.circle.com/ping
Resposta de Sucesso:
Se sua conexão for bem-sucedida, a API retornará um objeto JSON simples:
{
"message": "pong"
}
Se você receber esta resposta, estabeleceu com sucesso uma conexão com o ambiente sandbox. Caso contrário, verifique sua conexão de rede, firewalls ou quaisquer erros de digitação na URL.
Testando Sua Chave de API com /v1/configuration
Agora, vamos testar se sua chave de API é válida e está formatada corretamente. O endpoint /v1/configuration
recupera informações básicas de configuração para sua conta e requer autenticação.
Aqui está o comando cURL. Lembre-se de substituir ${SUA_CHAVE_API}
pela sua chave de API real. Por segurança, é melhor usar uma variável de ambiente.
# É uma boa prática armazenar sua chave de API em uma variável de ambiente
# export YOUR_API_KEY='SUA_CHAVE_AQUI'
curl -H 'Accept: application/json' \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-X GET --url https://api-sandbox.circle.com/v1/configuration
Resposta de Sucesso:
Uma requisição bem-sucedida retornará um objeto JSON contendo o ID da sua carteira principal. O masterWalletId
é o identificador único para a carteira primária associada à sua conta onde seus fundos são mantidos.
{
"data": {
"payments": {
"masterWalletId": "1234567890"
}
}
}
Resposta de Erro:
Se houver um problema com sua chave de API ou como você formatou o cabeçalho Authorization
, você receberá um erro 401 Unauthorized
.
{
"code": 401,
"message": "Autorização malformada. As credenciais estão codificadas corretamente?"
}
Se você vir este erro, verifique novamente o seguinte:
- Você incluiu a palavra
Bearer
seguida de um espaço antes da chave? - Você copiou a chave de API inteira corretamente, sem caracteres extras ou espaços?
- Você tem certeza de que está usando uma chave de API válida e ativa do seu painel?
Usando SDKs da Circle para Integração Mais Simples
Embora você sempre possa interagir com a API diretamente usando requisições HTTP, a Circle fornece Kits de Desenvolvimento de Software (SDKs) para linguagens de programação populares como Node.js, Python e Java. Esses SDKs lidam com o código boilerplate para autenticação, formatação de requisições e análise de respostas, tornando seu processo de desenvolvimento mais rápido e menos propenso a erros.
Aqui está um breve exemplo de como você pode inicializar o SDK Node.js da Circle:
// Instale o SDK primeiro: npm install @circle-fin/circle-sdk
import { Circle, CircleEnvironments } from "@circle-fin/circle-sdk";
const circle = new Circle(
process.env.CIRCLE_API_KEY, // Chave de API da variável de ambiente
CircleEnvironments.sandbox // Apontando para o ambiente sandbox
);
async function getConfiguration() {
try {
const response = await circle.core.getConfiguration();
console.log(response.data.payments.masterWalletId);
} catch (error) {
console.error(error.response.data);
}
}
getConfiguration();
Usar um SDK abstrai os detalhes de baixo nível, permitindo que você se concentre na lógica de negócios do seu aplicativo. Recomendamos usar um SDK para qualquer projeto sério.
Conceitos Essenciais e Recursos da API
Para usar a API da Circle de forma eficaz, você deve entender seu modelo de dados subjacente. A API é construída em torno de um conjunto de recursos—objetos JSON que representam as entidades centrais no sistema, como pagamentos, carteiras e transferências.
Uma Visão Geral dos Recursos da API
Os recursos da Circle podem ser categorizados em vários grupos:
Recursos Primários: Estes representam as principais ações financeiras que você pode realizar.
Objeto de Pagamento
: Representa um pagamento de um cliente, servindo como a principal forma de entrada de fundos no ecossistema da Circle.Objeto de Saque
: Representa um saque para uma parte externa (por exemplo, uma conta bancária), servindo como a principal forma de saída de fundos.Objeto de Transferência
: Representa um movimento de fundos, seja entre suas próprias carteiras da Circle ou para um endereço de blockchain externo.
Métodos e Instrumentos:
Objeto de Carteira
: Representa um armazenamento de fundos (saldos) gerenciado pela Circle. Você tem uma carteira principal e pode criar outras.Objeto de Conta Bancária
: Representa uma conta bancária vinculada para receber saques.
Recursos Aninhados: São objetos que frequentemente são incorporados em outros recursos para fornecer informações detalhadas.
Objeto de Dinheiro
: Um objeto padrão para representar um valor monetário e sua moeda (por exemplo,{ "amount": "100.00", "currency": "USD" }
).Objetos de Origem
eDestino
: Estes especificam de onde os fundos para uma transação estão vindo e para onde estão indo.Objeto de Endereço de Blockchain
: Representa um endereço específico em uma blockchain suportada.
Aprofundando: O Objeto Payment
Um payment
é como você recebe fundos. Embora a API suporte pagamentos com cartão, para casos de uso de USDC, você frequentemente estará lidando com pagamentos que financiam sua carteira Circle.
Exemplo de Objeto Payment
:
{
"id": "e665ea6e-3a53-4f93-a85e-45178d48d9ea",
"type": "payment",
"merchantId": "c680d087-7b41-40aa-95a2-68febcdddb22",
"merchantWalletId": "1000002853",
"amount": {
"amount": "10.00",
"currency": "USD"
},
"source": {
"id": "86461e9f-db1a-487f-915b-641138062e7c",
"type": "card"
},
"description": "New customer payment",
"status": "confirmed",
"fees": {
"amount": "0.58",
"currency": "USD"
},
"createDate": "2024-01-10T02:29:53.888Z",
"updateDate": "2024-01-10T02:32:19.421Z"
}
Atributos Chave:
id
(string): O identificador único para este pagamento.amount
(Objeto de Dinheiro): O valor e a moeda do pagamento.source
(Objeto de Origem): Detalhes de onde o dinheiro veio (por exemplo, um cartão ou transferência bancária).status
(string): O estado atual do pagamento. Pode serpending
(pendente),confirmed
(confirmado),paid
(pago) oufailed
(falhou). Este é um campo crítico para monitorar.fees
(Objeto de Dinheiro): As taxas cobradas pela Circle para processar o pagamento.
Aprofundando: O Objeto Transfer
Uma transfer
é, sem dúvida, o objeto mais importante para "negociar" ou mover USDC. Ele representa o movimento de moeda digital.
Exemplo de Objeto Transfer
:
{
"id": "c332d75a-3870-410c-b26a-93e5a3ab90e8",
"source": {
"type": "wallet",
"id": "1000002853"
},
"destination": {
"type": "blockchain",
"address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
"chain": "ETH"
},
"amount": {
"amount": "150.50",
"currency": "USD"
},
"status": "pending",
"createDate": "2024-05-15T18:44:03.484Z",
"updateDate": "2024-05-15T18:44:03.484Z"
}
Atributos Chave:
id
(string): O identificador único para esta transferência.source
(Objeto de Origem): De onde os fundos estão vindo. Para transferências de saída, isso quase sempre será suawallet
.destination
(Objeto de Destino): Para onde os fundos estão indo. Isso pode ser outrawallet
da Circle ou, mais comumente, um endereço deblockchain
externo.amount
(Objeto de Dinheiro): O valor de USDC a ser transferido.status
(string): O status da transferência. Começará comopending
(pendente) e transitará paracomplete
(completo) oufailed
(falhou).
Objetos de Origem e Destino
Esses objetos aninhados são vitais, pois definem o fluxo de fundos em qualquer transação.
O campo type
deles determina o tipo de origem ou destino:
wallet
: Uma carteira da Circle, identificada por seuid
.blockchain
: Um endereço externo em uma blockchain, especificado poraddress
echain
(por exemplo,ETH
,SOL
,MATIC
).wire
: Uma conta bancária, usada para saques.card
: Um cartão de crédito/débito, usado para pagamentos.
Cadeias e Moedas Suportadas
A Circle é agnóstica em relação a cadeias e está constantemente expandindo seu suporte. No final de 2024, o USDC está disponível em várias blockchains importantes, incluindo:
- Ethereum (ETH)
- Solana (SOL)
- Polygon PoS (MATIC)
- TRON (TRX)
- Avalanche (AVAX)
- Stellar (XLM)
- Algorand (ALGO)
- Flow (FLOW)
Você deve especificar o identificador chain
correto ao fazer transferências. Para moedas fiduciárias, a API suporta principalmente USD
e EUR
. A currency
no objeto Money
deve ser sempre definida como USD
ao lidar com transferências de USDC.
Executando Transações: O Ciclo de Vida Completo
Agora chegamos ao cerne da questão: usar a API para movimentar dinheiro. Percorreremos um ciclo de vida completo: entrada de moeda fiduciária para obter USDC, transferência desse USDC para um endereço externo e, finalmente, a saída de volta para uma conta bancária fiduciária.
Passo 1: Entrada de Moeda Fiduciária com um Payment
Para muitos aplicativos, o primeiro passo é converter a moeda fiduciária de um cliente em USDC em sua carteira Circle. O endpoint da API Create Payment
é usado para isso. Embora a API suporte várias fontes de pagamento, focaremos no conceito.
Vamos supor que um cliente esteja pagando a você $500. Você faria uma requisição POST
para /v1/payments
.
Requisição de API para Criar um Pagamento:
curl -X POST \
https://api-sandbox.circle.com/v1/payments \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"idempotencyKey": "seu-uuid-unico-aqui-para-pagamento",
"source": {
"id": "algum-id-de-cartao-ou-banco",
"type": "card"
},
"amount": {
"amount": "500.00",
"currency": "USD"
},
"description": "Pagamento por serviços prestados"
}'
Nota Importante: A idempotencyKey
é crucial aqui. É um ID único (no formato UUID) que você gera para esta requisição. Se você enviar a mesma requisição duas vezes (por exemplo, devido a um erro de rede), a Circle reconhecerá a chave e processará o pagamento apenas uma vez. Abordaremos isso em mais detalhes no próximo capítulo.
Uma vez que este pagamento seja processado e seu status
se torne confirmed
(confirmado) ou paid
(pago), o valor equivalente em USDC (menos taxas) será creditado em seu merchantWalletId
.
Passo 2: Verificando o Saldo da Sua Carteira
Após receber um pagamento, você vai querer verificar se os fundos chegaram. Você pode verificar o saldo de qualquer uma de suas carteiras, mas mais comumente sua carteira principal.
Requisição de API para Obter Saldos:
curl -X GET \
https://api-sandbox.circle.com/v1/wallets/${YOUR_WALLET_ID}/balances \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Substitua ${YOUR_WALLET_ID}
pelo masterWalletId
que você recuperou anteriormente.
Resposta da API:
A resposta será uma lista de saldos, um para cada moeda que você possui.
{
"data": {
"available": [
{
"amount": "495.50",
"currency": "USD"
}
],
"unsettled": [
{
"amount": "0.00",
"currency": "USD"
}
]
}
}
O saldo available
(disponível) é o que você pode transferir ou sacar imediatamente.
Passo 3: Transferindo USDC On-Chain
Este é o cerne do uso de USDC. Você pode transferir fundos de sua carteira para qualquer endereço externo em uma blockchain suportada. Isso é perfeito para pagar fornecedores, mover fundos para um protocolo DeFi ou enviar valor para um usuário.
Digamos que você queira enviar 100 USDC para um endereço Ethereum.
Requisição de API para Criar uma Transferência:
curl -X POST \
https://api-sandbox.circle.com/v1/transfers \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"idempotencyKey": "outro-uuid-unico-para-transferencia",
"source": {
"type": "wallet",
"id": "1000002853"
},
"destination": {
"type": "blockchain",
"address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
"chain": "ETH"
},
"amount": {
"amount": "100.00",
"currency": "USD"
}
}'
Detalhes do Corpo da Requisição:
idempotencyKey
: Um novo UUID único para esta operação de transferência específica.source
: Sua carteira Circle, especificada por seuid
.destination
: Um endereço de blockchain externo.type
éblockchain
.address
é o endereço da carteira do destinatário.chain
é o identificador para a blockchain (ETH
para Ethereum).amount
: O valor de USDC a ser enviado.
A API responderá com um objeto Transfer
, inicialmente com um status
de pending
(pendente).
Entendendo as Confirmações de Blockchain
Transações on-chain não são instantâneas. Uma transferência deve ser transmitida para a rede e então confirmada por mineradores ou validadores. O status
de sua transferência só mudará para complete
(completo) depois que ela tiver recebido um número suficiente de confirmações na blockchain. A Circle gerencia essa complexidade para você. Você pode rastrear o status tanto consultando o endpoint GET /v1/transfers/{id}
quanto, preferencialmente, usando webhooks (abordado no próximo capítulo) para receber uma notificação assim que a transferência for concluída.
Passo 4: Saída de USDC para Fiat com um Payout
A etapa final no ciclo de vida é converter seu USDC de volta para moeda fiduciária em uma conta bancária. Isso é feito por meio de um payout
(saque). Antes de criar um saque, você deve primeiro vincular e verificar uma conta bancária, o que cria um objeto Wire Account
.
Uma vez que você tenha uma conta bancária de destino configurada (com seu próprio id
), você pode criar o saque.
Requisição de API para Criar um Saque:
curl -X POST \
https://api-sandbox.circle.com/v1/payouts \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"idempotencyKey": "outro-uuid-unico-para-saque",
"destination": {
"type": "wire",
"id": "seu-uuid-de-conta-bancaria-aqui"
},
"amount": {
"amount": "250.00",
"currency": "USD"
}
}'
A API responderá com um objeto Payout
. O status
será pending
(pendente) inicialmente e transitará para complete
(completo) assim que os fundos tiverem sido enviados com sucesso para o banco de destino.
Recursos Avançados e Melhores Práticas
Para construir um aplicativo verdadeiramente robusto e escalável, você precisa ir além das chamadas básicas de API e aproveitar os recursos avançados que a Circle oferece. Esses recursos são projetados para garantir a integridade dos dados, fornecer atualizações em tempo real e tornar seu aplicativo resiliente.
Requisições Idempotentes: Prevenindo Gastos Duplos
Mencionamos a idempotencyKey
várias vezes, mas sua importância não pode ser subestimada. Em sistemas financeiros, realizar acidentalmente uma operação duas vezes (como enviar um pagamento ou uma transferência) pode ser catastrófico. Problemas de rede podem fazer com que uma requisição expire, mesmo que o servidor a tenha processado com sucesso. Sem idempotência, seu aplicativo pode tentar novamente a requisição automaticamente, levando a uma transação duplicada.
Como funciona:
- Para qualquer requisição
POST
que cria um recurso (pagamentos, transferências, saques), você deve gerar um UUID (Identificador Universalmente Único) versão 4 e incluí-lo no campoidempotencyKey
do corpo da requisição. - Quando o servidor da Circle recebe a requisição, ele verifica se já viu essa chave antes.
- Se a chave for nova, ele processa a requisição e armazena a chave junto com o resultado.
- Se a chave já foi vista antes, ele não processa novamente a requisição. Em vez disso, ele simplesmente retorna o resultado da requisição original.
Isso garante que uma requisição específica só possa ser executada uma vez, não importa quantas vezes seja enviada.
Melhor Prática: Sempre gere e envie uma idempotencyKey
para cada operação POST
.
Atualizações em Tempo Real com Webhooks
Consultar uma API repetidamente para verificar o status de uma transação (GET /v1/transfers/{id}
) é ineficiente e lento. A abordagem correta e moderna é usar webhooks.
Um webhook é uma mensagem automatizada enviada de um aplicativo (Circle) para outro aplicativo (o seu) quando um evento específico ocorre. Você pode configurar uma URL no seu painel da Circle onde deseja receber essas notificações.
Quando o status de um pagamento, transferência ou saque muda, a Circle enviará uma requisição POST
para a sua URL configurada com um payload de notificação contendo o objeto atualizado.
Exemplo de Payload de Notificação para uma Transferência Concluída:
{
"notification": {
"id": "notification-uuid",
"type": "transfers",
"subscriptionId": "seu-id-de-assinatura"
},
"transfer": {
"id": "c332d75a-3870-410c-b26a-93e5a3ab90e8",
"source": { ... },
"destination": { ... },
"amount": {
"amount": "100.00",
"currency": "USD"
},
"status": "complete",
"transactionHash": "0x123abc...",
"createDate": "2024-05-15T18:44:03.484Z",
"updateDate": "2024-05-15T18:48:12.123Z"
}
}
Ao ouvir essas notificações, seu aplicativo pode reagir instantaneamente a eventos como uma transferência concluída ou um pagamento falho, proporcionando uma experiência de usuário muito melhor e permitindo a automação em tempo real.
Paginação e Filtragem: Lidando com Grandes Conjuntos de Dados
À medida que seu aplicativo cresce, você acumulará milhares de pagamentos, transferências e outros registros. Solicitar todos eles de uma vez usando um endpoint GET
como /v1/transfers
seria lento e complicado.
A API da Circle usa paginação baseada em cursor para resolver isso. Ao listar recursos, a resposta conterá apenas um número limitado de itens (a "página"). Você pode controlar o tamanho desta página com o parâmetro pageSize
. Para obter a próxima ou a página anterior de resultados, você usa os parâmetros pageAfter
ou pageBefore
, passando o ID do último ou primeiro item que você viu.
Exemplo: Obtendo a primeira página de 20 transferências:GET /v1/transfers?pageSize=20
Exemplo: Obtendo a próxima página de 20 transferências:GET /v1/transfers?pageSize=20&pageAfter={id_da_ultima_transferencia_da_pagina_anterior}
Você também pode filtrar resultados com base em intervalos de tempo (timestamps from
e to
) e outros atributos específicos do recurso.
Tratamento de Erros: Construindo um Aplicativo Resiliente
As coisas podem e vão dar errado. Uma requisição de API pode falhar devido a uma entrada inválida, fundos insuficientes ou um problema temporário do servidor. Um aplicativo robusto deve antecipar e lidar com esses erros graciosamente.
A API da Circle usa códigos de status HTTP padrão para indicar o resultado de uma requisição.
2xx
(por exemplo,200 OK
,201 Created
): Sucesso.4xx
(por exemplo,400 Bad Request
,401 Unauthorized
,404 Not Found
): Erro do lado do cliente. Você enviou algo errado.5xx
(por exemplo,500 Internal Server Error
): Erro do lado do servidor. Algo deu errado no lado da Circle.
Quando ocorre um erro, o corpo da resposta da API conterá um objeto JSON com mais detalhes.
Exemplo de Resposta de Erro (400 Bad Request
):
{
"code": 2,
"message": "Parâmetro inválido ou ausente. Veja os detalhes para mais informações.",
"errors": [
{
"location": "body",
"message": "endereço de destino é inválido",
"param": "destination.address"
}
]
}
Seu código deve sempre ser envolvido em blocos try/catch (ou o equivalente para sua linguagem) para lidar com possíveis exceções de chamadas de API. Você deve registrar os detalhes do erro e, se apropriado, apresentar uma mensagem útil ao usuário.
Conclusão: Capacitando o Futuro das Finanças
Percorremos todo o processo de uso da API da Circle para transacionar com USDC. Desde a configuração inicial do sandbox e autenticação até a execução de pagamentos, transferências e saques, você agora possui o conhecimento fundamental para construir aplicativos financeiros poderosos. Também exploramos os recursos avançados como idempotência, webhooks e tratamento de erros que são essenciais para criar sistemas profissionais e prontos para produção.
A API da Circle faz mais do que apenas permitir que você movimente uma moeda digital; ela fornece os trilhos programáveis para um novo sistema financeiro nativo da internet. Ao abstrair as complexidades da tecnologia blockchain e fornecer uma API limpa e orientada a recursos, a Circle capacita os desenvolvedores a inovar e construir a próxima geração de comércio global, serviços financeiros e pagamentos ponto a ponto.
As possibilidades são vastas. As ferramentas estão em suas mãos. Agora, vá construir algo incrível.
Quer uma plataforma integrada e tudo-em-um para sua Equipe de Desenvolvedores trabalhar em conjunto com máxima produtividade?
Apidog entrega todas as suas demandas e substitui o Postman por um preço muito mais acessível!