From a58e6ebe19a8dcad282443060ae3a38687f1bc1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Da=20N=C3=B3brega=20Brand=C3=A3o?= Date: Sun, 31 Aug 2025 14:35:15 -0300 Subject: [PATCH 1/4] feat: implement multilingual documentation --- docs.json | 169 +++- {pages => en}/authentication.mdx | 0 {pages => en}/client/create.mdx | 0 {pages => en}/client/list.mdx | 0 {pages => en}/client/reference.mdx | 0 {pages => en}/coupon/create.mdx | 0 {pages => en}/coupon/list.mdx | 0 {pages => en}/coupon/reference.mdx | 0 en/devmode.mdx | 51 + en/introduction.mdx | 71 ++ {pages => en}/payment/create.mdx | 0 {pages => en}/payment/list.mdx | 0 {pages => en}/payment/reference.mdx | 0 {pages => en}/pix-qrcode/check.mdx | 0 {pages => en}/pix-qrcode/create.mdx | 0 {pages => en}/pix-qrcode/list.mdx | 0 {pages => en}/pix-qrcode/reference.mdx | 0 {pages => en}/pix-qrcode/simulate-payment.mdx | 0 {pages => en}/production.mdx | 0 {pages => en}/sdks.mdx | 0 {pages => en}/webhooks.mdx | 0 {pages => en}/withdraw/create.mdx | 0 {pages => en}/withdraw/list.mdx | 0 {pages => en}/withdraw/reference.mdx | 0 es/authentication.mdx | 93 ++ es/client/create.mdx | 5 + es/client/list.mdx | 4 + es/client/reference.mdx | 62 ++ es/coupon/create.mdx | 4 + es/coupon/list.mdx | 4 + es/coupon/reference.mdx | 150 +++ es/devmode.mdx | 51 + es/introduction.mdx | 71 ++ es/payment/create.mdx | 4 + es/payment/list.mdx | 4 + es/payment/reference.mdx | 228 +++++ es/pix-qrcode/check.mdx | 4 + es/pix-qrcode/create.mdx | 4 + es/pix-qrcode/list.mdx | 4 + es/pix-qrcode/reference.mdx | 165 ++++ es/pix-qrcode/simulate-payment.mdx | 4 + es/production.mdx | 58 ++ es/sdks.mdx | 205 ++++ es/webhooks.mdx | 188 ++++ es/withdraw/create.mdx | 4 + es/withdraw/list.mdx | 4 + es/withdraw/reference.mdx | 182 ++++ openapi-en.yaml | 921 ++++++++++++++++++ openapi-es.yaml | 920 +++++++++++++++++ openapi.yaml => openapi-pt.yaml | 0 pt/authentication.mdx | 93 ++ pt/client/create.mdx | 5 + pt/client/list.mdx | 4 + pt/client/reference.mdx | 62 ++ pt/coupon/create.mdx | 4 + pt/coupon/list.mdx | 4 + pt/coupon/reference.mdx | 150 +++ {pages => pt}/devmode.mdx | 0 {pages => pt}/introduction.mdx | 0 pt/payment/create.mdx | 4 + pt/payment/list.mdx | 4 + pt/payment/reference.mdx | 228 +++++ pt/pix-qrcode/check.mdx | 4 + pt/pix-qrcode/create.mdx | 4 + pt/pix-qrcode/list.mdx | 4 + pt/pix-qrcode/reference.mdx | 165 ++++ pt/pix-qrcode/simulate-payment.mdx | 4 + pt/production.mdx | 58 ++ pt/sdks.mdx | 205 ++++ pt/webhooks.mdx | 188 ++++ pt/withdraw/create.mdx | 4 + pt/withdraw/list.mdx | 4 + pt/withdraw/reference.mdx | 182 ++++ 73 files changed, 4982 insertions(+), 32 deletions(-) rename {pages => en}/authentication.mdx (100%) rename {pages => en}/client/create.mdx (100%) rename {pages => en}/client/list.mdx (100%) rename {pages => en}/client/reference.mdx (100%) rename {pages => en}/coupon/create.mdx (100%) rename {pages => en}/coupon/list.mdx (100%) rename {pages => en}/coupon/reference.mdx (100%) create mode 100644 en/devmode.mdx create mode 100644 en/introduction.mdx rename {pages => en}/payment/create.mdx (100%) rename {pages => en}/payment/list.mdx (100%) rename {pages => en}/payment/reference.mdx (100%) rename {pages => en}/pix-qrcode/check.mdx (100%) rename {pages => en}/pix-qrcode/create.mdx (100%) rename {pages => en}/pix-qrcode/list.mdx (100%) rename {pages => en}/pix-qrcode/reference.mdx (100%) rename {pages => en}/pix-qrcode/simulate-payment.mdx (100%) rename {pages => en}/production.mdx (100%) rename {pages => en}/sdks.mdx (100%) rename {pages => en}/webhooks.mdx (100%) rename {pages => en}/withdraw/create.mdx (100%) rename {pages => en}/withdraw/list.mdx (100%) rename {pages => en}/withdraw/reference.mdx (100%) create mode 100644 es/authentication.mdx create mode 100644 es/client/create.mdx create mode 100644 es/client/list.mdx create mode 100644 es/client/reference.mdx create mode 100644 es/coupon/create.mdx create mode 100644 es/coupon/list.mdx create mode 100644 es/coupon/reference.mdx create mode 100644 es/devmode.mdx create mode 100644 es/introduction.mdx create mode 100644 es/payment/create.mdx create mode 100644 es/payment/list.mdx create mode 100644 es/payment/reference.mdx create mode 100644 es/pix-qrcode/check.mdx create mode 100644 es/pix-qrcode/create.mdx create mode 100644 es/pix-qrcode/list.mdx create mode 100644 es/pix-qrcode/reference.mdx create mode 100644 es/pix-qrcode/simulate-payment.mdx create mode 100644 es/production.mdx create mode 100644 es/sdks.mdx create mode 100644 es/webhooks.mdx create mode 100644 es/withdraw/create.mdx create mode 100644 es/withdraw/list.mdx create mode 100644 es/withdraw/reference.mdx create mode 100644 openapi-en.yaml create mode 100644 openapi-es.yaml rename openapi.yaml => openapi-pt.yaml (100%) create mode 100644 pt/authentication.mdx create mode 100644 pt/client/create.mdx create mode 100644 pt/client/list.mdx create mode 100644 pt/client/reference.mdx create mode 100644 pt/coupon/create.mdx create mode 100644 pt/coupon/list.mdx create mode 100644 pt/coupon/reference.mdx rename {pages => pt}/devmode.mdx (100%) rename {pages => pt}/introduction.mdx (100%) create mode 100644 pt/payment/create.mdx create mode 100644 pt/payment/list.mdx create mode 100644 pt/payment/reference.mdx create mode 100644 pt/pix-qrcode/check.mdx create mode 100644 pt/pix-qrcode/create.mdx create mode 100644 pt/pix-qrcode/list.mdx create mode 100644 pt/pix-qrcode/reference.mdx create mode 100644 pt/pix-qrcode/simulate-payment.mdx create mode 100644 pt/production.mdx create mode 100644 pt/sdks.mdx create mode 100644 pt/webhooks.mdx create mode 100644 pt/withdraw/create.mdx create mode 100644 pt/withdraw/list.mdx create mode 100644 pt/withdraw/reference.mdx diff --git a/docs.json b/docs.json index ecf59e0..72914cd 100644 --- a/docs.json +++ b/docs.json @@ -17,51 +17,156 @@ } }, "navigation": { - "tabs": [ + "languages": [ { - "tab": "Documentação", - "groups": [ + "language": "pt-BR", + "tabs": [ { - "group": "Introdução", - "pages": [ - "pages/introduction", - "pages/devmode", - "pages/authentication", - "pages/webhooks", - "pages/production", - "pages/sdks" + "tab": "Documentação", + "groups": [ + { + "group": "Introdução", + "pages": [ + "pt/introduction", + "pt/devmode", + "pt/authentication", + "pt/webhooks", + "pt/production", + "pt/sdks" + ] + }, + { + "group": "Cliente", + "pages": ["pt/client/reference", "pt/client/create", "pt/client/list"] + }, + { + "group": "Cobrança", + "pages": ["pt/payment/reference", "pt/payment/create", "pt/payment/list"] + }, + { + "group": "Pix QRCode", + "pages": [ + "pt/pix-qrcode/reference", + "pt/pix-qrcode/create", + "pt/pix-qrcode/simulate-payment", + "pt/pix-qrcode/check" + ] + }, + { + "group": "Cupom", + "pages": ["pt/coupon/reference", "pt/coupon/create", "pt/coupon/list"] + }, + { + "group": "Saque", + "pages": ["pt/withdraw/reference", "pt/withdraw/create", "pt/withdraw/list"] + } ] }, { - "group": "Cliente", - "pages": ["pages/client/reference", "pages/client/create", "pages/client/list"] - }, - { - "group": "Cobrança", - "pages": ["pages/payment/reference", "pages/payment/create", "pages/payment/list"] - }, + "tab": "Referência da API", + "openapi": "openapi-pt.yaml" + } + ] + }, + { + "language": "es", + "tabs": [ { - "group": "Pix QRCode", - "pages": [ - "pages/pix-qrcode/reference", - "pages/pix-qrcode/create", - "pages/pix-qrcode/simulate-payment", - "pages/pix-qrcode/check" + "tab": "Documentación", + "groups": [ + { + "group": "Introducción", + "pages": [ + "es/introduction", + "es/devmode", + "es/authentication", + "es/webhooks", + "es/production", + "es/sdks" + ] + }, + { + "group": "Cliente", + "pages": ["es/client/reference", "es/client/create", "es/client/list"] + }, + { + "group": "Cobranza", + "pages": ["es/payment/reference", "es/payment/create", "es/payment/list"] + }, + { + "group": "Pix QRCode", + "pages": [ + "es/pix-qrcode/reference", + "es/pix-qrcode/create", + "es/pix-qrcode/simulate-payment", + "es/pix-qrcode/check" + ] + }, + { + "group": "Cupón", + "pages": ["es/coupon/reference", "es/coupon/create", "es/coupon/list"] + }, + { + "group": "Retiro", + "pages": ["es/withdraw/reference", "es/withdraw/create", "es/withdraw/list"] + } ] }, { - "group": "Cupom", - "pages": ["pages/coupon/reference", "pages/coupon/create", "pages/coupon/list"] - }, - { - "group": "Saque", - "pages": ["pages/withdraw/reference", "pages/withdraw/create", "pages/withdraw/list"] + "tab": "Referencia de la API", + "openapi": "openapi-es.yaml" } ] }, { - "tab": "Referência da API", - "openapi": "openapi.yaml" + "language": "en", + "tabs": [ + { + "tab": "Documentation", + "groups": [ + { + "group": "Introduction", + "pages": [ + "en/introduction", + "en/devmode", + "en/authentication", + "en/webhooks", + "en/production", + "en/sdks" + ] + }, + { + "group": "Customer", + "pages": ["en/client/reference", "en/client/create", "en/client/list"] + }, + { + "group": "Payment", + "pages": ["en/payment/reference", "en/payment/create", "en/payment/list"] + }, + { + "group": "Pix QRCode", + "pages": [ + "en/pix-qrcode/reference", + "en/pix-qrcode/create", + "en/pix-qrcode/simulate-payment", + "en/pix-qrcode/check" + ] + }, + { + "group": "Coupon", + "pages": ["en/coupon/reference", "en/coupon/create", "en/coupon/list"] + }, + { + "group": "Withdraw", + "pages": ["en/withdraw/reference", "en/withdraw/create", "en/withdraw/list"] + } + ] + }, + { + "tab": "API Reference", + "openapi": "openapi-en.yaml" + } + ] } ] }, diff --git a/pages/authentication.mdx b/en/authentication.mdx similarity index 100% rename from pages/authentication.mdx rename to en/authentication.mdx diff --git a/pages/client/create.mdx b/en/client/create.mdx similarity index 100% rename from pages/client/create.mdx rename to en/client/create.mdx diff --git a/pages/client/list.mdx b/en/client/list.mdx similarity index 100% rename from pages/client/list.mdx rename to en/client/list.mdx diff --git a/pages/client/reference.mdx b/en/client/reference.mdx similarity index 100% rename from pages/client/reference.mdx rename to en/client/reference.mdx diff --git a/pages/coupon/create.mdx b/en/coupon/create.mdx similarity index 100% rename from pages/coupon/create.mdx rename to en/coupon/create.mdx diff --git a/pages/coupon/list.mdx b/en/coupon/list.mdx similarity index 100% rename from pages/coupon/list.mdx rename to en/coupon/list.mdx diff --git a/pages/coupon/reference.mdx b/en/coupon/reference.mdx similarity index 100% rename from pages/coupon/reference.mdx rename to en/coupon/reference.mdx diff --git a/en/devmode.mdx b/en/devmode.mdx new file mode 100644 index 0000000..0a91e21 --- /dev/null +++ b/en/devmode.mdx @@ -0,0 +1,51 @@ +--- +title: 'Dev mode, what is it?' +description: "Learn what dev mode is and how to use it best" +icon: 'code' +--- + +Dev mode is AbacatePay's development environment, designed to allow you to test all platform features safely and in a controlled manner. + +## What is Dev mode? + +When you create your AbacatePay account, it is automatically configured in Dev mode. In this environment: + +- All operations are simulated +- No real transactions are processed +- You can test all features without risks +- Data is isolated from the production environment + + + * Test your integrations safely + * Experiment with different payment scenarios + * Configure webhooks and receive test notifications + * Validate the complete flow of your application + + +## Using Dev mode + +To start testing: + +1. Create an API key in the development environment +2. Use this key in your test requests +3. Configure webhooks to receive test notifications +4. Validate all flows of your application + + + * Test all possible scenarios + * Validate error handling + * Check webhook notifications + * Confirm integration with your system + + +## Next Steps + +When you're confident with your integration: +1. Disable Dev mode +2. Complete the account verification process +3. Wait for production approval +4. Start processing real transactions + + + Our team is available to assist in the development process. Contact us by email ajuda@abacatepay.com + diff --git a/en/introduction.mdx b/en/introduction.mdx new file mode 100644 index 0000000..dd9c973 --- /dev/null +++ b/en/introduction.mdx @@ -0,0 +1,71 @@ +--- +title: Get Started +icon: 'Avocado' +description: "Grab your coffee and learn about AbacatePay!" +--- +In this documentation you will find everything you need to integrate with the AbacatePay API. Developed by developers for developers, our platform was designed to be intuitive and easy to use. + +## What is AbacatePay? + +AbacatePay is a payment gateway that emerged from our own need to simplify billing in our products. We realized that existing payment methods were excessively complex: +- Extensive and confusing documentation +- Long and bureaucratic approval processes +- Multiple ways to perform the same operation +- Some gateways even require courses for integration! + +Our solution? A platform that transforms the complexity of Fintechs into a simple and intuitive API. See how easy it is: + +```javascript +// Example of creating a charge +const payment = await abacatePay.payments.create({ + amount: 1000, + description: "Service provided" +}); +``` + +## Uncomplicated API + +Our API was built with three fundamental principles: + +1. **Intent-based**: Each endpoint represents exactly what you read + ``` + POST /billing/create // Creates a payment + GET /billing/get // Searches for a specific payment + ``` + +2. **Idempotent**: Execute the same request as many times as you need, without side effects + ```javascript + // Safe to execute multiple times + await abacatePay.billing.create({...}); + ``` + +3. **Consistent**: Our API always returns an option containing the error or return data, which facilitates implementation in strongly typed languages and consistency across all operations. + ```json + { + "data": { + "id": "bill_12345667", + "url": "https://abacatepay.com/pay/bill_12345667", + "amount": 1000, + "status": "PENDING", + "devMode": true, + "methods": ["PIX"], + "frequency": "ONE_TIME", + "nextBilling": null, + "customer": { + "id": "cust_12345", + "metadata": { + "email": "customer@example.com" + } + }, + "createdAt": "2024-11-04T18:38:28.573", + "updatedAt": "2024-11-04T18:38:28.573", + }, + "error": null + } + ``` + +To make it even easier, we offer official SDKs and support for development mode with dedicated API keys. + +## Questions? + +Our team is always ready to help! Contact us by email ajuda@abacatepay.com diff --git a/pages/payment/create.mdx b/en/payment/create.mdx similarity index 100% rename from pages/payment/create.mdx rename to en/payment/create.mdx diff --git a/pages/payment/list.mdx b/en/payment/list.mdx similarity index 100% rename from pages/payment/list.mdx rename to en/payment/list.mdx diff --git a/pages/payment/reference.mdx b/en/payment/reference.mdx similarity index 100% rename from pages/payment/reference.mdx rename to en/payment/reference.mdx diff --git a/pages/pix-qrcode/check.mdx b/en/pix-qrcode/check.mdx similarity index 100% rename from pages/pix-qrcode/check.mdx rename to en/pix-qrcode/check.mdx diff --git a/pages/pix-qrcode/create.mdx b/en/pix-qrcode/create.mdx similarity index 100% rename from pages/pix-qrcode/create.mdx rename to en/pix-qrcode/create.mdx diff --git a/pages/pix-qrcode/list.mdx b/en/pix-qrcode/list.mdx similarity index 100% rename from pages/pix-qrcode/list.mdx rename to en/pix-qrcode/list.mdx diff --git a/pages/pix-qrcode/reference.mdx b/en/pix-qrcode/reference.mdx similarity index 100% rename from pages/pix-qrcode/reference.mdx rename to en/pix-qrcode/reference.mdx diff --git a/pages/pix-qrcode/simulate-payment.mdx b/en/pix-qrcode/simulate-payment.mdx similarity index 100% rename from pages/pix-qrcode/simulate-payment.mdx rename to en/pix-qrcode/simulate-payment.mdx diff --git a/pages/production.mdx b/en/production.mdx similarity index 100% rename from pages/production.mdx rename to en/production.mdx diff --git a/pages/sdks.mdx b/en/sdks.mdx similarity index 100% rename from pages/sdks.mdx rename to en/sdks.mdx diff --git a/pages/webhooks.mdx b/en/webhooks.mdx similarity index 100% rename from pages/webhooks.mdx rename to en/webhooks.mdx diff --git a/pages/withdraw/create.mdx b/en/withdraw/create.mdx similarity index 100% rename from pages/withdraw/create.mdx rename to en/withdraw/create.mdx diff --git a/pages/withdraw/list.mdx b/en/withdraw/list.mdx similarity index 100% rename from pages/withdraw/list.mdx rename to en/withdraw/list.mdx diff --git a/pages/withdraw/reference.mdx b/en/withdraw/reference.mdx similarity index 100% rename from pages/withdraw/reference.mdx rename to en/withdraw/reference.mdx diff --git a/es/authentication.mdx b/es/authentication.mdx new file mode 100644 index 0000000..cdd516c --- /dev/null +++ b/es/authentication.mdx @@ -0,0 +1,93 @@ +--- +title: 'Autenticação' +description: 'Como enviar requisições para a nossa API' +icon: 'lock' +--- + + + **Chave de API**: Sua credencial de acesso à API da AbacatePay. Esta chave identifica sua conta e autoriza suas requisições. **IMPORTANTE**: Sem a chave de API, as requisições serão recusadas. + + +## Gerenciando chaves de API + +Gerencie suas chaves de API diretamente em nossa plataforma. Você pode: +- Listar todas as chaves ativas +- Criar novas chaves +- Revogar chaves existentes + + + Todas as requisições são enviadas para o mesmo endpoint (`https://api.abacatepay.com`), mas o ambiente é determinado pela chave de API utilizada: + - Chaves criadas em **dev mode** processam transações no ambiente de testes + - Chaves criadas em **produção** processam transações reais + + Saiba mais sobre o ambiente de desenvolvimento aqui. + + + + A API retornará o código HTTP `401` quando: + - A chave de API não for fornecida no header + - A chave for inválida + - A chave tiver sido revogada + + +## Criando chaves de API + + + * Armazene suas chaves em variáveis de ambiente ou gerenciadores de segredos + * Nunca compartilhe suas chaves de API + * A AbacatePay nunca solicitará suas chaves + * Revogue imediatamente qualquer chave comprometida + + +## Como criar sua chave de API + +Siga estes passos no dashboard da AbacatePay: + + + + + Interface da plataforma AbacatePay mostrando o botão de criação de chave + + Inicie o processo de criação de uma nova chave de API + + + + + + Formulário de criação de chave com campo de descrição + + Adicione uma descrição clara para identificar o propósito desta chave + + + + + + Lista de chaves com opção para copiar + + Copie a chave gerada e armazene-a em um local seguro + + + + + +Após criar sua chave, você pode começar a integrar com nossa API. Lembre-se de incluir a chave em todas as requisições no header `Authorization`: + +```bash +curl -X POST https://api.abacatepay.com/v1/payments \ + -H "Authorization: Bearer sua_chave_api" \ + -H "Content-Type: application/json" \ + -d '{"amount": 1000}' +``` + + + O mesmo endpoint (`https://api.abacatepay.com`) é usado tanto para o ambiente de desenvolvimento quanto para produção. O ambiente é determinado automaticamente pela chave de API utilizada na requisição. + diff --git a/es/client/create.mdx b/es/client/create.mdx new file mode 100644 index 0000000..77e2d82 --- /dev/null +++ b/es/client/create.mdx @@ -0,0 +1,5 @@ +--- +title: 'Criar um novo Cliente' +openapi: "POST /customer/create" +--- + diff --git a/es/client/list.mdx b/es/client/list.mdx new file mode 100644 index 0000000..65c5fd0 --- /dev/null +++ b/es/client/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Clientes' +openapi: "GET /customer/list" +--- diff --git a/es/client/reference.mdx b/es/client/reference.mdx new file mode 100644 index 0000000..323a1b4 --- /dev/null +++ b/es/client/reference.mdx @@ -0,0 +1,62 @@ +--- +title: 'Referência' +description: 'Gerencie seus clientes, aqueles que pagam você.' +icon: 'book-open-cover' +--- + +Um cliente é seu usuário final, aquele que você vai cobrar e pagar o seu produto. + +## Estrutura + +Um cliente é representado em nossa API pela seguinte estrutura: + +```json +{ + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } +} +``` + +## Atributos + +### id: + +```json {2} +{ + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", +} +``` + +`id` : string.
+Id único do cliente na AbacatePay + +### metadados: +Objeto com os dados do cliente + +```json json {2-7} +{ + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } +} +``` + +* `name` : string.
Nome do cliente (opcional) + +* `cellphone` : string.
Telefone do cliente (opcional) + +* `taxId` : string.
Documento válido do cliente, podendo ser CPF ou CNPJ (opcional) + +* `email` : string.
E-mail do cliente (obrigatório) + + + Não é possível criar um cliente com CPF/CNPJ inválido e caso já exista um cliente com esse CPF/CNPJ, a API não criará o cliente novo mas retornará o cliente já existente + \ No newline at end of file diff --git a/es/coupon/create.mdx b/es/coupon/create.mdx new file mode 100644 index 0000000..9cb1548 --- /dev/null +++ b/es/coupon/create.mdx @@ -0,0 +1,4 @@ +--- +title: 'Criar um novo cupom' +openapi: "POST /coupon/create" +--- \ No newline at end of file diff --git a/es/coupon/list.mdx b/es/coupon/list.mdx new file mode 100644 index 0000000..f1ef281 --- /dev/null +++ b/es/coupon/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar cupons' +openapi: "GET /coupon/list" +--- \ No newline at end of file diff --git a/es/coupon/reference.mdx b/es/coupon/reference.mdx new file mode 100644 index 0000000..9e0ea99 --- /dev/null +++ b/es/coupon/reference.mdx @@ -0,0 +1,150 @@ +--- +title: 'Referência' +description: 'Crie cupons de desconto para seus clientes usarem uma ou várias vezes' +icon: 'book-open-cover' +--- + +Os cupons de desconto permitem que você ofereça reduções de preço aos seus clientes de forma controlada e estratégica. Você pode criar cupons com desconto percentual ou valor fixo, definir limites de uso e acompanhar quantas vezes foram utilizados. + + +## Estrutura + +Um cupom é representado em nossa API pela seguinte estrutura: + +```json +{ + "id": "MY_COUPON", + "discountKind": "PERCENTAGE", + "discount": 10, + "maxRedeems": -1, + "redeemsCount": 0, + "status": "ACTIVE", + "devMode": true, + "notes": "teste de cupom", + "createdAt": "2025-01-23T14:06:16.880Z", + "updatedAt": "2025-01-23T14:06:16.880Z" +} +``` + +## Atributos: + + + + ```json {2} + { + "id": "MY_COUPON", + } + ``` + + `id` : string.
+ Código único do cupom que seus clientes irão utilizar para aplicar o desconto +
+ + ```json {2} + { + "notes": "Cupom de boas-vindas - 10% de desconto", + } + ``` + `notes` : string.
+ Descrição interna do cupom para sua organização e controle +
+ + ```json {2} + { + "maxRedeems": -1, + } + ``` + `maxRedeems` : number.
+ Limite de vezes que o cupom pode ser utilizado. Use `-1` para cupons ilimitados ou um número específico para limitar o uso +
+ + ```json {2} + { + "redeemsCount": 0, + } + ``` + `redeemsCount` : number.
+ Contador de quantas vezes o cupom já foi utilizado pelos clientes +
+ + ```json {2} + { + "discountKind": "PERCENTAGE", + } + ``` + `discountKind` : string.
+ Tipo de desconto aplicado pelo cupom + + + | Tipo | Descrição | + | ----------- | ------------------------------------- | + | `PERCENTAGE` | **Desconto percentual** (ex: 10% de desconto) | + | `FIXED` | **Valor fixo** (ex: R$ 5,00 de desconto) | + +
+ + ```json {2} + { + "discount": 10, + } + ``` + `discount` : number.
+ Valor do desconto. Para `PERCENTAGE` use números de 1-100 (ex: 10 = 10%). Para `FIXED` use o valor em centavos (ex: 500 = R$ 5,00) +
+ + ```json {2} + { + "status": "ACTIVE", + } + ``` + `status` : string.
+ Status atual do cupom + + + | Status | Descrição | + | ----------- | ------------------------------------- | + | `ACTIVE` | **O cupom está ativo e pode ser utilizado pelos clientes** | + | `DELETED` | **O cupom foi removido e não pode mais ser usado** | + | `DISABLED` | **O cupom foi desabilitado ou atingiu o limite máximo de usos** | + +
+ + ```json {2} + { + "devMode": true, + } + ``` + `devMode` : boolean.
+ Indica se o cupom foi criado em ambiente de desenvolvimento (`true`) ou produção (`false`) +
+ + ```json {2} + { + "metadata": { + "campaign": "black-friday-2024", + "category": "new-customers" + }, + } + ``` + `metadata` : object.
+ Objeto para armazenar informações adicionais sobre o cupom, como campanha, categoria ou outros dados relevantes para sua organização +
+ + ```json {2} + { + "createdAt": "2025-01-23T14:06:16.880Z", + } + ``` + `createdAt` : date-time.
+ Data e hora de criação do cupom +
+ + ```json {2} + { + "updatedAt": "2025-01-23T14:06:16.880Z", + } + ``` + `updatedAt` : date-time.
+ Data e hora da última atualização do cupom +
+
\ No newline at end of file diff --git a/es/devmode.mdx b/es/devmode.mdx new file mode 100644 index 0000000..66b6d9b --- /dev/null +++ b/es/devmode.mdx @@ -0,0 +1,51 @@ +--- +title: 'Dev mode, ¿qué es?' +description: "Aprende qué es dev mode y cómo utilizarlo de la mejor forma" +icon: 'code' +--- + +El Dev mode es el entorno de desarrollo de AbacatePay, diseñado para permitirte probar todas las funcionalidades de la plataforma de forma segura y controlada. + +## ¿Qué es el Dev mode? + +Cuando creas tu cuenta en AbacatePay, se configura automáticamente en Dev mode. En este entorno: + +- Todas las operaciones son simuladas +- Ninguna transacción real es procesada +- Puedes probar todas las funcionalidades sin riesgos +- Los datos están aislados del entorno de producción + + + * Prueba tus integraciones con seguridad + * Experimenta diferentes escenarios de pago + * Configura webhooks y recibe notificaciones de prueba + * Valida el flujo completo de tu aplicación + + +## Usando el Dev mode + +Para comenzar a probar: + +1. Crea una clave de API en el entorno de desarrollo +2. Usa esta clave en tus peticiones de prueba +3. Configura webhooks para recibir notificaciones de prueba +4. Valida todos los flujos de tu aplicación + + + * Prueba todos los escenarios posibles + * Valida el manejo de errores + * Verifica las notificaciones de webhook + * Confirma la integración con tu sistema + + +## Próximos Pasos + +Cuando estés confiado con tu integración: +1. Desactiva el Dev mode +2. Completa el proceso de verificación de la cuenta +3. Espera la aprobación para producción +4. Comienza a procesar transacciones reales + + + Nuestro equipo está disponible para auxiliar en el proceso de desarrollo. Contáctanos por email ajuda@abacatepay.com + diff --git a/es/introduction.mdx b/es/introduction.mdx new file mode 100644 index 0000000..0b397c8 --- /dev/null +++ b/es/introduction.mdx @@ -0,0 +1,71 @@ +--- +title: Comienza aquí +icon: 'Avocado' +description: "¡Toma tu café y aprende sobre AbacatePay!" +--- +En esta documentación encontrarás todo lo que necesitas para integrar con la API de AbacatePay. Desarrollada por desarrolladores para desarrolladores, nuestra plataforma fue diseñada para ser intuitiva y fácil de usar. + +## ¿Qué es AbacatePay? + +AbacatePay es una pasarela de pago que surgió de nuestra propia necesidad de simplificar cobros en nuestros productos. Nos dimos cuenta de que los medios de pago existentes eran excesivamente complejos: +- Documentaciones extensas y confusas +- Procesos de homologación largos y burocráticos +- Múltiples formas de realizar la misma operación +- ¡Algunas pasarelas incluso exigen cursos para integración! + +¿Nuestra solución? Una plataforma que transforma la complejidad de las Fintechs en una API simple e intuitiva. Mira qué fácil es: + +```javascript +// Ejemplo de creación de cobro +const payment = await abacatePay.payments.create({ + amount: 1000, + description: "Servicio prestado" +}); +``` + +## API descomplicada + +Nuestra API fue construida con tres principios fundamentales: + +1. **Basada en intención**: Cada endpoint representa exactamente lo que lees + ``` + POST /billing/create // Crea un pago + GET /billing/get // Busca un pago específico + ``` + +2. **Idempotente**: Ejecuta la misma petición cuantas veces necesites, sin efectos secundarios + ```javascript + // Seguro para ejecutar múltiples veces + await abacatePay.billing.create({...}); + ``` + +3. **Consistente**: Nuestra API siempre retorna una opción conteniendo el error o los datos de retorno, lo que facilita la implementación en lenguajes de tipado fuerte y consistencia en todas las operaciones. + ```json + { + "data": { + "id": "bill_12345667", + "url": "https://abacatepay.com/pay/bill_12345667", + "amount": 1000, + "status": "PENDING", + "devMode": true, + "methods": ["PIX"], + "frequency": "ONE_TIME", + "nextBilling": null, + "customer": { + "id": "cust_12345", + "metadata": { + "email": "customer@example.com" + } + }, + "createdAt": "2024-11-04T18:38:28.573", + "updatedAt": "2024-11-04T18:38:28.573", + }, + "error": null + } + ``` + +Para facilitar aún más, ofrecemos SDKs oficiales y soporte a modo de desarrollo con claves de API dedicadas. + +## ¿Dudas? + +¡Nuestro equipo está siempre listo para ayudar! Contáctanos por email ajuda@abacatepay.com diff --git a/es/payment/create.mdx b/es/payment/create.mdx new file mode 100644 index 0000000..6411953 --- /dev/null +++ b/es/payment/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar uma nova Cobrança +openapi: 'POST /billing/create' +--- diff --git a/es/payment/list.mdx b/es/payment/list.mdx new file mode 100644 index 0000000..571c2e7 --- /dev/null +++ b/es/payment/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Cobranças' +openapi: "GET /billing/list" +--- \ No newline at end of file diff --git a/es/payment/reference.mdx b/es/payment/reference.mdx new file mode 100644 index 0000000..9735518 --- /dev/null +++ b/es/payment/reference.mdx @@ -0,0 +1,228 @@ +--- +title: "Referência" +description: "Crie um link de cobrança e deixe seu cliente pagar" +icon: "book-open-cover" +--- + +O termo "cobrança" é genérico. Ele representa um portal de um fluxo de pagamento onde você pode cobrar seu cliente e ele fazer todo o processo de pagamento sem nenhuma interrupção. + +Atualmente uma cobrança pode ser de duas formas: +- `ONE_TIME` para cobranças que serão pagas uma única vez. preciso enviar os dados do seu cliente. Para cobrançar `ONE_TIME` é obrigatório informar o cliente ao criar a cobrança por meio dos campos `customerId` ou `customer`. + - Só é necessário fornecer uma das opções de identificador do cliente: `customerId` **OU** `customer`. +- `MULTIPLE_PAYMENTS` é uma cobrança que pode ser paga multiplas vezes e por múltiplas pessoas diferentes. **Ex:** utilização de um único link de pagamento para vender um produto para múltiplas pessoas. + - Para cobranças `MULTIPLE_PAYMENTS` o usuário informará informações como CPF, nome e email na página do checkout. + + + +## Estrutura + +Uma cobrança é representada em nossa API pela seguinte estrutura: + +```json json +{ + "id": "bill_uA0M0xwg5R4mSyr0n2PjHQXY", + "frequency": "ONE_TIME", + "url": "https://abacatepay.com/pay/bill_uA0M0xwg5R4mSyr0n2PjHQXY", + "amount": 4000, + "status": "PAID", + "devMode": true, + "methods": ["PIX"], + "products": [ + { + "id": "prod_dNFbdDjfpaegmzBWWdNM2Huw", + "externalId": "prod-1234", + "quantity": 1 + } + ], + "customer": { + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } + }, + "metadata": { + "fee": 100, + "returnUrl": "https://example.com/billing", + "completionUrl": "https://example.com/completion" + }, + "nextBilling": null, + "allowCoupons": false, + "coupons": [], + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "bill_uA0M0xwg5R4mSyr0n2PjHQXY", + } + ``` + + `id` : string.
+ Id único da cobrança na AbacatePay +
+ + ```json json {2} + { + "frequency": "ONE_TIME", + } + ``` + `frequency` : string.
+ Frequência da cobrança. Pode ser `ONE_TIME` ou `MULTIPLE_PAYMENTS`. + + + | | | + | ---------------------| ---------------------------------------------------------------------------------------------------- | + | `ONE_TIME` | **Cobrança que aceita um único pagamento. É necessário enviar os dados do cliente** | + | `MULTIPLE_PAYMENTS` | **Cobrança em modo checkout, aceita vários pagamentos. Não é necessário enviar os dados do cliente.**| + +
+ + ```json json {2} + { + "url": "https://abacatepay.com/pay/bill_uA0M0xwg5R4mSyr0n2PjHQXY", + } + ``` + `url` : string.
+ URL para seu cliente executar o pagamento da cobrança + + ### Amount: + ```json json {2} + { + "amount": 4000, + } + ``` + `amount` : number.
+ Valor da cobrança em centavos +
+ + ```json json {2} + { + "amount": 4000, + } + ``` + `amount` : number.
+ Valor da cobrança em centavos + +
+ + ```json json {2} + { + "status": "PAID", + } + ``` + `status` : string.
+ Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED` + + + | | | + | -----------| ------------------------------------- | + | `PENDING` | **A cobrança está com o pagamento pendente** | + | `EXPIRED` | **O tempo limite de pagamento foi excedido** | + | `CANCELLED`| **A cobrança foi cancelada por você** | + | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | + | `REFUNDED` | **O valor foi devolvido ao cliente** | + +
+ + ```json json {2} + { + "methods": ["PIX"], + } + ``` + `methods` : array
+ Tipos de pagamento. Suportamos somente `PIX` no momento. +
+ + ```json json {2-9} + { + "products": + [ + { + "id": "prod_dNFbdDjfpaegmzBWWdNM2Huw", + "externalId": "prod-1234", + "quantity": 1 + } + ], + } + ``` + `products` : array
+ Lista de produtos inclusos na cobrança +
+ + ```json json {2-10} + { + "customer": { + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } + } + } + ``` + `customer` : object
+ Cliente que você está cobrando. Veja referência da estrutura aqui +
+ + ```json json {2-5} + { + "metadata": { + "fee": 100, + "returnUrl": "https://example.com/billing", + "completionUrl": "https://example.com/completion" + } + } + ``` + `metadata` : object
+ Objeto com metadados sobre a cobrança + + * `fee` number + Taxa aplicada pela AbacatePay + * `returnUrl` string + URL que o cliente será redirecionado ao clicar no botão "voltar" + * `completionUrl` string + URL que o cliente será redirecionado ao realizar o pagamento +
+ + ```json json {2} + { + "nextBilling": null, + } + ``` + + `nextBilling` : date-time | null.
+ Data e hora da próxima cobrança, ou null para cobranças únicas +
+ + ```json json {2} + { + "allowCoupons": false, + } + ``` + + `allowCoupons` : bool | null.
+ Permite ou não cupons para a cobrança +
+ + ```json json {2} + { + "coupons": [], + } + ``` + + `coupons` : array
+ Cupons permitidos na cobrança. Só são considerados os cupons se `allowCoupons` é verdadeiro. +
+ +
diff --git a/es/pix-qrcode/check.mdx b/es/pix-qrcode/check.mdx new file mode 100644 index 0000000..a87626a --- /dev/null +++ b/es/pix-qrcode/check.mdx @@ -0,0 +1,4 @@ +--- +title: 'Checar Status' +openapi: 'GET /pixQrCode/check' +--- diff --git a/es/pix-qrcode/create.mdx b/es/pix-qrcode/create.mdx new file mode 100644 index 0000000..a58798b --- /dev/null +++ b/es/pix-qrcode/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar QRCode PIX +openapi: 'POST /pixQrCode/create' +--- diff --git a/es/pix-qrcode/list.mdx b/es/pix-qrcode/list.mdx new file mode 100644 index 0000000..bf6edf9 --- /dev/null +++ b/es/pix-qrcode/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar QRCodes Pix' +openapi: "GET /pixQrCode/list" +--- \ No newline at end of file diff --git a/es/pix-qrcode/reference.mdx b/es/pix-qrcode/reference.mdx new file mode 100644 index 0000000..b753055 --- /dev/null +++ b/es/pix-qrcode/reference.mdx @@ -0,0 +1,165 @@ +--- +title: 'Referência' +description: 'Gere um QRCode Pix e um código copia-e-cola para o seu cliente' +icon: 'book-open-cover' +--- + + + +## Estrutura + +Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutura: + +```json json +{ + "id": "pix_charabc123456789", + "amount": 4000, + "status": "PAID", + "devMode": true, + "method": "PIX", + "brCode": "...", + "brCodeBase64": "...", + "platformFee": 80, + "description": "Pagamento PIX com AbacatePay", + "metadata": { + "pedidoId": "123" + }, + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z", + "expiresAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "abc123uA0M0xwg5R4mSyr0n2PjHQXY" + } + ``` + `id` : string.
+ Identificador único da cobrança. +
+ + + ```json json {2} + { + "amount": 4000 + } + ``` + `amount` : number.
+ Valor da cobrança em centavos (ex: 4000 = R$ 40,00) +
+ + + ```json json {2} + { + "status": "PAID" + } + ``` + `status` : string.
+ Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED`. + + | Status | Descrição | + | ----------- | ------------------------------------- | + | `PENDING` | **A cobrança está com o pagamento pendente** | + | `EXPIRED` | **O tempo limite de pagamento foi excedido** | + | `CANCELLED`| **A cobrança foi cancelada por você** | + | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | + | `REFUNDED` | **O valor foi devolvido ao cliente** | + +
+ + + ```json json {2} + { + "devMode": true + } + ``` + `devMode` : boolean.
+ Indica se a cobrança está em ambiente de testes (`true`) ou produção (`false`). +
+ + + ```json json {2} + { + "method": "PIX" + } + ``` + `method` : string.
+ Método de pagamento. +
+ + + ```json json {2} + { + "brCode": "..." + } + ``` + `brCode` : string.
+ Código PIX (copia-e-cola) para pagamento. +
+ + + ```json json {2} + { + "brCodeBase64": "..." + } + ``` + `brCodeBase64` : string.
+ Código PIX no formato Base64 (útil para exibição em imagens). +
+ + + ```json json {2} + { + "platformFee": 80 + } + ``` + `platformFee` : number.
+ Taxa da plataforma em centavos. Exemplo: `80` significa R$ 0,80. +
+ + + ```json json {2} + { + "description": "Pagamento PIX com AbacatePay" + } + ``` + `description` : string.
+ Descrição da cobrança. +
+ + + ```json json {2} + { + "createdAt": "2024-12-06T18:56:15.538Z" + } + ``` + `createdAt` : date-time.
+ Data e hora da criação da cobrança. +
+ + + ```json json {2} + { + "updatedAt": "2024-12-06T18:56:15.538Z" + } + ``` + `updatedAt` : date-time.
+ Última atualização da cobrança. +
+ + + ```json json {2} + { + "expiresAt": "2024-12-06T18:56:15.538Z" + } + ``` + `expiresAt` : date-time.
+ Data e hora de expiração do QRCode. +
+ +
diff --git a/es/pix-qrcode/simulate-payment.mdx b/es/pix-qrcode/simulate-payment.mdx new file mode 100644 index 0000000..68a0807 --- /dev/null +++ b/es/pix-qrcode/simulate-payment.mdx @@ -0,0 +1,4 @@ +--- +title: 'Simular Pagamento' +openapi: 'POST /pixQrCode/simulate-payment' +--- diff --git a/es/production.mdx b/es/production.mdx new file mode 100644 index 0000000..6746216 --- /dev/null +++ b/es/production.mdx @@ -0,0 +1,58 @@ +--- +title: 'Indo para produção' +description: 'Como sair do dev mode e começar a faturar' +icon: 'conveyor-belt-arm' +--- + +Ao migrar do ambiente de desenvolvimento para produção, você precisará completar o processo de verificação da sua conta. Este processo é necessário para garantir a segurança e conformidade das operações. + +## Processo de Verificação + +Para ativar sua conta em produção, siga estes passos: + + + + + Interface da plataforma AbacatePay mostrando o botão de Dev mode + + Clique no botão "Dev mode" no canto superior direito da plataforma para iniciar o processo de migração + + + + + + Formulário de documentação da AbacatePay + + Preencha os dados da sua empresa, informações dos sócios e anexe os documentos solicitados: + - Documentos da empresa + - Documentos dos sócios + - Comprovante de endereço + - Outros documentos específicos do seu segmento + + + + + + + Após o envio dos documentos: + - Nossa equipe analisará sua documentação + - Você receberá uma resposta em até 24 horas + - O e-mail de aprovação conterá instruções para os próximos passos + + + + * Certifique-se de que todos os documentos estão legíveis + * Verifique se as informações estão atualizadas + * Mantenha os dados consistentes em todos os documentos + * Responda prontamente a qualquer solicitação adicional + + + + Nossa equipe está disponível para auxiliar no processo de migração. Entre em contato pelo e-mail ajuda@abacatepay.com + \ No newline at end of file diff --git a/es/sdks.mdx b/es/sdks.mdx new file mode 100644 index 0000000..7610105 --- /dev/null +++ b/es/sdks.mdx @@ -0,0 +1,205 @@ +--- +title: 'SDKs' +description: 'Bibliotecas oficiais para integração com a API da AbacatePay' +icon: 'boxes-stacked' +--- + + + **Acelere sua integração com nossos SDKs**: Nossas bibliotecas oficiais facilitam a integração com a API da AbacatePay em várias linguagens de programação. + + +## O que são os SDKs da AbacatePay? + +Os SDKs (Software Development Kits) da AbacatePay são bibliotecas que simplificam a comunicação com nossa API. Eles oferecem uma interface amigável e específica para cada linguagem, permitindo que você integre rapidamente nossos serviços de pagamento ao seu aplicativo. + + + * **Integração simplificada**: Funções prontas para todos os endpoints da API + * **Tipagem forte**: Interfaces completas em linguagens com suporte a tipos + * **Tratamento de erros**: Gerenciamento automático dos casos de erro mais comuns + * **Menor curva de aprendizado**: Não é necessário conhecer todos os detalhes da API + * **Atualizações frequentes**: Mantemos os SDKs atualizados com as mais recentes funcionalidades + + +## SDKs Disponíveis + +Oferecemos SDKs oficiais para diversas linguagens de programação. Escolha o que melhor se adapta à sua stack tecnológica: + + + + + + SDK oficial para Node.js, compatível com TypeScript e ES modules. + + + SDK oficial para Python 3.10+, com suporte a async/await e type hints. + + + SDK oficial para Java 8+, compatível com Spring Boot e Jakarta EE. + + + SDK oficial para PHP 7.4+, com suporte a Composer e PSR standards. + + + SDK oficial para Ruby 2.6+, disponível como gem e com suporte a Rails. + + + SDK oficial para Go 1.13+, com suporte a módulos e generics. + + + SDK oficial para Rust, com foco em segurança e performance. + + + SDK oficial para Elixir, ideal para aplicações escaláveis e distribuídas. + + + + + + + SDK oficial para Kotlin, ideal para aplicativos Android modernos. + + + SDK oficial para Swift, ideal para aplicativos iOS e macOS. + + + + + +## Exemplos de Uso + +Veja como é simples usar nossos SDKs em algumas das linguagens mais populares: + + +```javascript Node.js +// Instalação: npm install abacatepay-nodejs-sdk +import AbacatePay from 'abacatepay-nodejs-sdk'; + +// Inicialize o cliente com sua chave de API +const abacate = AbacatePay('your_api_key'); + +// Crie um pagamento PIX +async function createPixPayment() { + const billing = await abacate.billing.create({ + frequency: "ONE_TIME", + methods: ["PIX"], + products: [ + { + externalId: "PRO-PLAN", + name: "Pro plan", + quantity: 1, + price: 1000 // Amount in cents + } + ], + returnUrl: "https://yoursite.com/app", + completionUrl: "https://yoursite.com/payment/success", + customer: { + email: 'customer@example.com' + } + }); + + return billing +} + +createPixPayment(); +``` + +```python Python +# Instalação: pip install abacatepay +from abacatepay import AbacatePay +from abacatepay.products import Product + +# Inicialize o cliente com sua chave de API +client = AbacatePay( + api_key="sua_chave_api", +) + +# Crie produtos para a cobrança +products = [ + Product( + external_id="123", + name="Produto de teste", + quantity=1, + price=50_00, + description="Example product" + ), + # Ou como dicionário + { + 'external_id': "321", + 'name': "Product as dict", + 'quantity': 1, + 'price': 10_00, + 'description': "Example using dict" + } +] + +# Crie uma cobrança +billing = client.billing.create( + products=products, + return_url="https://yourwebsite.com/return", + completion_url="https://yourwebsite.com/complete" +) + +print(f"URL da cobrança: {billing.data.url}") +``` + +```php PHP +// Instalação: composer require abacatepay/sdk + 'sua_chave_api', + 'environment' => 'production' // ou 'sandbox' para ambiente de testes +]); + +// Crie um pagamento PIX +try { + $payment = $client->payments->createPix([ + 'value' => 1000, // R$ 10,00 + 'description' => 'Pagamento de teste', + 'expiresIn' => 3600 // 1 hora + ]); + + echo "QR Code: " . $payment->qrCode . "\n"; + echo "Chave de cobrança: " . $payment->chargeKey . "\n"; +} catch (Exception $e) { + echo "Erro ao criar pagamento: " . $e->getMessage() . "\n"; +} +``` + + +## Perguntas Frequentes + + + Cada SDK tem instruções de instalação específicas no seu repositório no GitHub. Geralmente, você pode usar o gerenciador de pacotes da sua linguagem, como npm, pip, composer, bundle, etc. + + + + Sim! Todos os nossos SDKs suportam ambos os ambientes. Em alguns casos, é preciso configurar o parâmetro `environment` ao inicializar o cliente para `sandbox` ou `production`, ou basta usar a chave de api do ambiente desejado. + + + + Você pode abrir uma issue no repositório do GitHub do SDK específico. Nossa equipe está sempre atenta para corrigir bugs e melhorar nossos SDKs. + + + + Entre em contato conosco em ajuda@abacatepay.com informando qual linguagem você precisa. Também aceitamos contribuições da comunidade! + + +## Recursos Adicionais + + + + Aprenda a configurar webhooks para receber notificações de eventos. + + + Saiba como usar o ambiente de desenvolvimento para testar suas integrações. + + + + + Nossa equipe está disponível para ajudar com qualquer dúvida sobre nossos SDKs. Entre em contato pelo e-mail ajuda@abacatepay.com + diff --git a/es/webhooks.mdx b/es/webhooks.mdx new file mode 100644 index 0000000..b0fb20f --- /dev/null +++ b/es/webhooks.mdx @@ -0,0 +1,188 @@ +--- +title: 'Webhooks' +description: 'Configure e receba notificações sobre atualizações' +icon: 'webhook' +--- + +Webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos importantes da AbacatePay. + +## Gerenciando webhooks + +Gerencie seus webhooks diretamente em nossa plataforma. Você pode: +- Listar todos os webhooks ativos +- Criar novos webhooks +- Remover webhooks existentes + + + Os webhooks são específicos para cada ambiente: + - Webhooks criados em **dev mode** recebem notificações apenas do ambiente de testes + - Webhooks criados em **produção** recebem notificações apenas de dados reais + + Saiba mais sobre o ambiente de desenvolvimento aqui. + + +## Criando webhooks + + + * Configure um secret único para cada webhook + * Valide o secret em todas as requisições recebidas + * Use HTTPS para todas as URLs de webhook + * Implemente retry logic para lidar com falhas temporárias + + +## Como criar seu webhook + +Siga estes passos no dashboard da AbacatePay: + + + + + Interface da plataforma AbacatePay mostrando a seção de webhooks + + Inicie o processo de configuração de um novo webhook + + + + + + Formulário de criação de webhook + + Você será direcionado ao formulário de configuração + + + + + + + * **Nome**: Identificador único para seu webhook (ex: "Notificações de Pagamento") + * **URL**: Endpoint HTTPS que receberá as notificações + * **Secret**: Chave secreta para validar as requisições + + + + + +## Protegendo suas requisições + +Cada notificação enviada para seu webhook inclui o secret configurado como parâmetro de query string para validação. + +### Exemplo de URL de Webhook + +URL base do seu webhook: +``` +https://meusite.com/webhook/abacatepay +``` + +URL com secret (como será chamado): +``` +https://meusite.com/webhook/abacatepay?webhookSecret=seu_secret_aqui +``` + +### Exemplo de Implementação + +```javascript +// Exemplo de validação do webhook +app.post('/webhook/abacatepay', (req, res) => { + const webhookSecret = req.query.webhookSecret; + + if (webhookSecret !== process.env.WEBHOOK_SECRET) { + return res.status(401).json({ error: 'Invalid webhook secret' }); + } + + // Processa a notificação + const event = req.body; + console.log('Received webhook:', event); + + res.status(200).json({ received: true }); +}); +``` + +## Eventos Suportados + +Atualmente, suportamos os seguintes eventos: + +### `billing.paid` + +Este evento é disparado quando um pagamento é confirmado. O payload varia dependendo da origem do pagamento: + +#### Pagamento via PIX QR Code + +```json +{ + "data": { + "payment": { + "amount": 1000, + "fee": 80, + "method": "PIX" + }, + "pixQrCode": { + "amount": 1000, + "id": "pix_char_mXTWdj6sABWnc4uL2Rh1r6tb", + "kind": "PIX", + "status": "PAID" + } + }, + "devMode": false, + "event": "billing.paid" +} +``` + +#### Pagamento via Cobrança + +```json +{ + "data": { + "payment": { + "amount": 1000, + "fee": 80, + "method": "PIX" + }, + "billing": { + "amount": 1000, + "couponsUsed": [], + "customer": { + "id": "cust_4hnLDN3YfUWrwQBQKYMwL6Ar", + "metadata": { + "cellphone": "11111111111", + "email": "christopher@abacatepay.com", + "name": "Christopher Ribeiro", + "taxId": "12345678901" + } + }, + "frequency": "ONE_TIME", + "id": "bill_QgW1BT3uzaDGR3ANKgmmmabZ", + "kind": [ + "PIX" + ], + "paidAmount": 1000, + "products": [ + { + "externalId": "123", + "id": "prod_RGKGsjBWsJwRn1mHyGMFJNjP", + "quantity": 1 + } + ], + "status": "PAID" + } + }, + "devMode": false, + "event": "billing.paid" +} +``` + + + * O campo `devMode` indica se o evento ocorreu no ambiente de desenvolvimento + * Todos os valores monetários são expressos em centavos + * O campo `fee` representa a taxa cobrada pela AbacatePay + * O campo `event` identifica o tipo de evento recebido + + + + Nossa equipe está disponível para auxiliar na implementação de webhooks. Entre em contato pelo e-mail ajuda@abacatepay.com + diff --git a/es/withdraw/create.mdx b/es/withdraw/create.mdx new file mode 100644 index 0000000..bb06841 --- /dev/null +++ b/es/withdraw/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar um novo Saque +openapi: 'POST /withdraw/create' +--- diff --git a/es/withdraw/list.mdx b/es/withdraw/list.mdx new file mode 100644 index 0000000..20beeab --- /dev/null +++ b/es/withdraw/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Saques' +openapi: "GET /withdraw/list" +--- \ No newline at end of file diff --git a/es/withdraw/reference.mdx b/es/withdraw/reference.mdx new file mode 100644 index 0000000..fa724ab --- /dev/null +++ b/es/withdraw/reference.mdx @@ -0,0 +1,182 @@ +--- +title: "Referência" +description: "Realize saques para chaves PIX" +icon: "book-open-cover" +--- + +O módulo de **Saque** permite que você transfira valores da sua conta AbacatePay para uma chave PIX de sua escolha. É uma funcionalidade essencial para gerenciar seus fundos e realizar transferências. + +Atualmente, o saque suporta apenas o método **PIX**, que é o método mais rápido e eficiente para transferências no Brasil. + +## Estrutura + +Um saque é representado em nossa API pela seguinte estrutura de transação: + +```json json +{ + "id": "tran_1234567890abcdef", + "status": "PENDING", + "devMode": true, + "receiptUrl": "https://abacatepay.com/receipt/tran_1234567890abcdef", + "kind": "WITHDRAW", + "amount": 5000, + "platformFee": 80, + "externalId": "withdraw-1234", + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "tran_1234567890abcdef", + } + ``` + + `id` : string.
+ Id único da transação de saque na AbacatePay +
+ + ```json json {2} + { + "status": "PENDING", + } + ``` + `status` : string.
+ Status atual da transação de saque. + + + | | | + | ---------------------| ---------------------------------------------------------------------------------------------------- | + | `PENDING` | **Saque criado e aguardando processamento** | + | `EXPIRED` | **Saque expirado e não pode mais ser processado** | + | `CANCELLED` | **Saque cancelado** | + | `COMPLETE` | **Saque processado e concluído com sucesso** | + | `REFUNDED` | **Saque reembolsado** | + +
+ + ```json json {2} + { + "devMode": true, + } + ``` + `devMode` : boolean.
+ Indica se o saque foi criado em ambiente de desenvolvimento (sandbox) ou produção. Atualmente suportamos saques somente em produção. +
+ + ```json json {2} + { + "receiptUrl": "https://abacatepay.com/receipt/tran_1234567890abcdef", + } + ``` + `receiptUrl` : string.
+ URL do comprovante da transação de saque. +
+ + ```json json {2} + { + "kind": "WITHDRAW", + } + ``` + `kind` : string.
+ Tipo da transação. Para saques, sempre será `WITHDRAW`. +
+ + ```json json {2} + { + "amount": 5000, + } + ``` + `amount` : number.
+ Valor do saque em centavos. No exemplo, R$ 50,00. +
+ + ```json json {2} + { + "platformFee": 80, + } + ``` + `platformFee` : number.
+ Taxa da plataforma cobrada pelo saque em centavos. No exemplo, R$ 0,80. +
+ + ```json json {2} + { + "externalId": "withdraw-1234", + } + ``` + `externalId` : string.
+ Identificador único do saque em seu sistema. Opcional. +
+ + ```json json {2} + { + "createdAt": "2024-12-06T18:56:15.538Z", + } + ``` + `createdAt` : string.
+ Data e hora de criação do saque. +
+ + ```json json {2} + { + "updatedAt": "2024-12-06T18:56:15.538Z", + } + ``` + `updatedAt` : string.
+ Data e hora da última atualização do saque. +
+
+ +## Tipos de Chave PIX + +O saque suporta os seguintes tipos de chave PIX: + + + + Chave PIX baseada no CPF (Cadastro de Pessoa Física) do beneficiário. + + **Exemplo:** `123.456.789-01` + + + Chave PIX baseada no CNPJ (Cadastro Nacional da Pessoa Jurídica) do beneficiário. + + **Exemplo:** `12.345.678/0001-90` + + + Chave PIX baseada no número de telefone celular do beneficiário. + + **Exemplo:** `+5511999999999` + + + Chave PIX baseada no endereço de e-mail do beneficiário. + + **Exemplo:** `usuario@exemplo.com` + + + Chave PIX aleatória (chave aleatória) do beneficiário. + + **Exemplo:** `a1b2c3d4-e5f6-7890-abcd-ef1234567890` + + + +## Limites e Taxas + +- **Valor mínimo:** R$ 3,50 (350 centavos) +- **Taxa da plataforma:** R$ 0,80 centavos se estiver dentro dos limites descritos em nossos [termos de uso](https://abacatepay.com/termos) +- **Processamento:** Instantâneo +- **Disponibilidade:** 24/7 caso os limites diários e noturnos da sua conta não tenham sido excedidos +- **Limite de uso:** 1 saque por minuto. Tentativas em excesso resultarão em erro HTTP 429 (Too Many Requests). Para aumentar o limite entre em contato com nosso suporte + +## Segurança + +- Todos os saques são autenticados via Bearer Token +- Validação automática das chaves PIX +- Logs detalhados de todas as transações +- Possibilidade de cancelamento em caso de erro +- Abusos desta API podem resultar em suspensão da conta conforme descrito em nossos [termos de uso](https://abacatepay.com/termos) diff --git a/openapi-en.yaml b/openapi-en.yaml new file mode 100644 index 0000000..e8a6ddd --- /dev/null +++ b/openapi-en.yaml @@ -0,0 +1,921 @@ +openapi: 3.1.0 +info: + title: AbacatePay API + description: API for managing charges and payments using AbacatePay. + version: 1.0.0 +servers: + - url: https://api.abacatepay.com/v1 + description: Single server for production and sandbox environments. +paths: + /customer/create: + post: + summary: Create a new customer + description: Allows you to create a new customer for your store. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + description: Your customer data if you want to create them at the time of creating your charge. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Full name of your customer + example: Daniel Lima + cellphone: + type: string + description: Customer's mobile phone + example: (11) 4002-8922 + email: + type: string + description: Customer's email + example: daniel_lima@abacatepay.com + taxId: + type: string + description: Valid CPF or CNPJ of the customer. + example: 123.456.789-01 + responses: + '200': + description: Customer created successfully. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Customer' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /customer/list: + get: + summary: List customers + description: Allows you to retrieve a list of all your customers. + security: + - bearerAuth: [] + responses: + '200': + description: Customer list returned successfully. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: List of customers. + items: + $ref: '#/components/schemas/Customer' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /coupon/create: + post: + summary: Create a new coupon + description: Allows you to create a new coupon that can be used by your customers to apply discounts. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Coupon' + error: + type: 'null' + responses: + '200': + description: Coupon created successfully. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/CouponResponse' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /coupon/list: + get: + summary: List coupons + description: Allows you to retrieve a list of all your coupons. + security: + - bearerAuth: [] + responses: + '200': + description: Coupon list returned successfully. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: List of coupons. + items: + $ref: '#/components/schemas/CouponResponse' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /billing/create: + post: + summary: Create a new charge + description: Allows you to create a payment link for your customer to pay you. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + frequency: + type: string + description: Defines the type of charge frequency. For one-time charges, use `ONE_TIME`. For charges that can be paid more than once, use `MULTIPLE_PAYMENTS`. + enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] + default: 'ONE_TIME' + example: 'ONE_TIME' + methods: + type: array + description: Payment methods that will be used. Currently, only PIX is supported. + items: + type: string + enum: ['PIX'] + minItems: 1 + maxItems: 1 + uniqueItems: true + default: ['PIX'] + example: ['PIX'] + products: + type: array + description: List of products your customer is paying for. + items: + type: object + properties: + externalId: + type: string + description: The product id in your system. We use this id to create your product in AbacatePay automatically, so make sure your id is unique. + example: 'prod-1234' + name: + type: string + description: Product name. + example: 'Fitness Program Subscription' + description: + type: string + description: Detailed product description. + example: 'Access to premium fitness program for 1 month.' + quantity: + type: integer + description: Quantity of the product being purchased. + minimum: 1 + example: 2 + price: + type: integer + description: Price per unit of the product in cents. Minimum is 100 (1 BRL). + minimum: 100 + example: 2000 + required: ['externalId', 'name', 'quantity', 'price'] + additionalProperties: false + minItems: 1 + example: + - externalId: 'prod-1234' + name: 'Fitness Program Subscription' + description: 'Access to premium fitness program for 1 month.' + quantity: 2 + price: 2000 + returnUrl: + type: string + format: uri + description: URL to redirect the customer if they click the "Back" option. + example: 'https://example.com/billing' + completionUrl: + type: string + format: uri + description: URL to redirect the customer when payment is completed. + example: 'https://example.com/completion' + customerId: + type: string + description: The id of a customer already registered in your store. + example: 'cust_abcdefghij' + customer: + type: object + description: Your customer data. If the customer doesn't exist, they will be created. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Full name of your customer + example: Daniel Lima + cellphone: + type: string + description: Customer's mobile phone + example: (11) 4002-8922 + email: + type: string + description: Customer's email + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF or CNPJ of the customer. + example: 123.456.789-01 + allowCoupons: + type: boolean + default: false + example: false + description: If true, coupons can be used with the billing + coupons: + type: array + description: List of available coupons to be used with the billing + example: ['ABKT10', "ABKT5", "PROMO10"] + default: [] + maxItems: 50 + items: + type: string + externalId: + type: string + description: If you have a unique identifier from your application for charges, completely optional. + example: 'your_id_123' + + required: ['frequency', 'methods', 'products', 'returnUrl', 'completionUrl'] + additionalProperties: false + responses: + '200': + description: Charge created successfully. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Billing' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /billing/list: + get: + summary: List charges + description: Allows you to retrieve a list of all created charges. + security: + - bearerAuth: [] + responses: + '200': + description: Charge list returned successfully. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: List of created charges. + items: + $ref: '#/components/schemas/Billing' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /pixQrCode/create: + post: + summary: 'Create PIX QRCode' + description: Allows you to create a copy-and-paste code and a PIX QRCode for your customer to make the payment. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + amount: + type: number + description: Charge amount in cents. + expiresIn: + type: number + description: Charge expiration time in seconds. + description: + type: string + maxLength: 140 + description: Message that will appear at the time of PIX payment. + customer: + type: object + description: | + Your customer data to create them. + The customer object is not mandatory, but when providing any customer information, all fields `name`, `cellphone`, `email` and `taxId` are required. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Full name of your customer + example: Daniel Lima + cellphone: + type: string + description: Customer's mobile phone + example: (11) 4002-8922 + email: + type: string + description: Customer's email + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF or CNPJ of the customer. + example: 123.456.789-01 + metadata: + type: object + description: Optional metadata for the charge + additionalProperties: true + default: + externalId: '123' + required: ['amount'] + additionalProperties: false + responses: + '200': + description: PIX QRCode created successfully + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/PixQRCode' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /pixQrCode/check: + get: + summary: 'Check Status' + description: Check PIX QRCode payment status. + security: + - bearerAuth: [] + responses: + '200': + description: Status returned + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + status: + type: string + description: Information about the PIX QRCode progress. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + expiresAt: + type: string + description: PIX QRCode expiration date + example: '2025-03-25T21:50:20.772Z' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + parameters: + - name: id + in: query + description: PIX QRCode ID + required: true + schema: + type: string + /pixQrCode/simulate-payment: + post: + summary: 'Simulate Payment' + description: Simulates payment of a PIX QRCode created in development mode. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Optional metadata for the request + default: {} + responses: + '200': + description: Payment completed successfully + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/PixQRCode' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + parameters: + - name: id + in: query + description: PIX QRCode ID + required: true + schema: + type: string + /withdraw/create: + post: + summary: Create a new withdrawal + description: Allows you to create a new withdrawal to transfer values from your account to a PIX key. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + description: Data needed to create a withdrawal. + required: ['externalId', 'method', 'amount', 'pix'] + additionalProperties: false + properties: + description: + type: string + description: Optional withdrawal description. + example: Withdrawal to main account + externalId: + type: string + description: Unique withdrawal identifier in your system. + example: 'withdraw-1234' + method: + type: string + description: Available withdrawal method. + enum: ['PIX'] + example: 'PIX' + amount: + type: number + description: Withdrawal amount in cents. + minimum: 350 + example: 5000 + pix: + type: object + description: PIX key data to receive the withdrawal. + required: ['type', 'key'] + additionalProperties: false + properties: + type: + type: string + description: PIX key type. + enum: ['CPF', 'CNPJ', 'PHONE', 'EMAIL', 'RANDOM'] + example: 'CPF' + key: + type: string + description: PIX key value. + example: '123.456.789-01' + responses: + '200': + description: Withdrawal created successfully. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Transaction' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' + /withdraw/list: + get: + summary: List withdrawals + description: Allows you to retrieve a list of all created withdrawals. + security: + - bearerAuth: [] + responses: + '200': + description: Withdrawal list returned successfully. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: List of created withdrawals. + items: + $ref: '#/components/schemas/Transaction' + error: + type: 'null' + '401': + description: Unauthorized. Authentication failed. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Error message describing the reason for authentication failure. + example: 'Invalid or missing authentication token.' +components: + schemas: + Customer: + type: object + description: Your customer data. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + id: + type: string + description: Unique customer identifier + example: 'bill_123456' + metadata: + type: object + description: Customer data + properties: + name: + type: string + description: Full name of your customer + example: Daniel Lima + cellphone: + type: string + description: Customer's mobile phone + example: (11) 4002-8922 + email: + type: string + description: Customer's email + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF or CNPJ of the customer. + example: 123.456.789-01 + Coupon: + type: object + description: Your coupon data. + required: ['code', 'discount', 'discountKind'] + additionalProperties: false + properties: + code: + type: string + description: Unique coupon identifier + example: DEYVIN_20 + notes: + type: string + description: Description about the coupon + example: Discount coupon for my audience + maxRedeems: + type: number + description: Number of times the coupon can be redeemed. -1 means this coupon can be redeemed without limits + example: 10 + default: -1 + discountKind: + type: string + description: Type of discount applied, percentage or fixed + enum: ['PERCENTAGE', 'FIXED'] + discount: + type: number + description: Discount value to be applied + metadata: + type: object + description: Key-value object for coupon metadata + default: {} + CouponResponse: + type: object + description: Your coupon data. + required: ['id', 'discount', 'discountKind', 'status', 'createdAt', 'updatedAt'] + additionalProperties: false + properties: + id: + type: string + description: Unique coupon identifier + example: DEYVIN_20 + notes: + type: string + description: Description about the coupon + example: Discount coupon for my audience + maxRedeems: + type: integer + description: Number of times the coupon can be redeemed. -1 means unlimited. + example: -1 + default: 10 + redeemsCount: + type: integer + description: Number of times the coupon has already been redeemed. + example: 0 + discountKind: + type: string + description: Type of discount applied, percentage or fixed + enum: ['PERCENTAGE', 'FIXED'] + example: PERCENTAGE + discount: + type: number + description: Discount value to be applied + example: 123 + devMode: + type: boolean + description: Indicates if the coupon was created in test environment. + example: true + status: + type: string + description: Current coupon status. + enum: ['ACTIVE', 'INACTIVE', 'EXPIRED'] + example: ACTIVE + createdAt: + type: string + format: date-time + description: Coupon creation date. + example: '2025-05-25T23:43:25.250Z' + updatedAt: + type: string + format: date-time + description: Coupon update date. + example: '2025-05-25T23:43:25.250Z' + metadata: + type: object + description: Key-value object for coupon metadata + default: {} + + Billing: + type: object + properties: + id: + type: string + description: Unique charge identifier. + example: 'bill_123456' + url: + type: string + format: uri + description: URL where the user can complete the payment. + example: 'https://pay.abacatepay.com/bill-5678' + amount: + type: number + description: Total amount to be paid in cents. + example: 4000 + status: + type: string + description: Current charge status. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Indicates if the charge was created in test environment. + example: true + methods: + type: array + description: Payment methods supported for this charge. + items: + type: string + enum: ['PIX'] + example: ['PIX'] + products: + type: array + description: List of products in the charge. + items: + type: object + properties: + id: + type: string + description: Unique product identifier. + example: 'prod_123456' + externalId: + type: string + description: The product id in your system. + example: 'prod-1234' + quantity: + type: integer + description: Quantity of the product being purchased. + example: 2 + frequency: + type: string + description: Charge frequency. + enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] + example: 'ONE_TIME' + nextBilling: + type: string + format: date-time + nullable: true + description: Date and time of the next charge, or null for one-time charges. + example: 'null' + customer: + type: object + nullable: true + $ref: '#/components/schemas/Customer' + allowCoupons: + type: boolean + nullable: true + default: false + description: If true, coupons can be used with the billing + coupons: + type: array + description: List of available coupons to be used with the billing + nullable: true + default: [] + items: + type: string + required: + ['id', 'url', 'amount', 'status', 'devMode', 'methods', 'products', 'frequency', 'createdAt', 'updatedAt'] + PixQRCode: + type: object + properties: + id: + type: string + description: Unique PIX QRCode identifier. + example: 'pix_char_123456' + amount: + type: number + description: Amount to be paid. + example: 100 + status: + type: string + description: Information about the PIX QRCode progress. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Environment where the PIX QRCode was created. + example: true + brCode: + type: string + description: PIX QRCode copy-and-paste code. + example: '00020101021226950014br.gov.bcb.pix' + brCodeBase64: + type: string + description: PIX QRCode image in Base64. + example: 'data:image/png;base64,iVBORw0KGgoAAA' + platformFee: + type: number + description: Platform fees + example: 80 + createdAt: + type: string + description: PIX QRCode creation date. + example: '2025-03-24T21:50:20.772Z' + updatedAt: + type: string + description: PIX QRCode update date. + example: '2025-03-24T21:50:20.772Z' + expiresAt: + type: string + description: PIX QRCode expiration date + example: '2025-03-25T21:50:20.772Z' + Transaction: + type: object + description: Transaction data (payment or withdrawal). + properties: + id: + type: string + description: Unique transaction identifier. + example: 'tran_123456' + status: + type: string + description: Current transaction status. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'COMPLETE', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Indicates if the transaction was created in test environment. + example: true + receiptUrl: + type: string + format: uri + description: Transaction receipt URL. + example: 'https://abacatepay.com/receipt/tran_123456' + kind: + type: string + description: Transaction type. + enum: ['PAYMENT', 'WITHDRAW'] + example: 'WITHDRAW' + default: 'WITHDRAW' + amount: + type: number + description: Transaction amount in cents. + example: 5000 + platformFee: + type: number + description: Platform fee in cents. + example: 80 + externalId: + type: string + description: External transaction identifier. + example: 'withdraw-1234' + createdAt: + type: string + format: date-time + description: Transaction creation date. + example: '2025-03-24T21:50:20.772Z' + updatedAt: + type: string + format: date-time + description: Transaction update date. + example: '2025-03-24T21:50:20.772Z' + required: + ['id', 'status', 'devMode', 'receiptUrl', 'kind', 'amount', 'platformFee', 'createdAt', 'updatedAt'] + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Bearer authentication header in the format `Bearer ` where `` is your API key. + diff --git a/openapi-es.yaml b/openapi-es.yaml new file mode 100644 index 0000000..8401593 --- /dev/null +++ b/openapi-es.yaml @@ -0,0 +1,920 @@ +openapi: 3.1.0 +info: + title: API AbacatePay + description: API para gestión de cobros y pagos usando AbacatePay. + version: 1.0.0 +servers: + - url: https://api.abacatepay.com/v1 + description: Servidor único para los entornos de producción y sandbox. +paths: + /customer/create: + post: + summary: Crear un nuevo cliente + description: Te permite crear un nuevo cliente para tu tienda. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + description: Los datos de tu cliente en caso de que desees crearlo al momento de crear tu cobro. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Nombre completo de tu cliente + example: Daniel Lima + cellphone: + type: string + description: Celular del cliente + example: (11) 4002-8922 + email: + type: string + description: E-mail del cliente + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF o CNPJ válido del cliente. + example: 123.456.789-01 + responses: + '200': + description: Cliente creado exitosamente. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Customer' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /customer/list: + get: + summary: Listar clientes + description: Te permite recuperar una lista de todos tus clientes. + security: + - bearerAuth: [] + responses: + '200': + description: Lista de clientes retornada exitosamente. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Lista de clientes. + items: + $ref: '#/components/schemas/Customer' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /coupon/create: + post: + summary: Criar um novo cupom + description: Permite que você crie um novo cupom que pode ser usado por seus clientes para aplicar descontos. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Coupon' + error: + type: 'null' + responses: + '200': + description: Cliente criado com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/CouponResponse' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /coupon/list: + get: + summary: Listar cupons + description: Permite que você recupere uma lista de todos os seus cupons. + security: + - bearerAuth: [] + responses: + '200': + description: Lista de cupons retornada com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Lista de cupons. + items: + $ref: '#/components/schemas/CouponResponse' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /billing/create: + post: + summary: Criar uma nova cobrança + description: Permite que você crie um link de cobrança pro seu cliente pagar você. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + frequency: + type: string + description: Define o tipo de frequência da cobrança. Para cobranças únicas, use `ONE_TIME`. Para cobranças que podem ser pagas mais de uma vez, use `MULTIPLE_PAYMENTS`. + enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] + default: 'ONE_TIME' + example: 'ONE_TIME' + methods: + type: array + description: Métodos de pagamento que serão utilizados. Atualmente, apenas PIX é suportado. + items: + type: string + enum: ['PIX'] + minItems: 1 + maxItems: 1 + uniqueItems: true + default: ['PIX'] + example: ['PIX'] + products: + type: array + description: Lista de produtos que seu cliente está pagando. + items: + type: object + properties: + externalId: + type: string + description: O id do produto em seu sistema. Utilizamos esse id para criar seu produto na AbacatePay de forma automática, então certifique-se de que seu id é único. + example: 'prod-1234' + name: + type: string + description: Nome do produto. + example: 'Assinatura de Programa Fitness' + description: + type: string + description: Descrição detalhada do produto. + example: 'Acesso ao programa fitness premium por 1 mês.' + quantity: + type: integer + description: Quantidade do produto sendo adquirida. + minimum: 1 + example: 2 + price: + type: integer + description: Preço por unidade do produto em centavos. O mínimo é 100 (1 BRL). + minimum: 100 + example: 2000 + required: ['externalId', 'name', 'quantity', 'price'] + additionalProperties: false + minItems: 1 + example: + - externalId: 'prod-1234' + name: 'Assinatura de Programa Fitness' + description: 'Acesso ao programa fitness premium por 1 mês.' + quantity: 2 + price: 2000 + returnUrl: + type: string + format: uri + description: URL para redirecionar o cliente caso o mesmo clique na opção "Voltar". + example: 'https://example.com/billing' + completionUrl: + type: string + format: uri + description: URL para redirecionar o cliente quando o pagamento for concluído. + example: 'https://example.com/completion' + customerId: + type: string + description: O id de um cliente já cadastrado em sua loja. + example: 'cust_abcdefghij' + customer: + type: object + description: Dados do seu cliente. Caso o cliente não exista ele será criado. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Nome completo do seu cliente + example: Daniel Lima + cellphone: + type: string + description: Celular do cliente + example: (11) 4002-8922 + email: + type: string + description: E-mail do cliente + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF ou CNPJ do cliente. + example: 123.456.789-01 + allowCoupons: + type: boolean + default: false + example: false + description: Se verdadeiro cupons podem ser usados na billing + coupons: + type: array + description: Lista de cupons disponíveis para resem usados com a billing + example: ['ABKT10', "ABKT5", "PROMO10"] + default: [] + maxItems: 50 + items: + type: string + externalId: + type: string + description: Caso você tenha um identificador único da sua aplicação para cobranças, completamente opcional. + example: 'seu_id_123' + + required: ['frequency', 'methods', 'products', 'returnUrl', 'completionUrl'] + additionalProperties: false + responses: + '200': + description: Cobrança criada com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Billing' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /billing/list: + get: + summary: Listar cobranças + description: Permite que você recupere uma lista de todas as cobranças criadas. + security: + - bearerAuth: [] + responses: + '200': + description: Lista de cobranças retornada com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Lista de cobranças criadas. + items: + $ref: '#/components/schemas/Billing' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /pixQrCode/create: + post: + summary: 'Criar QRCode PIX' + description: Permite que você crie um código copia-e-cola e um QRCode Pix para seu cliente fazer o pagamento. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + amount: + type: number + description: Valor da cobrança em centavos. + expiresIn: + type: number + description: Tempo de expiração da cobrança em segundos. + description: + type: string + maxLength: 140 + description: Mensagem que aparecerá na hora do pagamento do PIX. + customer: + type: object + description: | + Os dados do seu cliente para criá-lo. + O objeto de customer não é obrigatório, mas ao informar qualquer informação do `customer` todos os campos `name`, `cellphone`, `email` e `taxId` são obrigatórios. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + name: + type: string + description: Nome completo do seu cliente + example: Daniel Lima + cellphone: + type: string + description: Celular do cliente + example: (11) 4002-8922 + email: + type: string + description: E-mail do cliente + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF ou CNPJ do cliente. + example: 123.456.789-01 + metadata: + type: object + description: Metadados opcionais para a cobrança + additionalProperties: true + default: + externalId: '123' + required: ['amount'] + additionalProperties: false + responses: + '200': + description: QRCode Pix criado com sucesso + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/PixQRCode' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /pixQrCode/check: + get: + summary: 'Checar Status' + description: Checar status do pagamento do QRCode Pix. + security: + - bearerAuth: [] + responses: + '200': + description: Status retornado + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + status: + type: string + description: Informação sobre o andamento do QRCode Pix. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + expiresAt: + type: string + description: Data de expiração do QRCode Pix + example: '2025-03-25T21:50:20.772Z' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + parameters: + - name: id + in: query + description: ID do QRCode Pix + required: true + schema: + type: string + /pixQrCode/simulate-payment: + post: + summary: 'Simular Pagamento' + description: Simula o pagamento de um QRCode Pix criado no modo de desenvolvimento. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Metadados opcionais para a requisição + default: {} + responses: + '200': + description: Pagamento ralizado com sucesso + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/PixQRCode' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + parameters: + - name: id + in: query + description: ID do QRCode Pix + required: true + schema: + type: string + /withdraw/create: + post: + summary: Criar um novo saque + description: Permite que você crie um novo saque para transferir valores da sua conta para uma chave PIX. + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + description: Dados necessários para criar um saque. + required: ['externalId', 'method', 'amount', 'pix'] + additionalProperties: false + properties: + description: + type: string + description: Descrição opcional do saque. + example: Saque para conta principal + externalId: + type: string + description: Identificador único do saque em seu sistema. + example: 'withdraw-1234' + method: + type: string + description: Método de saque disponível. + enum: ['PIX'] + example: 'PIX' + amount: + type: number + description: Valor do saque em centavos. + minimum: 350 + example: 5000 + pix: + type: object + description: Dados da chave PIX para receber o saque. + required: ['type', 'key'] + additionalProperties: false + properties: + type: + type: string + description: Tipo da chave PIX. + enum: ['CPF', 'CNPJ', 'PHONE', 'EMAIL', 'RANDOM'] + example: 'CPF' + key: + type: string + description: Valor da chave PIX. + example: '123.456.789-01' + responses: + '200': + description: Saque criado com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/Transaction' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' + /withdraw/list: + get: + summary: Listar saques + description: Permite que você recupere uma lista de todos os saques criados. + security: + - bearerAuth: [] + responses: + '200': + description: Lista de saques retornada com sucesso. + content: + application/json: + schema: + type: object + properties: + data: + type: array + description: Lista de saques criados. + items: + $ref: '#/components/schemas/Transaction' + error: + type: 'null' + '401': + description: Não autorizado. Falha na autenticação. + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Mensagem de erro descrevendo o motivo da falha na autenticação. + example: 'Token de autenticação inválido ou ausente.' +components: + schemas: + Customer: + type: object + description: Os dados do seu cliente. + required: ['name', 'cellphone', 'email', 'taxId'] + additionalProperties: false + properties: + id: + type: string + description: Identificador único do cliente + example: 'bill_123456' + metadata: + type: object + description: Dados do cliente + properties: + name: + type: string + description: Nome completo do seu cliente + example: Daniel Lima + cellphone: + type: string + description: Celular do cliente + example: (11) 4002-8922 + email: + type: string + description: E-mail do cliente + example: daniel_lima@abacatepay.com + taxId: + type: string + description: CPF ou CNPJ do cliente. + example: 123.456.789-01 + Coupon: + type: object + description: Os dados do seu cupom. + required: ['code', 'discount', 'discountKind'] + additionalProperties: false + properties: + code: + type: string + description: Identificador único do cupom + example: DEYVIN_20 + notes: + type: string + description: Descrição sbre o cupom + example: Cupom de desconto pro meu público + maxRedeems: + type: number + description: Quantidade de vezes em que o cupom pode ser resgatado. -1 Significa que esse cupom pode ser resgatado sem limites + example: 10 + default: -1 + discountKind: + type: string + description: Tipo de desconto aplicado, porcentagem ou fixo + enum: ['PERCENTAGE', 'FIXED'] + discount: + type: number + description: Valor de desconto a ser aplicado + metadata: + type: object + description: Objeto chave valor para metadados do cupom + default: {} + CouponResponse: + type: object + description: Os dados do seu cupom. + required: ['id', 'discount', 'discountKind', 'status', 'createdAt', 'updatedAt'] + additionalProperties: false + properties: + id: + type: string + description: Identificador único do cupom + example: DEYVIN_20 + notes: + type: string + description: Descrição sobre o cupom + example: Cupom de desconto pro meu público + maxRedeems: + type: integer + description: Quantidade de vezes em que o cupom pode ser resgatado. -1 significa ilimitado. + example: -1 + default: 10 + redeemsCount: + type: integer + description: Quantidade de vezes que o cupom já foi resgatado. + example: 0 + discountKind: + type: string + description: Tipo de desconto aplicado, porcentagem ou fixo + enum: ['PERCENTAGE', 'FIXED'] + example: PERCENTAGE + discount: + type: number + description: Valor de desconto a ser aplicado + example: 123 + devMode: + type: boolean + description: Indica se o cupom foi criado em ambiente de testes. + example: true + status: + type: string + description: Status atual do cupom. + enum: ['ACTIVE', 'INACTIVE', 'EXPIRED'] + example: ACTIVE + createdAt: + type: string + format: date-time + description: Data de criação do cupom. + example: '2025-05-25T23:43:25.250Z' + updatedAt: + type: string + format: date-time + description: Data de atualização do cupom. + example: '2025-05-25T23:43:25.250Z' + metadata: + type: object + description: Objeto chave valor para metadados do cupom + default: {} + + Billing: + type: object + properties: + id: + type: string + description: Identificador único da cobrança. + example: 'bill_123456' + url: + type: string + format: uri + description: URL onde o usuário pode concluir o pagamento. + example: 'https://pay.abacatepay.com/bill-5678' + amount: + type: number + description: Valor total a ser pago em centavos. + example: 4000 + status: + type: string + description: Status atual da cobrança. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Indica se a cobrança foi criada em ambiente de testes. + example: true + methods: + type: array + description: Métodos de pagamento suportados para esta cobrança. + items: + type: string + enum: ['PIX'] + example: ['PIX'] + products: + type: array + description: Lista de produtos na cobrança. + items: + type: object + properties: + id: + type: string + description: Identificador único do produto. + example: 'prod_123456' + externalId: + type: string + description: O id do produto em seu sistema. + example: 'prod-1234' + quantity: + type: integer + description: Quantidade do produto sendo adquirida. + example: 2 + frequency: + type: string + description: Frequência da cobrança. + enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] + example: 'ONE_TIME' + nextBilling: + type: string + format: date-time + nullable: true + description: Data e hora da próxima cobrança, ou null para cobranças únicas. + example: 'null' + customer: + type: object + nullable: true + $ref: '#/components/schemas/Customer' + allowCoupons: + type: boolean + nullable: true + default: false + description: Se verdadeiro cupons podem ser usados na billing + coupons: + type: array + description: Lista de cupons disponíveis para resem usados com a billing + nullable: true + default: [] + items: + type: string + required: + ['id', 'url', 'amount', 'status', 'devMode', 'methods', 'products', 'frequency', 'createdAt', 'updatedAt'] + PixQRCode: + type: object + properties: + id: + type: string + description: Identificador único do QRCode Pix. + example: 'pix_char_123456' + amount: + type: number + description: Valor a ser pago. + example: 100 + status: + type: string + description: Informação sobre o andamento do QRCode Pix. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Ambiente no qual o QRCode Pix foi criado. + example: true + brCode: + type: string + description: Código copia-e-cola do QRCode Pix. + example: '00020101021226950014br.gov.bcb.pix' + brCodeBase64: + type: string + description: Imagem em Base64 do QRCode Pix. + example: 'data:image/png;base64,iVBORw0KGgoAAA' + platformFee: + type: number + description: Taxas da plataforma + example: 80 + createdAt: + type: string + description: Data de criação do QRCode Pix. + example: '2025-03-24T21:50:20.772Z' + updatedAt: + type: string + description: Data de atualização do QRCode Pix. + example: '2025-03-24T21:50:20.772Z' + expiresAt: + type: string + description: Data de expiração do QRCode Pix + example: '2025-03-25T21:50:20.772Z' + Transaction: + type: object + description: Dados de uma transação (pagamento ou saque). + properties: + id: + type: string + description: Identificador único da transação. + example: 'tran_123456' + status: + type: string + description: Status atual da transação. + enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'COMPLETE', 'REFUNDED'] + example: 'PENDING' + devMode: + type: boolean + description: Indica se a transação foi criada em ambiente de testes. + example: true + receiptUrl: + type: string + format: uri + description: URL do comprovante da transação. + example: 'https://abacatepay.com/receipt/tran_123456' + kind: + type: string + description: Tipo da transação. + enum: ['PAYMENT', 'WITHDRAW'] + example: 'WITHDRAW' + default: 'WITHDRAW' + amount: + type: number + description: Valor da transação em centavos. + example: 5000 + platformFee: + type: number + description: Taxa da plataforma em centavos. + example: 80 + externalId: + type: string + description: Identificador externo da transação. + example: 'withdraw-1234' + createdAt: + type: string + format: date-time + description: Data de criação da transação. + example: '2025-03-24T21:50:20.772Z' + updatedAt: + type: string + format: date-time + description: Data de atualização da transação. + example: '2025-03-24T21:50:20.772Z' + required: + ['id', 'status', 'devMode', 'receiptUrl', 'kind', 'amount', 'platformFee', 'createdAt', 'updatedAt'] + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Cabeçalho de autenticação Bearer no formato `Bearer ` onde `` é a sua chave de API. \ No newline at end of file diff --git a/openapi.yaml b/openapi-pt.yaml similarity index 100% rename from openapi.yaml rename to openapi-pt.yaml diff --git a/pt/authentication.mdx b/pt/authentication.mdx new file mode 100644 index 0000000..cdd516c --- /dev/null +++ b/pt/authentication.mdx @@ -0,0 +1,93 @@ +--- +title: 'Autenticação' +description: 'Como enviar requisições para a nossa API' +icon: 'lock' +--- + + + **Chave de API**: Sua credencial de acesso à API da AbacatePay. Esta chave identifica sua conta e autoriza suas requisições. **IMPORTANTE**: Sem a chave de API, as requisições serão recusadas. + + +## Gerenciando chaves de API + +Gerencie suas chaves de API diretamente em nossa plataforma. Você pode: +- Listar todas as chaves ativas +- Criar novas chaves +- Revogar chaves existentes + + + Todas as requisições são enviadas para o mesmo endpoint (`https://api.abacatepay.com`), mas o ambiente é determinado pela chave de API utilizada: + - Chaves criadas em **dev mode** processam transações no ambiente de testes + - Chaves criadas em **produção** processam transações reais + + Saiba mais sobre o ambiente de desenvolvimento aqui. + + + + A API retornará o código HTTP `401` quando: + - A chave de API não for fornecida no header + - A chave for inválida + - A chave tiver sido revogada + + +## Criando chaves de API + + + * Armazene suas chaves em variáveis de ambiente ou gerenciadores de segredos + * Nunca compartilhe suas chaves de API + * A AbacatePay nunca solicitará suas chaves + * Revogue imediatamente qualquer chave comprometida + + +## Como criar sua chave de API + +Siga estes passos no dashboard da AbacatePay: + + + + + Interface da plataforma AbacatePay mostrando o botão de criação de chave + + Inicie o processo de criação de uma nova chave de API + + + + + + Formulário de criação de chave com campo de descrição + + Adicione uma descrição clara para identificar o propósito desta chave + + + + + + Lista de chaves com opção para copiar + + Copie a chave gerada e armazene-a em um local seguro + + + + + +Após criar sua chave, você pode começar a integrar com nossa API. Lembre-se de incluir a chave em todas as requisições no header `Authorization`: + +```bash +curl -X POST https://api.abacatepay.com/v1/payments \ + -H "Authorization: Bearer sua_chave_api" \ + -H "Content-Type: application/json" \ + -d '{"amount": 1000}' +``` + + + O mesmo endpoint (`https://api.abacatepay.com`) é usado tanto para o ambiente de desenvolvimento quanto para produção. O ambiente é determinado automaticamente pela chave de API utilizada na requisição. + diff --git a/pt/client/create.mdx b/pt/client/create.mdx new file mode 100644 index 0000000..77e2d82 --- /dev/null +++ b/pt/client/create.mdx @@ -0,0 +1,5 @@ +--- +title: 'Criar um novo Cliente' +openapi: "POST /customer/create" +--- + diff --git a/pt/client/list.mdx b/pt/client/list.mdx new file mode 100644 index 0000000..65c5fd0 --- /dev/null +++ b/pt/client/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Clientes' +openapi: "GET /customer/list" +--- diff --git a/pt/client/reference.mdx b/pt/client/reference.mdx new file mode 100644 index 0000000..323a1b4 --- /dev/null +++ b/pt/client/reference.mdx @@ -0,0 +1,62 @@ +--- +title: 'Referência' +description: 'Gerencie seus clientes, aqueles que pagam você.' +icon: 'book-open-cover' +--- + +Um cliente é seu usuário final, aquele que você vai cobrar e pagar o seu produto. + +## Estrutura + +Um cliente é representado em nossa API pela seguinte estrutura: + +```json +{ + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } +} +``` + +## Atributos + +### id: + +```json {2} +{ + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", +} +``` + +`id` : string.
+Id único do cliente na AbacatePay + +### metadados: +Objeto com os dados do cliente + +```json json {2-7} +{ + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } +} +``` + +* `name` : string.
Nome do cliente (opcional) + +* `cellphone` : string.
Telefone do cliente (opcional) + +* `taxId` : string.
Documento válido do cliente, podendo ser CPF ou CNPJ (opcional) + +* `email` : string.
E-mail do cliente (obrigatório) + + + Não é possível criar um cliente com CPF/CNPJ inválido e caso já exista um cliente com esse CPF/CNPJ, a API não criará o cliente novo mas retornará o cliente já existente + \ No newline at end of file diff --git a/pt/coupon/create.mdx b/pt/coupon/create.mdx new file mode 100644 index 0000000..9cb1548 --- /dev/null +++ b/pt/coupon/create.mdx @@ -0,0 +1,4 @@ +--- +title: 'Criar um novo cupom' +openapi: "POST /coupon/create" +--- \ No newline at end of file diff --git a/pt/coupon/list.mdx b/pt/coupon/list.mdx new file mode 100644 index 0000000..f1ef281 --- /dev/null +++ b/pt/coupon/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar cupons' +openapi: "GET /coupon/list" +--- \ No newline at end of file diff --git a/pt/coupon/reference.mdx b/pt/coupon/reference.mdx new file mode 100644 index 0000000..9e0ea99 --- /dev/null +++ b/pt/coupon/reference.mdx @@ -0,0 +1,150 @@ +--- +title: 'Referência' +description: 'Crie cupons de desconto para seus clientes usarem uma ou várias vezes' +icon: 'book-open-cover' +--- + +Os cupons de desconto permitem que você ofereça reduções de preço aos seus clientes de forma controlada e estratégica. Você pode criar cupons com desconto percentual ou valor fixo, definir limites de uso e acompanhar quantas vezes foram utilizados. + + +## Estrutura + +Um cupom é representado em nossa API pela seguinte estrutura: + +```json +{ + "id": "MY_COUPON", + "discountKind": "PERCENTAGE", + "discount": 10, + "maxRedeems": -1, + "redeemsCount": 0, + "status": "ACTIVE", + "devMode": true, + "notes": "teste de cupom", + "createdAt": "2025-01-23T14:06:16.880Z", + "updatedAt": "2025-01-23T14:06:16.880Z" +} +``` + +## Atributos: + + + + ```json {2} + { + "id": "MY_COUPON", + } + ``` + + `id` : string.
+ Código único do cupom que seus clientes irão utilizar para aplicar o desconto +
+ + ```json {2} + { + "notes": "Cupom de boas-vindas - 10% de desconto", + } + ``` + `notes` : string.
+ Descrição interna do cupom para sua organização e controle +
+ + ```json {2} + { + "maxRedeems": -1, + } + ``` + `maxRedeems` : number.
+ Limite de vezes que o cupom pode ser utilizado. Use `-1` para cupons ilimitados ou um número específico para limitar o uso +
+ + ```json {2} + { + "redeemsCount": 0, + } + ``` + `redeemsCount` : number.
+ Contador de quantas vezes o cupom já foi utilizado pelos clientes +
+ + ```json {2} + { + "discountKind": "PERCENTAGE", + } + ``` + `discountKind` : string.
+ Tipo de desconto aplicado pelo cupom + + + | Tipo | Descrição | + | ----------- | ------------------------------------- | + | `PERCENTAGE` | **Desconto percentual** (ex: 10% de desconto) | + | `FIXED` | **Valor fixo** (ex: R$ 5,00 de desconto) | + +
+ + ```json {2} + { + "discount": 10, + } + ``` + `discount` : number.
+ Valor do desconto. Para `PERCENTAGE` use números de 1-100 (ex: 10 = 10%). Para `FIXED` use o valor em centavos (ex: 500 = R$ 5,00) +
+ + ```json {2} + { + "status": "ACTIVE", + } + ``` + `status` : string.
+ Status atual do cupom + + + | Status | Descrição | + | ----------- | ------------------------------------- | + | `ACTIVE` | **O cupom está ativo e pode ser utilizado pelos clientes** | + | `DELETED` | **O cupom foi removido e não pode mais ser usado** | + | `DISABLED` | **O cupom foi desabilitado ou atingiu o limite máximo de usos** | + +
+ + ```json {2} + { + "devMode": true, + } + ``` + `devMode` : boolean.
+ Indica se o cupom foi criado em ambiente de desenvolvimento (`true`) ou produção (`false`) +
+ + ```json {2} + { + "metadata": { + "campaign": "black-friday-2024", + "category": "new-customers" + }, + } + ``` + `metadata` : object.
+ Objeto para armazenar informações adicionais sobre o cupom, como campanha, categoria ou outros dados relevantes para sua organização +
+ + ```json {2} + { + "createdAt": "2025-01-23T14:06:16.880Z", + } + ``` + `createdAt` : date-time.
+ Data e hora de criação do cupom +
+ + ```json {2} + { + "updatedAt": "2025-01-23T14:06:16.880Z", + } + ``` + `updatedAt` : date-time.
+ Data e hora da última atualização do cupom +
+
\ No newline at end of file diff --git a/pages/devmode.mdx b/pt/devmode.mdx similarity index 100% rename from pages/devmode.mdx rename to pt/devmode.mdx diff --git a/pages/introduction.mdx b/pt/introduction.mdx similarity index 100% rename from pages/introduction.mdx rename to pt/introduction.mdx diff --git a/pt/payment/create.mdx b/pt/payment/create.mdx new file mode 100644 index 0000000..6411953 --- /dev/null +++ b/pt/payment/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar uma nova Cobrança +openapi: 'POST /billing/create' +--- diff --git a/pt/payment/list.mdx b/pt/payment/list.mdx new file mode 100644 index 0000000..571c2e7 --- /dev/null +++ b/pt/payment/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Cobranças' +openapi: "GET /billing/list" +--- \ No newline at end of file diff --git a/pt/payment/reference.mdx b/pt/payment/reference.mdx new file mode 100644 index 0000000..9735518 --- /dev/null +++ b/pt/payment/reference.mdx @@ -0,0 +1,228 @@ +--- +title: "Referência" +description: "Crie um link de cobrança e deixe seu cliente pagar" +icon: "book-open-cover" +--- + +O termo "cobrança" é genérico. Ele representa um portal de um fluxo de pagamento onde você pode cobrar seu cliente e ele fazer todo o processo de pagamento sem nenhuma interrupção. + +Atualmente uma cobrança pode ser de duas formas: +- `ONE_TIME` para cobranças que serão pagas uma única vez. preciso enviar os dados do seu cliente. Para cobrançar `ONE_TIME` é obrigatório informar o cliente ao criar a cobrança por meio dos campos `customerId` ou `customer`. + - Só é necessário fornecer uma das opções de identificador do cliente: `customerId` **OU** `customer`. +- `MULTIPLE_PAYMENTS` é uma cobrança que pode ser paga multiplas vezes e por múltiplas pessoas diferentes. **Ex:** utilização de um único link de pagamento para vender um produto para múltiplas pessoas. + - Para cobranças `MULTIPLE_PAYMENTS` o usuário informará informações como CPF, nome e email na página do checkout. + + + +## Estrutura + +Uma cobrança é representada em nossa API pela seguinte estrutura: + +```json json +{ + "id": "bill_uA0M0xwg5R4mSyr0n2PjHQXY", + "frequency": "ONE_TIME", + "url": "https://abacatepay.com/pay/bill_uA0M0xwg5R4mSyr0n2PjHQXY", + "amount": 4000, + "status": "PAID", + "devMode": true, + "methods": ["PIX"], + "products": [ + { + "id": "prod_dNFbdDjfpaegmzBWWdNM2Huw", + "externalId": "prod-1234", + "quantity": 1 + } + ], + "customer": { + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } + }, + "metadata": { + "fee": 100, + "returnUrl": "https://example.com/billing", + "completionUrl": "https://example.com/completion" + }, + "nextBilling": null, + "allowCoupons": false, + "coupons": [], + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "bill_uA0M0xwg5R4mSyr0n2PjHQXY", + } + ``` + + `id` : string.
+ Id único da cobrança na AbacatePay +
+ + ```json json {2} + { + "frequency": "ONE_TIME", + } + ``` + `frequency` : string.
+ Frequência da cobrança. Pode ser `ONE_TIME` ou `MULTIPLE_PAYMENTS`. + + + | | | + | ---------------------| ---------------------------------------------------------------------------------------------------- | + | `ONE_TIME` | **Cobrança que aceita um único pagamento. É necessário enviar os dados do cliente** | + | `MULTIPLE_PAYMENTS` | **Cobrança em modo checkout, aceita vários pagamentos. Não é necessário enviar os dados do cliente.**| + +
+ + ```json json {2} + { + "url": "https://abacatepay.com/pay/bill_uA0M0xwg5R4mSyr0n2PjHQXY", + } + ``` + `url` : string.
+ URL para seu cliente executar o pagamento da cobrança + + ### Amount: + ```json json {2} + { + "amount": 4000, + } + ``` + `amount` : number.
+ Valor da cobrança em centavos +
+ + ```json json {2} + { + "amount": 4000, + } + ``` + `amount` : number.
+ Valor da cobrança em centavos + +
+ + ```json json {2} + { + "status": "PAID", + } + ``` + `status` : string.
+ Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED` + + + | | | + | -----------| ------------------------------------- | + | `PENDING` | **A cobrança está com o pagamento pendente** | + | `EXPIRED` | **O tempo limite de pagamento foi excedido** | + | `CANCELLED`| **A cobrança foi cancelada por você** | + | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | + | `REFUNDED` | **O valor foi devolvido ao cliente** | + +
+ + ```json json {2} + { + "methods": ["PIX"], + } + ``` + `methods` : array
+ Tipos de pagamento. Suportamos somente `PIX` no momento. +
+ + ```json json {2-9} + { + "products": + [ + { + "id": "prod_dNFbdDjfpaegmzBWWdNM2Huw", + "externalId": "prod-1234", + "quantity": 1 + } + ], + } + ``` + `products` : array
+ Lista de produtos inclusos na cobrança +
+ + ```json json {2-10} + { + "customer": { + "id": "cust_aebxkhDZNaMmJeKsy0AHS0FQ", + "metadata": { + "name": "Test Customer", + "cellphone": "11999999999", + "taxId": "12345678900", + "email": "test@example.com" + } + } + } + ``` + `customer` : object
+ Cliente que você está cobrando. Veja referência da estrutura aqui +
+ + ```json json {2-5} + { + "metadata": { + "fee": 100, + "returnUrl": "https://example.com/billing", + "completionUrl": "https://example.com/completion" + } + } + ``` + `metadata` : object
+ Objeto com metadados sobre a cobrança + + * `fee` number + Taxa aplicada pela AbacatePay + * `returnUrl` string + URL que o cliente será redirecionado ao clicar no botão "voltar" + * `completionUrl` string + URL que o cliente será redirecionado ao realizar o pagamento +
+ + ```json json {2} + { + "nextBilling": null, + } + ``` + + `nextBilling` : date-time | null.
+ Data e hora da próxima cobrança, ou null para cobranças únicas +
+ + ```json json {2} + { + "allowCoupons": false, + } + ``` + + `allowCoupons` : bool | null.
+ Permite ou não cupons para a cobrança +
+ + ```json json {2} + { + "coupons": [], + } + ``` + + `coupons` : array
+ Cupons permitidos na cobrança. Só são considerados os cupons se `allowCoupons` é verdadeiro. +
+ +
diff --git a/pt/pix-qrcode/check.mdx b/pt/pix-qrcode/check.mdx new file mode 100644 index 0000000..a87626a --- /dev/null +++ b/pt/pix-qrcode/check.mdx @@ -0,0 +1,4 @@ +--- +title: 'Checar Status' +openapi: 'GET /pixQrCode/check' +--- diff --git a/pt/pix-qrcode/create.mdx b/pt/pix-qrcode/create.mdx new file mode 100644 index 0000000..a58798b --- /dev/null +++ b/pt/pix-qrcode/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar QRCode PIX +openapi: 'POST /pixQrCode/create' +--- diff --git a/pt/pix-qrcode/list.mdx b/pt/pix-qrcode/list.mdx new file mode 100644 index 0000000..bf6edf9 --- /dev/null +++ b/pt/pix-qrcode/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar QRCodes Pix' +openapi: "GET /pixQrCode/list" +--- \ No newline at end of file diff --git a/pt/pix-qrcode/reference.mdx b/pt/pix-qrcode/reference.mdx new file mode 100644 index 0000000..b753055 --- /dev/null +++ b/pt/pix-qrcode/reference.mdx @@ -0,0 +1,165 @@ +--- +title: 'Referência' +description: 'Gere um QRCode Pix e um código copia-e-cola para o seu cliente' +icon: 'book-open-cover' +--- + + + +## Estrutura + +Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutura: + +```json json +{ + "id": "pix_charabc123456789", + "amount": 4000, + "status": "PAID", + "devMode": true, + "method": "PIX", + "brCode": "...", + "brCodeBase64": "...", + "platformFee": 80, + "description": "Pagamento PIX com AbacatePay", + "metadata": { + "pedidoId": "123" + }, + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z", + "expiresAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "abc123uA0M0xwg5R4mSyr0n2PjHQXY" + } + ``` + `id` : string.
+ Identificador único da cobrança. +
+ + + ```json json {2} + { + "amount": 4000 + } + ``` + `amount` : number.
+ Valor da cobrança em centavos (ex: 4000 = R$ 40,00) +
+ + + ```json json {2} + { + "status": "PAID" + } + ``` + `status` : string.
+ Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED`. + + | Status | Descrição | + | ----------- | ------------------------------------- | + | `PENDING` | **A cobrança está com o pagamento pendente** | + | `EXPIRED` | **O tempo limite de pagamento foi excedido** | + | `CANCELLED`| **A cobrança foi cancelada por você** | + | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | + | `REFUNDED` | **O valor foi devolvido ao cliente** | + +
+ + + ```json json {2} + { + "devMode": true + } + ``` + `devMode` : boolean.
+ Indica se a cobrança está em ambiente de testes (`true`) ou produção (`false`). +
+ + + ```json json {2} + { + "method": "PIX" + } + ``` + `method` : string.
+ Método de pagamento. +
+ + + ```json json {2} + { + "brCode": "..." + } + ``` + `brCode` : string.
+ Código PIX (copia-e-cola) para pagamento. +
+ + + ```json json {2} + { + "brCodeBase64": "..." + } + ``` + `brCodeBase64` : string.
+ Código PIX no formato Base64 (útil para exibição em imagens). +
+ + + ```json json {2} + { + "platformFee": 80 + } + ``` + `platformFee` : number.
+ Taxa da plataforma em centavos. Exemplo: `80` significa R$ 0,80. +
+ + + ```json json {2} + { + "description": "Pagamento PIX com AbacatePay" + } + ``` + `description` : string.
+ Descrição da cobrança. +
+ + + ```json json {2} + { + "createdAt": "2024-12-06T18:56:15.538Z" + } + ``` + `createdAt` : date-time.
+ Data e hora da criação da cobrança. +
+ + + ```json json {2} + { + "updatedAt": "2024-12-06T18:56:15.538Z" + } + ``` + `updatedAt` : date-time.
+ Última atualização da cobrança. +
+ + + ```json json {2} + { + "expiresAt": "2024-12-06T18:56:15.538Z" + } + ``` + `expiresAt` : date-time.
+ Data e hora de expiração do QRCode. +
+ +
diff --git a/pt/pix-qrcode/simulate-payment.mdx b/pt/pix-qrcode/simulate-payment.mdx new file mode 100644 index 0000000..68a0807 --- /dev/null +++ b/pt/pix-qrcode/simulate-payment.mdx @@ -0,0 +1,4 @@ +--- +title: 'Simular Pagamento' +openapi: 'POST /pixQrCode/simulate-payment' +--- diff --git a/pt/production.mdx b/pt/production.mdx new file mode 100644 index 0000000..6746216 --- /dev/null +++ b/pt/production.mdx @@ -0,0 +1,58 @@ +--- +title: 'Indo para produção' +description: 'Como sair do dev mode e começar a faturar' +icon: 'conveyor-belt-arm' +--- + +Ao migrar do ambiente de desenvolvimento para produção, você precisará completar o processo de verificação da sua conta. Este processo é necessário para garantir a segurança e conformidade das operações. + +## Processo de Verificação + +Para ativar sua conta em produção, siga estes passos: + + + + + Interface da plataforma AbacatePay mostrando o botão de Dev mode + + Clique no botão "Dev mode" no canto superior direito da plataforma para iniciar o processo de migração + + + + + + Formulário de documentação da AbacatePay + + Preencha os dados da sua empresa, informações dos sócios e anexe os documentos solicitados: + - Documentos da empresa + - Documentos dos sócios + - Comprovante de endereço + - Outros documentos específicos do seu segmento + + + + + + + Após o envio dos documentos: + - Nossa equipe analisará sua documentação + - Você receberá uma resposta em até 24 horas + - O e-mail de aprovação conterá instruções para os próximos passos + + + + * Certifique-se de que todos os documentos estão legíveis + * Verifique se as informações estão atualizadas + * Mantenha os dados consistentes em todos os documentos + * Responda prontamente a qualquer solicitação adicional + + + + Nossa equipe está disponível para auxiliar no processo de migração. Entre em contato pelo e-mail ajuda@abacatepay.com + \ No newline at end of file diff --git a/pt/sdks.mdx b/pt/sdks.mdx new file mode 100644 index 0000000..7610105 --- /dev/null +++ b/pt/sdks.mdx @@ -0,0 +1,205 @@ +--- +title: 'SDKs' +description: 'Bibliotecas oficiais para integração com a API da AbacatePay' +icon: 'boxes-stacked' +--- + + + **Acelere sua integração com nossos SDKs**: Nossas bibliotecas oficiais facilitam a integração com a API da AbacatePay em várias linguagens de programação. + + +## O que são os SDKs da AbacatePay? + +Os SDKs (Software Development Kits) da AbacatePay são bibliotecas que simplificam a comunicação com nossa API. Eles oferecem uma interface amigável e específica para cada linguagem, permitindo que você integre rapidamente nossos serviços de pagamento ao seu aplicativo. + + + * **Integração simplificada**: Funções prontas para todos os endpoints da API + * **Tipagem forte**: Interfaces completas em linguagens com suporte a tipos + * **Tratamento de erros**: Gerenciamento automático dos casos de erro mais comuns + * **Menor curva de aprendizado**: Não é necessário conhecer todos os detalhes da API + * **Atualizações frequentes**: Mantemos os SDKs atualizados com as mais recentes funcionalidades + + +## SDKs Disponíveis + +Oferecemos SDKs oficiais para diversas linguagens de programação. Escolha o que melhor se adapta à sua stack tecnológica: + + + + + + SDK oficial para Node.js, compatível com TypeScript e ES modules. + + + SDK oficial para Python 3.10+, com suporte a async/await e type hints. + + + SDK oficial para Java 8+, compatível com Spring Boot e Jakarta EE. + + + SDK oficial para PHP 7.4+, com suporte a Composer e PSR standards. + + + SDK oficial para Ruby 2.6+, disponível como gem e com suporte a Rails. + + + SDK oficial para Go 1.13+, com suporte a módulos e generics. + + + SDK oficial para Rust, com foco em segurança e performance. + + + SDK oficial para Elixir, ideal para aplicações escaláveis e distribuídas. + + + + + + + SDK oficial para Kotlin, ideal para aplicativos Android modernos. + + + SDK oficial para Swift, ideal para aplicativos iOS e macOS. + + + + + +## Exemplos de Uso + +Veja como é simples usar nossos SDKs em algumas das linguagens mais populares: + + +```javascript Node.js +// Instalação: npm install abacatepay-nodejs-sdk +import AbacatePay from 'abacatepay-nodejs-sdk'; + +// Inicialize o cliente com sua chave de API +const abacate = AbacatePay('your_api_key'); + +// Crie um pagamento PIX +async function createPixPayment() { + const billing = await abacate.billing.create({ + frequency: "ONE_TIME", + methods: ["PIX"], + products: [ + { + externalId: "PRO-PLAN", + name: "Pro plan", + quantity: 1, + price: 1000 // Amount in cents + } + ], + returnUrl: "https://yoursite.com/app", + completionUrl: "https://yoursite.com/payment/success", + customer: { + email: 'customer@example.com' + } + }); + + return billing +} + +createPixPayment(); +``` + +```python Python +# Instalação: pip install abacatepay +from abacatepay import AbacatePay +from abacatepay.products import Product + +# Inicialize o cliente com sua chave de API +client = AbacatePay( + api_key="sua_chave_api", +) + +# Crie produtos para a cobrança +products = [ + Product( + external_id="123", + name="Produto de teste", + quantity=1, + price=50_00, + description="Example product" + ), + # Ou como dicionário + { + 'external_id': "321", + 'name': "Product as dict", + 'quantity': 1, + 'price': 10_00, + 'description': "Example using dict" + } +] + +# Crie uma cobrança +billing = client.billing.create( + products=products, + return_url="https://yourwebsite.com/return", + completion_url="https://yourwebsite.com/complete" +) + +print(f"URL da cobrança: {billing.data.url}") +``` + +```php PHP +// Instalação: composer require abacatepay/sdk + 'sua_chave_api', + 'environment' => 'production' // ou 'sandbox' para ambiente de testes +]); + +// Crie um pagamento PIX +try { + $payment = $client->payments->createPix([ + 'value' => 1000, // R$ 10,00 + 'description' => 'Pagamento de teste', + 'expiresIn' => 3600 // 1 hora + ]); + + echo "QR Code: " . $payment->qrCode . "\n"; + echo "Chave de cobrança: " . $payment->chargeKey . "\n"; +} catch (Exception $e) { + echo "Erro ao criar pagamento: " . $e->getMessage() . "\n"; +} +``` + + +## Perguntas Frequentes + + + Cada SDK tem instruções de instalação específicas no seu repositório no GitHub. Geralmente, você pode usar o gerenciador de pacotes da sua linguagem, como npm, pip, composer, bundle, etc. + + + + Sim! Todos os nossos SDKs suportam ambos os ambientes. Em alguns casos, é preciso configurar o parâmetro `environment` ao inicializar o cliente para `sandbox` ou `production`, ou basta usar a chave de api do ambiente desejado. + + + + Você pode abrir uma issue no repositório do GitHub do SDK específico. Nossa equipe está sempre atenta para corrigir bugs e melhorar nossos SDKs. + + + + Entre em contato conosco em ajuda@abacatepay.com informando qual linguagem você precisa. Também aceitamos contribuições da comunidade! + + +## Recursos Adicionais + + + + Aprenda a configurar webhooks para receber notificações de eventos. + + + Saiba como usar o ambiente de desenvolvimento para testar suas integrações. + + + + + Nossa equipe está disponível para ajudar com qualquer dúvida sobre nossos SDKs. Entre em contato pelo e-mail ajuda@abacatepay.com + diff --git a/pt/webhooks.mdx b/pt/webhooks.mdx new file mode 100644 index 0000000..b0fb20f --- /dev/null +++ b/pt/webhooks.mdx @@ -0,0 +1,188 @@ +--- +title: 'Webhooks' +description: 'Configure e receba notificações sobre atualizações' +icon: 'webhook' +--- + +Webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos importantes da AbacatePay. + +## Gerenciando webhooks + +Gerencie seus webhooks diretamente em nossa plataforma. Você pode: +- Listar todos os webhooks ativos +- Criar novos webhooks +- Remover webhooks existentes + + + Os webhooks são específicos para cada ambiente: + - Webhooks criados em **dev mode** recebem notificações apenas do ambiente de testes + - Webhooks criados em **produção** recebem notificações apenas de dados reais + + Saiba mais sobre o ambiente de desenvolvimento aqui. + + +## Criando webhooks + + + * Configure um secret único para cada webhook + * Valide o secret em todas as requisições recebidas + * Use HTTPS para todas as URLs de webhook + * Implemente retry logic para lidar com falhas temporárias + + +## Como criar seu webhook + +Siga estes passos no dashboard da AbacatePay: + + + + + Interface da plataforma AbacatePay mostrando a seção de webhooks + + Inicie o processo de configuração de um novo webhook + + + + + + Formulário de criação de webhook + + Você será direcionado ao formulário de configuração + + + + + + + * **Nome**: Identificador único para seu webhook (ex: "Notificações de Pagamento") + * **URL**: Endpoint HTTPS que receberá as notificações + * **Secret**: Chave secreta para validar as requisições + + + + + +## Protegendo suas requisições + +Cada notificação enviada para seu webhook inclui o secret configurado como parâmetro de query string para validação. + +### Exemplo de URL de Webhook + +URL base do seu webhook: +``` +https://meusite.com/webhook/abacatepay +``` + +URL com secret (como será chamado): +``` +https://meusite.com/webhook/abacatepay?webhookSecret=seu_secret_aqui +``` + +### Exemplo de Implementação + +```javascript +// Exemplo de validação do webhook +app.post('/webhook/abacatepay', (req, res) => { + const webhookSecret = req.query.webhookSecret; + + if (webhookSecret !== process.env.WEBHOOK_SECRET) { + return res.status(401).json({ error: 'Invalid webhook secret' }); + } + + // Processa a notificação + const event = req.body; + console.log('Received webhook:', event); + + res.status(200).json({ received: true }); +}); +``` + +## Eventos Suportados + +Atualmente, suportamos os seguintes eventos: + +### `billing.paid` + +Este evento é disparado quando um pagamento é confirmado. O payload varia dependendo da origem do pagamento: + +#### Pagamento via PIX QR Code + +```json +{ + "data": { + "payment": { + "amount": 1000, + "fee": 80, + "method": "PIX" + }, + "pixQrCode": { + "amount": 1000, + "id": "pix_char_mXTWdj6sABWnc4uL2Rh1r6tb", + "kind": "PIX", + "status": "PAID" + } + }, + "devMode": false, + "event": "billing.paid" +} +``` + +#### Pagamento via Cobrança + +```json +{ + "data": { + "payment": { + "amount": 1000, + "fee": 80, + "method": "PIX" + }, + "billing": { + "amount": 1000, + "couponsUsed": [], + "customer": { + "id": "cust_4hnLDN3YfUWrwQBQKYMwL6Ar", + "metadata": { + "cellphone": "11111111111", + "email": "christopher@abacatepay.com", + "name": "Christopher Ribeiro", + "taxId": "12345678901" + } + }, + "frequency": "ONE_TIME", + "id": "bill_QgW1BT3uzaDGR3ANKgmmmabZ", + "kind": [ + "PIX" + ], + "paidAmount": 1000, + "products": [ + { + "externalId": "123", + "id": "prod_RGKGsjBWsJwRn1mHyGMFJNjP", + "quantity": 1 + } + ], + "status": "PAID" + } + }, + "devMode": false, + "event": "billing.paid" +} +``` + + + * O campo `devMode` indica se o evento ocorreu no ambiente de desenvolvimento + * Todos os valores monetários são expressos em centavos + * O campo `fee` representa a taxa cobrada pela AbacatePay + * O campo `event` identifica o tipo de evento recebido + + + + Nossa equipe está disponível para auxiliar na implementação de webhooks. Entre em contato pelo e-mail ajuda@abacatepay.com + diff --git a/pt/withdraw/create.mdx b/pt/withdraw/create.mdx new file mode 100644 index 0000000..bb06841 --- /dev/null +++ b/pt/withdraw/create.mdx @@ -0,0 +1,4 @@ +--- +title: Criar um novo Saque +openapi: 'POST /withdraw/create' +--- diff --git a/pt/withdraw/list.mdx b/pt/withdraw/list.mdx new file mode 100644 index 0000000..20beeab --- /dev/null +++ b/pt/withdraw/list.mdx @@ -0,0 +1,4 @@ +--- +title: 'Listar Saques' +openapi: "GET /withdraw/list" +--- \ No newline at end of file diff --git a/pt/withdraw/reference.mdx b/pt/withdraw/reference.mdx new file mode 100644 index 0000000..fa724ab --- /dev/null +++ b/pt/withdraw/reference.mdx @@ -0,0 +1,182 @@ +--- +title: "Referência" +description: "Realize saques para chaves PIX" +icon: "book-open-cover" +--- + +O módulo de **Saque** permite que você transfira valores da sua conta AbacatePay para uma chave PIX de sua escolha. É uma funcionalidade essencial para gerenciar seus fundos e realizar transferências. + +Atualmente, o saque suporta apenas o método **PIX**, que é o método mais rápido e eficiente para transferências no Brasil. + +## Estrutura + +Um saque é representado em nossa API pela seguinte estrutura de transação: + +```json json +{ + "id": "tran_1234567890abcdef", + "status": "PENDING", + "devMode": true, + "receiptUrl": "https://abacatepay.com/receipt/tran_1234567890abcdef", + "kind": "WITHDRAW", + "amount": 5000, + "platformFee": 80, + "externalId": "withdraw-1234", + "createdAt": "2024-12-06T18:56:15.538Z", + "updatedAt": "2024-12-06T18:56:15.538Z" +} +``` + +## Atributos: + + + + ```json json {2} + { + "id": "tran_1234567890abcdef", + } + ``` + + `id` : string.
+ Id único da transação de saque na AbacatePay +
+ + ```json json {2} + { + "status": "PENDING", + } + ``` + `status` : string.
+ Status atual da transação de saque. + + + | | | + | ---------------------| ---------------------------------------------------------------------------------------------------- | + | `PENDING` | **Saque criado e aguardando processamento** | + | `EXPIRED` | **Saque expirado e não pode mais ser processado** | + | `CANCELLED` | **Saque cancelado** | + | `COMPLETE` | **Saque processado e concluído com sucesso** | + | `REFUNDED` | **Saque reembolsado** | + +
+ + ```json json {2} + { + "devMode": true, + } + ``` + `devMode` : boolean.
+ Indica se o saque foi criado em ambiente de desenvolvimento (sandbox) ou produção. Atualmente suportamos saques somente em produção. +
+ + ```json json {2} + { + "receiptUrl": "https://abacatepay.com/receipt/tran_1234567890abcdef", + } + ``` + `receiptUrl` : string.
+ URL do comprovante da transação de saque. +
+ + ```json json {2} + { + "kind": "WITHDRAW", + } + ``` + `kind` : string.
+ Tipo da transação. Para saques, sempre será `WITHDRAW`. +
+ + ```json json {2} + { + "amount": 5000, + } + ``` + `amount` : number.
+ Valor do saque em centavos. No exemplo, R$ 50,00. +
+ + ```json json {2} + { + "platformFee": 80, + } + ``` + `platformFee` : number.
+ Taxa da plataforma cobrada pelo saque em centavos. No exemplo, R$ 0,80. +
+ + ```json json {2} + { + "externalId": "withdraw-1234", + } + ``` + `externalId` : string.
+ Identificador único do saque em seu sistema. Opcional. +
+ + ```json json {2} + { + "createdAt": "2024-12-06T18:56:15.538Z", + } + ``` + `createdAt` : string.
+ Data e hora de criação do saque. +
+ + ```json json {2} + { + "updatedAt": "2024-12-06T18:56:15.538Z", + } + ``` + `updatedAt` : string.
+ Data e hora da última atualização do saque. +
+
+ +## Tipos de Chave PIX + +O saque suporta os seguintes tipos de chave PIX: + + + + Chave PIX baseada no CPF (Cadastro de Pessoa Física) do beneficiário. + + **Exemplo:** `123.456.789-01` + + + Chave PIX baseada no CNPJ (Cadastro Nacional da Pessoa Jurídica) do beneficiário. + + **Exemplo:** `12.345.678/0001-90` + + + Chave PIX baseada no número de telefone celular do beneficiário. + + **Exemplo:** `+5511999999999` + + + Chave PIX baseada no endereço de e-mail do beneficiário. + + **Exemplo:** `usuario@exemplo.com` + + + Chave PIX aleatória (chave aleatória) do beneficiário. + + **Exemplo:** `a1b2c3d4-e5f6-7890-abcd-ef1234567890` + + + +## Limites e Taxas + +- **Valor mínimo:** R$ 3,50 (350 centavos) +- **Taxa da plataforma:** R$ 0,80 centavos se estiver dentro dos limites descritos em nossos [termos de uso](https://abacatepay.com/termos) +- **Processamento:** Instantâneo +- **Disponibilidade:** 24/7 caso os limites diários e noturnos da sua conta não tenham sido excedidos +- **Limite de uso:** 1 saque por minuto. Tentativas em excesso resultarão em erro HTTP 429 (Too Many Requests). Para aumentar o limite entre em contato com nosso suporte + +## Segurança + +- Todos os saques são autenticados via Bearer Token +- Validação automática das chaves PIX +- Logs detalhados de todas as transações +- Possibilidade de cancelamento em caso de erro +- Abusos desta API podem resultar em suspensão da conta conforme descrito em nossos [termos de uso](https://abacatepay.com/termos) From e8896ef688cf114e97ea14613357cdf4a50e3825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Da=20N=C3=B3brega=20Brand=C3=A3o?= Date: Sun, 31 Aug 2025 14:49:54 -0300 Subject: [PATCH 2/4] feat: english --- en/authentication.mdx | 84 ++++++++++---------- en/client/create.mdx | 2 +- en/client/list.mdx | 2 +- en/client/reference.mdx | 2 +- en/coupon/create.mdx | 2 +- en/coupon/list.mdx | 2 +- en/coupon/reference.mdx | 2 +- en/payment/create.mdx | 2 +- en/payment/list.mdx | 2 +- en/payment/reference.mdx | 2 +- en/pix-qrcode/check.mdx | 2 +- en/pix-qrcode/create.mdx | 2 +- en/pix-qrcode/list.mdx | 2 +- en/pix-qrcode/reference.mdx | 2 +- en/pix-qrcode/simulate-payment.mdx | 2 +- en/production.mdx | 58 +++++++------- en/sdks.mdx | 118 ++++++++++++++--------------- en/webhooks.mdx | 110 +++++++++++++-------------- en/withdraw/create.mdx | 2 +- en/withdraw/list.mdx | 2 +- en/withdraw/reference.mdx | 2 +- es/authentication.mdx | 82 ++++++++++---------- 22 files changed, 243 insertions(+), 243 deletions(-) diff --git a/en/authentication.mdx b/en/authentication.mdx index cdd516c..22ad7ff 100644 --- a/en/authentication.mdx +++ b/en/authentication.mdx @@ -1,93 +1,93 @@ --- -title: 'Autenticação' -description: 'Como enviar requisições para a nossa API' +title: 'Authentication' +description: 'How to send requests to our API' icon: 'lock' --- - **Chave de API**: Sua credencial de acesso à API da AbacatePay. Esta chave identifica sua conta e autoriza suas requisições. **IMPORTANTE**: Sem a chave de API, as requisições serão recusadas. + **API Key**: Your credential to access the AbacatePay API. This key identifies your account and authorizes your requests. **IMPORTANT**: Without the API key, requests will be rejected. -## Gerenciando chaves de API +## Managing API keys -Gerencie suas chaves de API diretamente em nossa plataforma. Você pode: -- Listar todas as chaves ativas -- Criar novas chaves -- Revogar chaves existentes +Manage your API keys directly in our platform. You can: +- List all active keys +- Create new keys +- Revoke existing keys - - Todas as requisições são enviadas para o mesmo endpoint (`https://api.abacatepay.com`), mas o ambiente é determinado pela chave de API utilizada: - - Chaves criadas em **dev mode** processam transações no ambiente de testes - - Chaves criadas em **produção** processam transações reais + + All requests are sent to the same endpoint (`https://api.abacatepay.com`), but the environment is determined by the API key used: + - Keys created in **dev mode** process transactions in the test environment + - Keys created in **production** process real transactions - Saiba mais sobre o ambiente de desenvolvimento aqui. + Learn more about the development environment here. - - A API retornará o código HTTP `401` quando: - - A chave de API não for fornecida no header - - A chave for inválida - - A chave tiver sido revogada + + The API will return HTTP code `401` when: + - The API key is not provided in the header + - The key is invalid + - The key has been revoked -## Criando chaves de API +## Creating API keys - - * Armazene suas chaves em variáveis de ambiente ou gerenciadores de segredos - * Nunca compartilhe suas chaves de API - * A AbacatePay nunca solicitará suas chaves - * Revogue imediatamente qualquer chave comprometida + + * Store your keys in environment variables or secret managers + * Never share your API keys + * AbacatePay will never request your keys + * Immediately revoke any compromised key -## Como criar sua chave de API +## How to create your API key -Siga estes passos no dashboard da AbacatePay: +Follow these steps in the AbacatePay dashboard: - + Interface da plataforma AbacatePay mostrando o botão de criação de chave - - Inicie o processo de criação de uma nova chave de API + + Start the process of creating a new API key - + Formulário de criação de chave com campo de descrição - - Adicione uma descrição clara para identificar o propósito desta chave + + Add a clear description to identify the purpose of this key - + Lista de chaves com opção para copiar - - Copie a chave gerada e armazene-a em um local seguro + + Copy the generated key and store it in a secure location -Após criar sua chave, você pode começar a integrar com nossa API. Lembre-se de incluir a chave em todas as requisições no header `Authorization`: +After creating your key, you can start integrating with our API. Remember to include the key in all requests in the `Authorization` header: ```bash curl -X POST https://api.abacatepay.com/v1/payments \ - -H "Authorization: Bearer sua_chave_api" \ + -H "Authorization: Bearer your_api_key" \ -H "Content-Type: application/json" \ -d '{"amount": 1000}' ``` - - O mesmo endpoint (`https://api.abacatepay.com`) é usado tanto para o ambiente de desenvolvimento quanto para produção. O ambiente é determinado automaticamente pela chave de API utilizada na requisição. + + The same endpoint (`https://api.abacatepay.com`) is used for both development and production environments. The environment is automatically determined by the API key used in the request. diff --git a/en/client/create.mdx b/en/client/create.mdx index 77e2d82..5c1c2dc 100644 --- a/en/client/create.mdx +++ b/en/client/create.mdx @@ -1,5 +1,5 @@ --- -title: 'Criar um novo Cliente' +title: 'Create a new Customer' openapi: "POST /customer/create" --- diff --git a/en/client/list.mdx b/en/client/list.mdx index 65c5fd0..0eaaf98 100644 --- a/en/client/list.mdx +++ b/en/client/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar Clientes' +title: 'List Customers' openapi: "GET /customer/list" --- diff --git a/en/client/reference.mdx b/en/client/reference.mdx index 323a1b4..d8abf49 100644 --- a/en/client/reference.mdx +++ b/en/client/reference.mdx @@ -1,5 +1,5 @@ --- -title: 'Referência' +title: 'Reference' description: 'Gerencie seus clientes, aqueles que pagam você.' icon: 'book-open-cover' --- diff --git a/en/coupon/create.mdx b/en/coupon/create.mdx index 9cb1548..7e299f7 100644 --- a/en/coupon/create.mdx +++ b/en/coupon/create.mdx @@ -1,4 +1,4 @@ --- -title: 'Criar um novo cupom' +title: 'Create a new coupon' openapi: "POST /coupon/create" --- \ No newline at end of file diff --git a/en/coupon/list.mdx b/en/coupon/list.mdx index f1ef281..cf1727a 100644 --- a/en/coupon/list.mdx +++ b/en/coupon/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar cupons' +title: 'List coupons' openapi: "GET /coupon/list" --- \ No newline at end of file diff --git a/en/coupon/reference.mdx b/en/coupon/reference.mdx index 9e0ea99..56f8257 100644 --- a/en/coupon/reference.mdx +++ b/en/coupon/reference.mdx @@ -1,5 +1,5 @@ --- -title: 'Referência' +title: 'Reference' description: 'Crie cupons de desconto para seus clientes usarem uma ou várias vezes' icon: 'book-open-cover' --- diff --git a/en/payment/create.mdx b/en/payment/create.mdx index 6411953..27b7bc8 100644 --- a/en/payment/create.mdx +++ b/en/payment/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar uma nova Cobrança +title: Create a new Payment openapi: 'POST /billing/create' --- diff --git a/en/payment/list.mdx b/en/payment/list.mdx index 571c2e7..1c91586 100644 --- a/en/payment/list.mdx +++ b/en/payment/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar Cobranças' +title: 'List Payments' openapi: "GET /billing/list" --- \ No newline at end of file diff --git a/en/payment/reference.mdx b/en/payment/reference.mdx index 9735518..0bfc8a9 100644 --- a/en/payment/reference.mdx +++ b/en/payment/reference.mdx @@ -1,5 +1,5 @@ --- -title: "Referência" +title: "Reference" description: "Crie um link de cobrança e deixe seu cliente pagar" icon: "book-open-cover" --- diff --git a/en/pix-qrcode/check.mdx b/en/pix-qrcode/check.mdx index a87626a..467fe6d 100644 --- a/en/pix-qrcode/check.mdx +++ b/en/pix-qrcode/check.mdx @@ -1,4 +1,4 @@ --- -title: 'Checar Status' +title: 'Check Status' openapi: 'GET /pixQrCode/check' --- diff --git a/en/pix-qrcode/create.mdx b/en/pix-qrcode/create.mdx index a58798b..174f99b 100644 --- a/en/pix-qrcode/create.mdx +++ b/en/pix-qrcode/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar QRCode PIX +title: Create PIX QRCode openapi: 'POST /pixQrCode/create' --- diff --git a/en/pix-qrcode/list.mdx b/en/pix-qrcode/list.mdx index bf6edf9..8f57efb 100644 --- a/en/pix-qrcode/list.mdx +++ b/en/pix-qrcode/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar QRCodes Pix' +title: 'List PIX QRCodes' openapi: "GET /pixQrCode/list" --- \ No newline at end of file diff --git a/en/pix-qrcode/reference.mdx b/en/pix-qrcode/reference.mdx index b753055..54b0047 100644 --- a/en/pix-qrcode/reference.mdx +++ b/en/pix-qrcode/reference.mdx @@ -1,5 +1,5 @@ --- -title: 'Referência' +title: 'Reference' description: 'Gere um QRCode Pix e um código copia-e-cola para o seu cliente' icon: 'book-open-cover' --- diff --git a/en/pix-qrcode/simulate-payment.mdx b/en/pix-qrcode/simulate-payment.mdx index 68a0807..033654c 100644 --- a/en/pix-qrcode/simulate-payment.mdx +++ b/en/pix-qrcode/simulate-payment.mdx @@ -1,4 +1,4 @@ --- -title: 'Simular Pagamento' +title: 'Simulate Payment' openapi: 'POST /pixQrCode/simulate-payment' --- diff --git a/en/production.mdx b/en/production.mdx index 6746216..524f533 100644 --- a/en/production.mdx +++ b/en/production.mdx @@ -1,58 +1,58 @@ --- -title: 'Indo para produção' -description: 'Como sair do dev mode e começar a faturar' +title: 'Going to Production' +description: 'How to exit dev mode and start billing' icon: 'conveyor-belt-arm' --- -Ao migrar do ambiente de desenvolvimento para produção, você precisará completar o processo de verificação da sua conta. Este processo é necessário para garantir a segurança e conformidade das operações. +When migrating from the development environment to production, you'll need to complete your account verification process. This process is necessary to ensure the security and compliance of operations. -## Processo de Verificação +## Verification Process -Para ativar sua conta em produção, siga estes passos: +To activate your account in production, follow these steps: - + Interface da plataforma AbacatePay mostrando o botão de Dev mode - - Clique no botão "Dev mode" no canto superior direito da plataforma para iniciar o processo de migração + + Click the "Dev mode" button in the top right corner of the platform to start the migration process - + Formulário de documentação da AbacatePay - - Preencha os dados da sua empresa, informações dos sócios e anexe os documentos solicitados: - - Documentos da empresa - - Documentos dos sócios - - Comprovante de endereço - - Outros documentos específicos do seu segmento + + Fill in your company data, partner information, and attach the requested documents: + - Company documents + - Partner documents + - Address proof + - Other documents specific to your segment - - Após o envio dos documentos: - - Nossa equipe analisará sua documentação - - Você receberá uma resposta em até 24 horas - - O e-mail de aprovação conterá instruções para os próximos passos + + After submitting documents: + - Our team will review your documentation + - You'll receive a response within 24 hours + - The approval email will contain instructions for next steps - - * Certifique-se de que todos os documentos estão legíveis - * Verifique se as informações estão atualizadas - * Mantenha os dados consistentes em todos os documentos - * Responda prontamente a qualquer solicitação adicional + + * Make sure all documents are legible + * Verify that information is up to date + * Keep data consistent across all documents + * Respond promptly to any additional requests - - Nossa equipe está disponível para auxiliar no processo de migração. Entre em contato pelo e-mail ajuda@abacatepay.com + + Our team is available to assist with the migration process. Contact us by email ajuda@abacatepay.com \ No newline at end of file diff --git a/en/sdks.mdx b/en/sdks.mdx index 7610105..52bec98 100644 --- a/en/sdks.mdx +++ b/en/sdks.mdx @@ -1,83 +1,83 @@ --- title: 'SDKs' -description: 'Bibliotecas oficiais para integração com a API da AbacatePay' +description: 'Official libraries for integration with the AbacatePay API' icon: 'boxes-stacked' --- - **Acelere sua integração com nossos SDKs**: Nossas bibliotecas oficiais facilitam a integração com a API da AbacatePay em várias linguagens de programação. + **Accelerate your integration with our SDKs**: Our official libraries make it easy to integrate with the AbacatePay API in various programming languages. -## O que são os SDKs da AbacatePay? +## What are AbacatePay SDKs? -Os SDKs (Software Development Kits) da AbacatePay são bibliotecas que simplificam a comunicação com nossa API. Eles oferecem uma interface amigável e específica para cada linguagem, permitindo que você integre rapidamente nossos serviços de pagamento ao seu aplicativo. +AbacatePay SDKs (Software Development Kits) are libraries that simplify communication with our API. They offer a friendly interface specific to each language, allowing you to quickly integrate our payment services into your application. - - * **Integração simplificada**: Funções prontas para todos os endpoints da API - * **Tipagem forte**: Interfaces completas em linguagens com suporte a tipos - * **Tratamento de erros**: Gerenciamento automático dos casos de erro mais comuns - * **Menor curva de aprendizado**: Não é necessário conhecer todos os detalhes da API - * **Atualizações frequentes**: Mantemos os SDKs atualizados com as mais recentes funcionalidades + + * **Simplified integration**: Ready functions for all API endpoints + * **Strong typing**: Complete interfaces in languages with type support + * **Error handling**: Automatic management of the most common error cases + * **Lower learning curve**: No need to know all API details + * **Frequent updates**: We keep SDKs updated with the latest features -## SDKs Disponíveis +## Available SDKs -Oferecemos SDKs oficiais para diversas linguagens de programação. Escolha o que melhor se adapta à sua stack tecnológica: +We offer official SDKs for various programming languages. Choose what best fits your tech stack: - SDK oficial para Node.js, compatível com TypeScript e ES modules. + Official SDK for Node.js, compatible with TypeScript and ES modules. - SDK oficial para Python 3.10+, com suporte a async/await e type hints. + Official SDK for Python 3.10+, with async/await and type hints support. - SDK oficial para Java 8+, compatível com Spring Boot e Jakarta EE. + Official SDK for Java 8+, compatible with Spring Boot and Jakarta EE. - SDK oficial para PHP 7.4+, com suporte a Composer e PSR standards. + Official SDK for PHP 7.4+, with Composer and PSR standards support. - SDK oficial para Ruby 2.6+, disponível como gem e com suporte a Rails. + Official SDK for Ruby 2.6+, available as gem with Rails support. - SDK oficial para Go 1.13+, com suporte a módulos e generics. + Official SDK for Go 1.13+, with modules and generics support. - SDK oficial para Rust, com foco em segurança e performance. + Official SDK for Rust, focused on security and performance. - SDK oficial para Elixir, ideal para aplicações escaláveis e distribuídas. + Official SDK for Elixir, ideal for scalable and distributed applications. - SDK oficial para Kotlin, ideal para aplicativos Android modernos. + Official SDK for Kotlin, ideal for modern Android apps. - SDK oficial para Swift, ideal para aplicativos iOS e macOS. + Official SDK for Swift, ideal for iOS and macOS apps. -## Exemplos de Uso +## Usage Examples -Veja como é simples usar nossos SDKs em algumas das linguagens mais populares: +See how simple it is to use our SDKs in some of the most popular languages: ```javascript Node.js -// Instalação: npm install abacatepay-nodejs-sdk +// Installation: npm install abacatepay-nodejs-sdk import AbacatePay from 'abacatepay-nodejs-sdk'; -// Inicialize o cliente com sua chave de API +// Initialize the client with your API key const abacate = AbacatePay('your_api_key'); -// Crie um pagamento PIX +// Create a PIX payment async function createPixPayment() { const billing = await abacate.billing.create({ frequency: "ONE_TIME", @@ -104,25 +104,25 @@ createPixPayment(); ``` ```python Python -# Instalação: pip install abacatepay +# Installation: pip install abacatepay from abacatepay import AbacatePay from abacatepay.products import Product -# Inicialize o cliente com sua chave de API +# Initialize the client with your API key client = AbacatePay( - api_key="sua_chave_api", + api_key="your_api_key", ) -# Crie produtos para a cobrança +# Create products for billing products = [ Product( external_id="123", - name="Produto de teste", + name="Test product", quantity=1, price=50_00, description="Example product" ), - # Ou como dicionário + # Or as dictionary { 'external_id': "321", 'name': "Product as dict", @@ -132,74 +132,74 @@ products = [ } ] -# Crie uma cobrança +# Create a billing billing = client.billing.create( products=products, return_url="https://yourwebsite.com/return", completion_url="https://yourwebsite.com/complete" ) -print(f"URL da cobrança: {billing.data.url}") +print(f"Billing URL: {billing.data.url}") ``` ```php PHP -// Instalação: composer require abacatepay/sdk +// Installation: composer require abacatepay/sdk 'sua_chave_api', - 'environment' => 'production' // ou 'sandbox' para ambiente de testes + 'apiKey' => 'your_api_key', + 'environment' => 'production' // or 'sandbox' for test environment ]); -// Crie um pagamento PIX +// Create a PIX payment try { $payment = $client->payments->createPix([ 'value' => 1000, // R$ 10,00 - 'description' => 'Pagamento de teste', - 'expiresIn' => 3600 // 1 hora + 'description' => 'Test payment', + 'expiresIn' => 3600 // 1 hour ]); echo "QR Code: " . $payment->qrCode . "\n"; - echo "Chave de cobrança: " . $payment->chargeKey . "\n"; + echo "Charge key: " . $payment->chargeKey . "\n"; } catch (Exception $e) { - echo "Erro ao criar pagamento: " . $e->getMessage() . "\n"; + echo "Error creating payment: " . $e->getMessage() . "\n"; } ``` -## Perguntas Frequentes +## Frequently Asked Questions - - Cada SDK tem instruções de instalação específicas no seu repositório no GitHub. Geralmente, você pode usar o gerenciador de pacotes da sua linguagem, como npm, pip, composer, bundle, etc. + + Each SDK has specific installation instructions in its GitHub repository. Generally, you can use your language's package manager, such as npm, pip, composer, bundle, etc. - - Sim! Todos os nossos SDKs suportam ambos os ambientes. Em alguns casos, é preciso configurar o parâmetro `environment` ao inicializar o cliente para `sandbox` ou `production`, ou basta usar a chave de api do ambiente desejado. + + Yes! All our SDKs support both environments. In some cases, you need to configure the `environment` parameter when initializing the client for `sandbox` or `production`, or simply use the API key from the desired environment. - - Você pode abrir uma issue no repositório do GitHub do SDK específico. Nossa equipe está sempre atenta para corrigir bugs e melhorar nossos SDKs. + + You can open an issue in the specific SDK's GitHub repository. Our team is always attentive to fix bugs and improve our SDKs. - - Entre em contato conosco em ajuda@abacatepay.com informando qual linguagem você precisa. Também aceitamos contribuições da comunidade! + + Contact us at ajuda@abacatepay.com letting us know which language you need. We also accept community contributions! -## Recursos Adicionais +## Additional Resources - Aprenda a configurar webhooks para receber notificações de eventos. + Learn how to configure webhooks to receive event notifications. - - Saiba como usar o ambiente de desenvolvimento para testar suas integrações. + + Learn how to use the development environment to test your integrations. - - Nossa equipe está disponível para ajudar com qualquer dúvida sobre nossos SDKs. Entre em contato pelo e-mail ajuda@abacatepay.com + + Our team is available to help with any questions about our SDKs. Contact us by email ajuda@abacatepay.com diff --git a/en/webhooks.mdx b/en/webhooks.mdx index b0fb20f..bb2da61 100644 --- a/en/webhooks.mdx +++ b/en/webhooks.mdx @@ -1,93 +1,93 @@ --- title: 'Webhooks' -description: 'Configure e receba notificações sobre atualizações' +description: 'Configure and receive notifications about updates' icon: 'webhook' --- -Webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos importantes da AbacatePay. +Webhooks allow your application to receive real-time notifications about important AbacatePay events. -## Gerenciando webhooks +## Managing webhooks -Gerencie seus webhooks diretamente em nossa plataforma. Você pode: -- Listar todos os webhooks ativos -- Criar novos webhooks -- Remover webhooks existentes +Manage your webhooks directly in our platform. You can: +- List all active webhooks +- Create new webhooks +- Remove existing webhooks - - Os webhooks são específicos para cada ambiente: - - Webhooks criados em **dev mode** recebem notificações apenas do ambiente de testes - - Webhooks criados em **produção** recebem notificações apenas de dados reais + + Webhooks are specific to each environment: + - Webhooks created in **dev mode** receive notifications only from the test environment + - Webhooks created in **production** receive notifications only from real data - Saiba mais sobre o ambiente de desenvolvimento aqui. + Learn more about the development environment here. -## Criando webhooks +## Creating webhooks - - * Configure um secret único para cada webhook - * Valide o secret em todas as requisições recebidas - * Use HTTPS para todas as URLs de webhook - * Implemente retry logic para lidar com falhas temporárias + + * Configure a unique secret for each webhook + * Validate the secret in all received requests + * Use HTTPS for all webhook URLs + * Implement retry logic to handle temporary failures -## Como criar seu webhook +## How to create your webhook -Siga estes passos no dashboard da AbacatePay: +Follow these steps in the AbacatePay dashboard: - + Interface da plataforma AbacatePay mostrando a seção de webhooks - - Inicie o processo de configuração de um novo webhook + + Start the process of configuring a new webhook - + Formulário de criação de webhook - - Você será direcionado ao formulário de configuração + + You will be directed to the configuration form - + - - * **Nome**: Identificador único para seu webhook (ex: "Notificações de Pagamento") - * **URL**: Endpoint HTTPS que receberá as notificações - * **Secret**: Chave secreta para validar as requisições + + * **Name**: Unique identifier for your webhook (e.g., "Payment Notifications") + * **URL**: HTTPS endpoint that will receive notifications + * **Secret**: Secret key to validate requests -## Protegendo suas requisições +## Protecting your requests -Cada notificação enviada para seu webhook inclui o secret configurado como parâmetro de query string para validação. +Each notification sent to your webhook includes the configured secret as a query string parameter for validation. -### Exemplo de URL de Webhook +### Webhook URL Example -URL base do seu webhook: +Base URL of your webhook: ``` -https://meusite.com/webhook/abacatepay +https://mysite.com/webhook/abacatepay ``` -URL com secret (como será chamado): +URL with secret (how it will be called): ``` -https://meusite.com/webhook/abacatepay?webhookSecret=seu_secret_aqui +https://mysite.com/webhook/abacatepay?webhookSecret=your_secret_here ``` -### Exemplo de Implementação +### Implementation Example ```javascript -// Exemplo de validação do webhook +// Webhook validation example app.post('/webhook/abacatepay', (req, res) => { const webhookSecret = req.query.webhookSecret; @@ -95,7 +95,7 @@ app.post('/webhook/abacatepay', (req, res) => { return res.status(401).json({ error: 'Invalid webhook secret' }); } - // Processa a notificação + // Process the notification const event = req.body; console.log('Received webhook:', event); @@ -103,15 +103,15 @@ app.post('/webhook/abacatepay', (req, res) => { }); ``` -## Eventos Suportados +## Supported Events -Atualmente, suportamos os seguintes eventos: +Currently, we support the following events: ### `billing.paid` -Este evento é disparado quando um pagamento é confirmado. O payload varia dependendo da origem do pagamento: +This event is triggered when a payment is confirmed. The payload varies depending on the payment origin: -#### Pagamento via PIX QR Code +#### Payment via PIX QR Code ```json { @@ -133,7 +133,7 @@ Este evento é disparado quando um pagamento é confirmado. O payload varia depe } ``` -#### Pagamento via Cobrança +#### Payment via Billing ```json { @@ -176,13 +176,13 @@ Este evento é disparado quando um pagamento é confirmado. O payload varia depe } ``` - - * O campo `devMode` indica se o evento ocorreu no ambiente de desenvolvimento - * Todos os valores monetários são expressos em centavos - * O campo `fee` representa a taxa cobrada pela AbacatePay - * O campo `event` identifica o tipo de evento recebido + + * The `devMode` field indicates whether the event occurred in the development environment + * All monetary values are expressed in cents + * The `fee` field represents the commission charged by AbacatePay + * The `event` field identifies the type of event received - - Nossa equipe está disponível para auxiliar na implementação de webhooks. Entre em contato pelo e-mail ajuda@abacatepay.com + + Our team is available to assist with webhook implementation. Contact us by email ajuda@abacatepay.com diff --git a/en/withdraw/create.mdx b/en/withdraw/create.mdx index bb06841..879029d 100644 --- a/en/withdraw/create.mdx +++ b/en/withdraw/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar um novo Saque +title: Create a new Withdrawal openapi: 'POST /withdraw/create' --- diff --git a/en/withdraw/list.mdx b/en/withdraw/list.mdx index 20beeab..dc02ef5 100644 --- a/en/withdraw/list.mdx +++ b/en/withdraw/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar Saques' +title: 'List Withdrawals' openapi: "GET /withdraw/list" --- \ No newline at end of file diff --git a/en/withdraw/reference.mdx b/en/withdraw/reference.mdx index fa724ab..2d91c78 100644 --- a/en/withdraw/reference.mdx +++ b/en/withdraw/reference.mdx @@ -1,5 +1,5 @@ --- -title: "Referência" +title: "Reference" description: "Realize saques para chaves PIX" icon: "book-open-cover" --- diff --git a/es/authentication.mdx b/es/authentication.mdx index cdd516c..65f4071 100644 --- a/es/authentication.mdx +++ b/es/authentication.mdx @@ -1,93 +1,93 @@ --- -title: 'Autenticação' -description: 'Como enviar requisições para a nossa API' +title: 'Autenticación' +description: 'Cómo enviar peticiones a nuestra API' icon: 'lock' --- - **Chave de API**: Sua credencial de acesso à API da AbacatePay. Esta chave identifica sua conta e autoriza suas requisições. **IMPORTANTE**: Sem a chave de API, as requisições serão recusadas. + **Clave de API**: Tu credencial de acceso a la API de AbacatePay. Esta clave identifica tu cuenta y autoriza tus peticiones. **IMPORTANTE**: Sin la clave de API, las peticiones serán rechazadas. -## Gerenciando chaves de API +## Gestionando claves de API -Gerencie suas chaves de API diretamente em nossa plataforma. Você pode: -- Listar todas as chaves ativas -- Criar novas chaves -- Revogar chaves existentes +Gestiona tus claves de API directamente en nuestra plataforma. Puedes: +- Listar todas las claves activas +- Crear nuevas claves +- Revocar claves existentes - - Todas as requisições são enviadas para o mesmo endpoint (`https://api.abacatepay.com`), mas o ambiente é determinado pela chave de API utilizada: - - Chaves criadas em **dev mode** processam transações no ambiente de testes - - Chaves criadas em **produção** processam transações reais + + Todas las peticiones se envían al mismo endpoint (`https://api.abacatepay.com`), pero el entorno se determina por la clave de API utilizada: + - Las claves creadas en **dev mode** procesan transacciones en el entorno de pruebas + - Las claves creadas en **producción** procesan transacciones reales - Saiba mais sobre o ambiente de desenvolvimento aqui. + Conoce más sobre el entorno de desarrollo aquí. - - A API retornará o código HTTP `401` quando: - - A chave de API não for fornecida no header - - A chave for inválida - - A chave tiver sido revogada + + La API retornará el código HTTP `401` cuando: + - La clave de API no sea proporcionada en el header + - La clave sea inválida + - La clave haya sido revocada -## Criando chaves de API +## Creando claves de API - - * Armazene suas chaves em variáveis de ambiente ou gerenciadores de segredos - * Nunca compartilhe suas chaves de API - * A AbacatePay nunca solicitará suas chaves - * Revogue imediatamente qualquer chave comprometida + + * Almacena tus claves en variables de entorno o gestores de secretos + * Nunca compartas tus claves de API + * AbacatePay nunca solicitará tus claves + * Revoca inmediatamente cualquier clave comprometida -## Como criar sua chave de API +## Cómo crear tu clave de API -Siga estes passos no dashboard da AbacatePay: +Sigue estos pasos en el dashboard de AbacatePay: - + Interface da plataforma AbacatePay mostrando o botão de criação de chave - - Inicie o processo de criação de uma nova chave de API + + Inicia el proceso de creación de una nueva clave de API - + Formulário de criação de chave com campo de descrição - - Adicione uma descrição clara para identificar o propósito desta chave + + Agrega una descripción clara para identificar el propósito de esta clave - + Lista de chaves com opção para copiar - - Copie a chave gerada e armazene-a em um local seguro + + Copia la clave generada y almacénala en un lugar seguro -Após criar sua chave, você pode começar a integrar com nossa API. Lembre-se de incluir a chave em todas as requisições no header `Authorization`: +Después de crear tu clave, puedes comenzar a integrar con nuestra API. Recuerda incluir la clave en todas las peticiones en el header `Authorization`: ```bash curl -X POST https://api.abacatepay.com/v1/payments \ - -H "Authorization: Bearer sua_chave_api" \ + -H "Authorization: Bearer tu_clave_api" \ -H "Content-Type: application/json" \ -d '{"amount": 1000}' ``` - O mesmo endpoint (`https://api.abacatepay.com`) é usado tanto para o ambiente de desenvolvimento quanto para produção. O ambiente é determinado automaticamente pela chave de API utilizada na requisição. + El mismo endpoint (`https://api.abacatepay.com`) se usa tanto para el entorno de desarrollo como para producción. El entorno se determina automáticamente por la clave de API utilizada en la petición. From c91554cc068f26c6ef30c9350ad3a3e630aa0542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Da=20N=C3=B3brega=20Brand=C3=A3o?= Date: Sun, 31 Aug 2025 15:56:32 -0300 Subject: [PATCH 3/4] feat: spanish --- es/client/create.mdx | 2 +- es/client/reference.mdx | 28 +++---- es/coupon/create.mdx | 2 +- es/coupon/list.mdx | 2 +- es/coupon/reference.mdx | 48 ++++++------ es/payment/create.mdx | 2 +- es/payment/list.mdx | 2 +- es/payment/reference.mdx | 66 ++++++++--------- es/pix-qrcode/check.mdx | 2 +- es/pix-qrcode/create.mdx | 2 +- es/pix-qrcode/reference.mdx | 48 ++++++------ es/pix-qrcode/simulate-payment.mdx | 2 +- es/production.mdx | 58 +++++++-------- es/sdks.mdx | 114 ++++++++++++++--------------- es/webhooks.mdx | 106 +++++++++++++-------------- es/withdraw/create.mdx | 2 +- es/withdraw/list.mdx | 2 +- es/withdraw/reference.mdx | 92 +++++++++++------------ 18 files changed, 290 insertions(+), 290 deletions(-) diff --git a/es/client/create.mdx b/es/client/create.mdx index 77e2d82..f814f02 100644 --- a/es/client/create.mdx +++ b/es/client/create.mdx @@ -1,5 +1,5 @@ --- -title: 'Criar um novo Cliente' +title: 'Crear un nuevo Cliente' openapi: "POST /customer/create" --- diff --git a/es/client/reference.mdx b/es/client/reference.mdx index 323a1b4..130972b 100644 --- a/es/client/reference.mdx +++ b/es/client/reference.mdx @@ -1,14 +1,14 @@ --- -title: 'Referência' -description: 'Gerencie seus clientes, aqueles que pagam você.' +title: 'Referencia' +description: 'Gestiona tus clientes, aquellos que te pagan.' icon: 'book-open-cover' --- -Um cliente é seu usuário final, aquele que você vai cobrar e pagar o seu produto. +Un cliente es tu usuario final, aquel al que vas a cobrar y que pagará tu producto. -## Estrutura +## Estructura -Um cliente é representado em nossa API pela seguinte estrutura: +Un cliente está representado en nuestra API por la siguiente estructura: ```json { @@ -33,10 +33,10 @@ Um cliente é representado em nossa API pela seguinte estrutura: ``` `id` : string.
-Id único do cliente na AbacatePay +Id único del cliente en AbacatePay -### metadados: -Objeto com os dados do cliente +### metadatos: +Objeto con los datos del cliente ```json json {2-7} { @@ -49,14 +49,14 @@ Objeto com os dados do cliente } ``` -* `name` : string.
Nome do cliente (opcional) +* `name` : string.
Nombre del cliente (opcional) -* `cellphone` : string.
Telefone do cliente (opcional) +* `cellphone` : string.
Teléfono del cliente (opcional) -* `taxId` : string.
Documento válido do cliente, podendo ser CPF ou CNPJ (opcional) +* `taxId` : string.
Documento válido del cliente, puede ser CPF o CNPJ (opcional) -* `email` : string.
E-mail do cliente (obrigatório) +* `email` : string.
E-mail del cliente (obligatorio) - - Não é possível criar um cliente com CPF/CNPJ inválido e caso já exista um cliente com esse CPF/CNPJ, a API não criará o cliente novo mas retornará o cliente já existente + + No es posible crear un cliente con CPF/CNPJ inválido y si ya existe un cliente con ese CPF/CNPJ, la API no creará el nuevo cliente pero retornará el cliente ya existente \ No newline at end of file diff --git a/es/coupon/create.mdx b/es/coupon/create.mdx index 9cb1548..ec146bf 100644 --- a/es/coupon/create.mdx +++ b/es/coupon/create.mdx @@ -1,4 +1,4 @@ --- -title: 'Criar um novo cupom' +title: 'Crear un nuevo cupón' openapi: "POST /coupon/create" --- \ No newline at end of file diff --git a/es/coupon/list.mdx b/es/coupon/list.mdx index f1ef281..acf31a4 100644 --- a/es/coupon/list.mdx +++ b/es/coupon/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar cupons' +title: 'Listar cupones' openapi: "GET /coupon/list" --- \ No newline at end of file diff --git a/es/coupon/reference.mdx b/es/coupon/reference.mdx index 9e0ea99..3b5d4ac 100644 --- a/es/coupon/reference.mdx +++ b/es/coupon/reference.mdx @@ -1,15 +1,15 @@ --- -title: 'Referência' -description: 'Crie cupons de desconto para seus clientes usarem uma ou várias vezes' +title: 'Referencia' +description: 'Crea cupones de descuento para que tus clientes los usen una o varias veces' icon: 'book-open-cover' --- -Os cupons de desconto permitem que você ofereça reduções de preço aos seus clientes de forma controlada e estratégica. Você pode criar cupons com desconto percentual ou valor fixo, definir limites de uso e acompanhar quantas vezes foram utilizados. +Los cupones de descuento permiten que ofrezcas reducciones de precio a tus clientes de forma controlada y estratégica. Puedes crear cupones con descuento porcentual o valor fijo, definir límites de uso y acompañar cuántas veces fueron utilizados. -## Estrutura +## Estructura -Um cupom é representado em nossa API pela seguinte estrutura: +Un cupón está representado en nuestra API por la siguiente estructura: ```json { @@ -37,16 +37,16 @@ Um cupom é representado em nossa API pela seguinte estrutura: ``` `id` : string.
- Código único do cupom que seus clientes irão utilizar para aplicar o desconto + Código único del cupón que tus clientes utilizarán para aplicar el descuento
```json {2} { - "notes": "Cupom de boas-vindas - 10% de desconto", + "notes": "Cupón de bienvenida - 10% de descuento", } ``` `notes` : string.
- Descrição interna do cupom para sua organização e controle + Descripción interna del cupón para tu organización y control
```json {2} @@ -55,7 +55,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `maxRedeems` : number.
- Limite de vezes que o cupom pode ser utilizado. Use `-1` para cupons ilimitados ou um número específico para limitar o uso + Límite de veces que el cupón puede ser utilizado. Usa `-1` para cupones ilimitados o un número específico para limitar el uso
```json {2} @@ -64,7 +64,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `redeemsCount` : number.
- Contador de quantas vezes o cupom já foi utilizado pelos clientes + Contador de cuántas veces el cupón ya fue utilizado por los clientes
```json {2} @@ -73,13 +73,13 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `discountKind` : string.
- Tipo de desconto aplicado pelo cupom + Tipo de descuento aplicado por el cupón - | Tipo | Descrição | + | Tipo | Descripción | | ----------- | ------------------------------------- | - | `PERCENTAGE` | **Desconto percentual** (ex: 10% de desconto) | - | `FIXED` | **Valor fixo** (ex: R$ 5,00 de desconto) | + | `PERCENTAGE` | **Descuento porcentual** (ej: 10% de descuento) | + | `FIXED` | **Valor fijo** (ej: R$ 5,00 de descuento) |
@@ -89,7 +89,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `discount` : number.
- Valor do desconto. Para `PERCENTAGE` use números de 1-100 (ex: 10 = 10%). Para `FIXED` use o valor em centavos (ex: 500 = R$ 5,00) + Valor del descuento. Para `PERCENTAGE` usa números de 1-100 (ej: 10 = 10%). Para `FIXED` usa el valor en centavos (ej: 500 = R$ 5,00)
```json {2} @@ -98,14 +98,14 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `status` : string.
- Status atual do cupom + Estado actual del cupón - | Status | Descrição | + | Estado | Descripción | | ----------- | ------------------------------------- | - | `ACTIVE` | **O cupom está ativo e pode ser utilizado pelos clientes** | - | `DELETED` | **O cupom foi removido e não pode mais ser usado** | - | `DISABLED` | **O cupom foi desabilitado ou atingiu o limite máximo de usos** | + | `ACTIVE` | **El cupón está activo y puede ser utilizado por los clientes** | + | `DELETED` | **El cupón fue removido y no puede más ser usado** | + | `DISABLED` | **El cupón fue deshabilitado o alcanzó el límite máximo de usos** |
@@ -115,7 +115,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `devMode` : boolean.
- Indica se o cupom foi criado em ambiente de desenvolvimento (`true`) ou produção (`false`) + Indica si el cupón fue creado en ambiente de desarrollo (`true`) o producción (`false`)
```json {2} @@ -127,7 +127,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `metadata` : object.
- Objeto para armazenar informações adicionais sobre o cupom, como campanha, categoria ou outros dados relevantes para sua organização + Objeto para almacenar informaciones adicionales sobre el cupón, como campaña, categoría u otros datos relevantes para tu organización
```json {2} @@ -136,7 +136,7 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `createdAt` : date-time.
- Data e hora de criação do cupom + Fecha y hora de creación del cupón
```json {2} @@ -145,6 +145,6 @@ Um cupom é representado em nossa API pela seguinte estrutura: } ``` `updatedAt` : date-time.
- Data e hora da última atualização do cupom + Fecha y hora de la última actualización del cupón
\ No newline at end of file diff --git a/es/payment/create.mdx b/es/payment/create.mdx index 6411953..7036b2d 100644 --- a/es/payment/create.mdx +++ b/es/payment/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar uma nova Cobrança +title: Crear una nueva Facturación openapi: 'POST /billing/create' --- diff --git a/es/payment/list.mdx b/es/payment/list.mdx index 571c2e7..917caa0 100644 --- a/es/payment/list.mdx +++ b/es/payment/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar Cobranças' +title: 'Listar Facturaciones' openapi: "GET /billing/list" --- \ No newline at end of file diff --git a/es/payment/reference.mdx b/es/payment/reference.mdx index 9735518..058cf2e 100644 --- a/es/payment/reference.mdx +++ b/es/payment/reference.mdx @@ -1,22 +1,22 @@ --- -title: "Referência" -description: "Crie um link de cobrança e deixe seu cliente pagar" +title: "Referencia" +description: "Crea un enlace de facturación y deja que tu cliente pague" icon: "book-open-cover" --- -O termo "cobrança" é genérico. Ele representa um portal de um fluxo de pagamento onde você pode cobrar seu cliente e ele fazer todo o processo de pagamento sem nenhuma interrupção. +El término "facturación" es genérico. Representa un portal de un flujo de pago donde puedes cobrar a tu cliente y él hacer todo el proceso de pago sin ninguna interrupción. -Atualmente uma cobrança pode ser de duas formas: -- `ONE_TIME` para cobranças que serão pagas uma única vez. preciso enviar os dados do seu cliente. Para cobrançar `ONE_TIME` é obrigatório informar o cliente ao criar a cobrança por meio dos campos `customerId` ou `customer`. - - Só é necessário fornecer uma das opções de identificador do cliente: `customerId` **OU** `customer`. -- `MULTIPLE_PAYMENTS` é uma cobrança que pode ser paga multiplas vezes e por múltiplas pessoas diferentes. **Ex:** utilização de um único link de pagamento para vender um produto para múltiplas pessoas. - - Para cobranças `MULTIPLE_PAYMENTS` o usuário informará informações como CPF, nome e email na página do checkout. +Actualmente una facturación puede ser de dos formas: +- `ONE_TIME` para facturaciones que serán pagadas una única vez. Es necesario enviar los datos de tu cliente. Para facturar `ONE_TIME` es obligatorio informar el cliente al crear la facturación por medio de los campos `customerId` o `customer`. + - Solo es necesario proporcionar una de las opciones de identificador del cliente: `customerId` **O** `customer`. +- `MULTIPLE_PAYMENTS` es una facturación que puede ser pagada múltiples veces y por múltiples personas diferentes. **Ej:** utilización de un único enlace de pago para vender un producto para múltiples personas. + - Para facturaciones `MULTIPLE_PAYMENTS` el usuario informará informaciones como CPF, nombre y email en la página del checkout. -## Estrutura +## Estructura -Uma cobrança é representada em nossa API pela seguinte estrutura: +Una facturación está representada en nuestra API por la siguiente estructura: ```json json { @@ -67,7 +67,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: ``` `id` : string.
- Id único da cobrança na AbacatePay + Id único de la facturación en AbacatePay
```json json {2} @@ -76,13 +76,13 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `frequency` : string.
- Frequência da cobrança. Pode ser `ONE_TIME` ou `MULTIPLE_PAYMENTS`. + Frecuencia de la facturación. Puede ser `ONE_TIME` o `MULTIPLE_PAYMENTS`. | | | | ---------------------| ---------------------------------------------------------------------------------------------------- | - | `ONE_TIME` | **Cobrança que aceita um único pagamento. É necessário enviar os dados do cliente** | - | `MULTIPLE_PAYMENTS` | **Cobrança em modo checkout, aceita vários pagamentos. Não é necessário enviar os dados do cliente.**| + | `ONE_TIME` | **Facturación que acepta un único pago. Es necesario enviar los datos del cliente** | + | `MULTIPLE_PAYMENTS` | **Facturación en modo checkout, acepta varios pagos. No es necesario enviar los datos del cliente.**|
@@ -92,7 +92,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `url` : string.
- URL para seu cliente executar o pagamento da cobrança + URL para que tu cliente ejecute el pago de la facturación ### Amount: ```json json {2} @@ -101,7 +101,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `amount` : number.
- Valor da cobrança em centavos + Valor de la facturación en centavos
```json json {2} @@ -110,7 +110,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `amount` : number.
- Valor da cobrança em centavos + Valor de la facturación en centavos
@@ -120,16 +120,16 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `status` : string.
- Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED` + Estado de la facturación. Puede ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED` | | | | -----------| ------------------------------------- | - | `PENDING` | **A cobrança está com o pagamento pendente** | - | `EXPIRED` | **O tempo limite de pagamento foi excedido** | - | `CANCELLED`| **A cobrança foi cancelada por você** | - | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | - | `REFUNDED` | **O valor foi devolvido ao cliente** | + | `PENDING` | **La facturación está con el pago pendiente** | + | `EXPIRED` | **El tiempo límite de pago fue excedido** | + | `CANCELLED`| **La facturación fue cancelada por ti** | + | `PAID` | **La facturación fue pagada con éxito por el cliente** | + | `REFUNDED` | **El valor fue devuelto al cliente** |
@@ -139,7 +139,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `methods` : array
- Tipos de pagamento. Suportamos somente `PIX` no momento. + Tipos de pago. Soportamos solamente `PIX` en el momento.
```json json {2-9} @@ -155,7 +155,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `products` : array
- Lista de produtos inclusos na cobrança + Lista de productos incluidos en la facturación
```json json {2-10} @@ -172,7 +172,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `customer` : object
- Cliente que você está cobrando. Veja referência da estrutura aqui + Cliente al que estás cobrando. Vea referencia de la estructura aquí
```json json {2-5} @@ -185,14 +185,14 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: } ``` `metadata` : object
- Objeto com metadados sobre a cobrança + Objeto con metadatos sobre la facturación * `fee` number - Taxa aplicada pela AbacatePay + Tasa aplicada por AbacatePay * `returnUrl` string - URL que o cliente será redirecionado ao clicar no botão "voltar" + URL a la que el cliente será redirigido al hacer clic en el botón "volver" * `completionUrl` string - URL que o cliente será redirecionado ao realizar o pagamento + URL a la que el cliente será redirigido al realizar el pago
```json json {2} @@ -202,7 +202,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: ``` `nextBilling` : date-time | null.
- Data e hora da próxima cobrança, ou null para cobranças únicas + Fecha y hora de la próxima facturación, o null para facturaciones únicas
```json json {2} @@ -212,7 +212,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: ``` `allowCoupons` : bool | null.
- Permite ou não cupons para a cobrança + Permite o no cupones para la facturación
```json json {2} @@ -222,7 +222,7 @@ Uma cobrança é representada em nossa API pela seguinte estrutura: ``` `coupons` : array
- Cupons permitidos na cobrança. Só são considerados os cupons se `allowCoupons` é verdadeiro. + Cupones permitidos en la facturación. Solo son considerados los cupones si `allowCoupons` es verdadero.
diff --git a/es/pix-qrcode/check.mdx b/es/pix-qrcode/check.mdx index a87626a..fb73105 100644 --- a/es/pix-qrcode/check.mdx +++ b/es/pix-qrcode/check.mdx @@ -1,4 +1,4 @@ --- -title: 'Checar Status' +title: 'Verificar Estado' openapi: 'GET /pixQrCode/check' --- diff --git a/es/pix-qrcode/create.mdx b/es/pix-qrcode/create.mdx index a58798b..93e8f55 100644 --- a/es/pix-qrcode/create.mdx +++ b/es/pix-qrcode/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar QRCode PIX +title: Crear QRCode PIX openapi: 'POST /pixQrCode/create' --- diff --git a/es/pix-qrcode/reference.mdx b/es/pix-qrcode/reference.mdx index b753055..23e517d 100644 --- a/es/pix-qrcode/reference.mdx +++ b/es/pix-qrcode/reference.mdx @@ -1,14 +1,14 @@ --- -title: 'Referência' -description: 'Gere um QRCode Pix e um código copia-e-cola para o seu cliente' +title: 'Referencia' +description: 'Genera un QRCode Pix y un código copia-y-pega para tu cliente' icon: 'book-open-cover' --- -## Estrutura +## Estructura -Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutura: +Una facturación vía QRCode Pix está representada en nuestra API por la siguiente estructura: ```json json { @@ -20,7 +20,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur "brCode": "...", "brCodeBase64": "...", "platformFee": 80, - "description": "Pagamento PIX com AbacatePay", + "description": "Pago PIX con AbacatePay", "metadata": { "pedidoId": "123" }, @@ -40,7 +40,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `id` : string.
- Identificador único da cobrança. + Identificador único de la facturación.
@@ -50,7 +50,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `amount` : number.
- Valor da cobrança em centavos (ex: 4000 = R$ 40,00) + Valor de la facturación en centavos (ej: 4000 = R$ 40,00)
@@ -60,15 +60,15 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `status` : string.
- Status da cobrança. Pode ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED`. + Estado de la facturación. Puede ser `PENDING`, `EXPIRED`, `CANCELLED`, `PAID`, `REFUNDED`. - | Status | Descrição | + | Estado | Descripción | | ----------- | ------------------------------------- | - | `PENDING` | **A cobrança está com o pagamento pendente** | - | `EXPIRED` | **O tempo limite de pagamento foi excedido** | - | `CANCELLED`| **A cobrança foi cancelada por você** | - | `PAID` | **A cobrança foi paga com sucesso pelo cliente** | - | `REFUNDED` | **O valor foi devolvido ao cliente** | + | `PENDING` | **La facturación está con el pago pendiente** | + | `EXPIRED` | **El tiempo límite de pago fue excedido** | + | `CANCELLED`| **La facturación fue cancelada por ti** | + | `PAID` | **La facturación fue pagada con éxito por el cliente** | + | `REFUNDED` | **El valor fue devuelto al cliente** |
@@ -79,7 +79,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `devMode` : boolean.
- Indica se a cobrança está em ambiente de testes (`true`) ou produção (`false`). + Indica si la facturación está en ambiente de pruebas (`true`) o producción (`false`).
@@ -89,7 +89,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `method` : string.
- Método de pagamento. + Método de pago.
@@ -99,7 +99,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `brCode` : string.
- Código PIX (copia-e-cola) para pagamento. + Código PIX (copia-y-pega) para pago.
@@ -109,7 +109,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `brCodeBase64` : string.
- Código PIX no formato Base64 (útil para exibição em imagens). + Código PIX en formato Base64 (útil para exhibición en imágenes).
@@ -119,17 +119,17 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `platformFee` : number.
- Taxa da plataforma em centavos. Exemplo: `80` significa R$ 0,80. + Tasa de la plataforma en centavos. Ejemplo: `80` significa R$ 0,80.
```json json {2} { - "description": "Pagamento PIX com AbacatePay" + "description": "Pago PIX con AbacatePay" } ``` `description` : string.
- Descrição da cobrança. + Descripción de la facturación.
@@ -139,7 +139,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `createdAt` : date-time.
- Data e hora da criação da cobrança. + Fecha y hora de la creación de la facturación.
@@ -149,7 +149,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `updatedAt` : date-time.
- Última atualização da cobrança. + Última actualización de la facturación.
@@ -159,7 +159,7 @@ Uma cobrança via QRCode Pix é representada em nossa API pela seguinte estrutur } ``` `expiresAt` : date-time.
- Data e hora de expiração do QRCode. + Fecha y hora de expiración del QRCode.
diff --git a/es/pix-qrcode/simulate-payment.mdx b/es/pix-qrcode/simulate-payment.mdx index 68a0807..9553730 100644 --- a/es/pix-qrcode/simulate-payment.mdx +++ b/es/pix-qrcode/simulate-payment.mdx @@ -1,4 +1,4 @@ --- -title: 'Simular Pagamento' +title: 'Simular Pago' openapi: 'POST /pixQrCode/simulate-payment' --- diff --git a/es/production.mdx b/es/production.mdx index 6746216..142fc82 100644 --- a/es/production.mdx +++ b/es/production.mdx @@ -1,58 +1,58 @@ --- -title: 'Indo para produção' -description: 'Como sair do dev mode e começar a faturar' +title: 'Yendo a producción' +description: 'Cómo salir del dev mode y comenzar a facturar' icon: 'conveyor-belt-arm' --- -Ao migrar do ambiente de desenvolvimento para produção, você precisará completar o processo de verificação da sua conta. Este processo é necessário para garantir a segurança e conformidade das operações. +Al migrar del ambiente de desarrollo a producción, necesitarás completar el proceso de verificación de tu cuenta. Este proceso es necesario para garantizar la seguridad y conformidad de las operaciones. -## Processo de Verificação +## Proceso de Verificación -Para ativar sua conta em produção, siga estes passos: +Para activar tu cuenta en producción, sigue estos pasos: - + Interface da plataforma AbacatePay mostrando o botão de Dev mode - - Clique no botão "Dev mode" no canto superior direito da plataforma para iniciar o processo de migração + + Haz clic en el botón "Dev mode" en la esquina superior derecha de la plataforma para iniciar el proceso de migración - + Formulário de documentação da AbacatePay - - Preencha os dados da sua empresa, informações dos sócios e anexe os documentos solicitados: - - Documentos da empresa - - Documentos dos sócios - - Comprovante de endereço - - Outros documentos específicos do seu segmento + + Completa los datos de tu empresa, informaciones de los socios y adjunta los documentos solicitados: + - Documentos de la empresa + - Documentos de los socios + - Comprobante de dirección + - Otros documentos específicos de tu segmento - - Após o envio dos documentos: - - Nossa equipe analisará sua documentação - - Você receberá uma resposta em até 24 horas - - O e-mail de aprovação conterá instruções para os próximos passos + + Después del envío de los documentos: + - Nuestro equipo analizará tu documentación + - Recibirás una respuesta en hasta 24 horas + - El e-mail de aprobación contendrá instrucciones para los próximos pasos - - * Certifique-se de que todos os documentos estão legíveis - * Verifique se as informações estão atualizadas - * Mantenha os dados consistentes em todos os documentos - * Responda prontamente a qualquer solicitação adicional + + * Asegúrate de que todos los documentos estén legibles + * Verifica si las informaciones están actualizadas + * Mantén los datos consistentes en todos los documentos + * Responde prontamente a cualquier solicitud adicional - - Nossa equipe está disponível para auxiliar no processo de migração. Entre em contato pelo e-mail ajuda@abacatepay.com + + Nuestro equipo está disponible para auxiliar en el proceso de migración. Entre en contacto por el e-mail ayuda@abacatepay.com \ No newline at end of file diff --git a/es/sdks.mdx b/es/sdks.mdx index 7610105..1fd8022 100644 --- a/es/sdks.mdx +++ b/es/sdks.mdx @@ -1,55 +1,55 @@ --- title: 'SDKs' -description: 'Bibliotecas oficiais para integração com a API da AbacatePay' +description: 'Bibliotecas oficiales para integración con la API de AbacatePay' icon: 'boxes-stacked' --- - **Acelere sua integração com nossos SDKs**: Nossas bibliotecas oficiais facilitam a integração com a API da AbacatePay em várias linguagens de programação. + **Acelera tu integración con nuestros SDKs**: Nuestras bibliotecas oficiales facilitan la integración con la API de AbacatePay en varios lenguajes de programación. -## O que são os SDKs da AbacatePay? +## ¿Qué son los SDKs de AbacatePay? -Os SDKs (Software Development Kits) da AbacatePay são bibliotecas que simplificam a comunicação com nossa API. Eles oferecem uma interface amigável e específica para cada linguagem, permitindo que você integre rapidamente nossos serviços de pagamento ao seu aplicativo. +Los SDKs (Software Development Kits) de AbacatePay son bibliotecas que simplifican la comunicación con nuestra API. Ofrecen una interfaz amigable y específica para cada lenguaje, permitiendo que integres rápidamente nuestros servicios de pago a tu aplicación. - - * **Integração simplificada**: Funções prontas para todos os endpoints da API - * **Tipagem forte**: Interfaces completas em linguagens com suporte a tipos - * **Tratamento de erros**: Gerenciamento automático dos casos de erro mais comuns - * **Menor curva de aprendizado**: Não é necessário conhecer todos os detalhes da API - * **Atualizações frequentes**: Mantemos os SDKs atualizados com as mais recentes funcionalidades + + * **Integración simplificada**: Funciones listas para todos los endpoints de la API + * **Tipado fuerte**: Interfaces completas en lenguajes con soporte a tipos + * **Tratamiento de errores**: Gestión automática de los casos de error más comunes + * **Menor curva de aprendizaje**: No es necesario conocer todos los detalles de la API + * **Actualizaciones frecuentes**: Mantenemos los SDKs actualizados con las más recientes funcionalidades -## SDKs Disponíveis +## SDKs Disponibles -Oferecemos SDKs oficiais para diversas linguagens de programação. Escolha o que melhor se adapta à sua stack tecnológica: +Ofrecemos SDKs oficiales para diversos lenguajes de programación. Elige el que mejor se adapte a tu stack tecnológica: - SDK oficial para Node.js, compatível com TypeScript e ES modules. + SDK oficial para Node.js, compatible con TypeScript y ES modules. - SDK oficial para Python 3.10+, com suporte a async/await e type hints. + SDK oficial para Python 3.10+, con soporte a async/await y type hints. - SDK oficial para Java 8+, compatível com Spring Boot e Jakarta EE. + SDK oficial para Java 8+, compatible con Spring Boot y Jakarta EE. - SDK oficial para PHP 7.4+, com suporte a Composer e PSR standards. + SDK oficial para PHP 7.4+, con soporte a Composer y PSR standards. - SDK oficial para Ruby 2.6+, disponível como gem e com suporte a Rails. + SDK oficial para Ruby 2.6+, disponible como gem y con soporte a Rails. - SDK oficial para Go 1.13+, com suporte a módulos e generics. + SDK oficial para Go 1.13+, con soporte a módulos y generics. - SDK oficial para Rust, com foco em segurança e performance. + SDK oficial para Rust, con foco en seguridad y performance. - SDK oficial para Elixir, ideal para aplicações escaláveis e distribuídas. + SDK oficial para Elixir, ideal para aplicaciones escalables y distribuidas. @@ -59,25 +59,25 @@ Oferecemos SDKs oficiais para diversas linguagens de programação. Escolha o qu SDK oficial para Kotlin, ideal para aplicativos Android modernos. - SDK oficial para Swift, ideal para aplicativos iOS e macOS. + SDK oficial para Swift, ideal para aplicativos iOS y macOS. -## Exemplos de Uso +## Ejemplos de Uso -Veja como é simples usar nossos SDKs em algumas das linguagens mais populares: +Ve cómo es simple usar nuestros SDKs en algunos de los lenguajes más populares: ```javascript Node.js -// Instalação: npm install abacatepay-nodejs-sdk +// Instalación: npm install abacatepay-nodejs-sdk import AbacatePay from 'abacatepay-nodejs-sdk'; -// Inicialize o cliente com sua chave de API +// Inicializa el cliente con tu clave de API const abacate = AbacatePay('your_api_key'); -// Crie um pagamento PIX +// Crea un pago PIX async function createPixPayment() { const billing = await abacate.billing.create({ frequency: "ONE_TIME", @@ -104,25 +104,25 @@ createPixPayment(); ``` ```python Python -# Instalação: pip install abacatepay +# Instalación: pip install abacatepay from abacatepay import AbacatePay from abacatepay.products import Product -# Inicialize o cliente com sua chave de API +# Inicializa el cliente con tu clave de API client = AbacatePay( - api_key="sua_chave_api", + api_key="tu_clave_api", ) -# Crie produtos para a cobrança +# Crea productos para la facturación products = [ Product( external_id="123", - name="Produto de teste", + name="Producto de prueba", quantity=1, price=50_00, description="Example product" ), - # Ou como dicionário + # O como diccionario { 'external_id': "321", 'name': "Product as dict", @@ -132,74 +132,74 @@ products = [ } ] -# Crie uma cobrança +# Crea una facturación billing = client.billing.create( products=products, return_url="https://yourwebsite.com/return", completion_url="https://yourwebsite.com/complete" ) -print(f"URL da cobrança: {billing.data.url}") +print(f"URL de la facturación: {billing.data.url}") ``` ```php PHP -// Instalação: composer require abacatepay/sdk +// Instalación: composer require abacatepay/sdk 'sua_chave_api', - 'environment' => 'production' // ou 'sandbox' para ambiente de testes + 'apiKey' => 'tu_clave_api', + 'environment' => 'production' // o 'sandbox' para ambiente de pruebas ]); -// Crie um pagamento PIX +// Crea un pago PIX try { $payment = $client->payments->createPix([ 'value' => 1000, // R$ 10,00 - 'description' => 'Pagamento de teste', + 'description' => 'Pago de prueba', 'expiresIn' => 3600 // 1 hora ]); echo "QR Code: " . $payment->qrCode . "\n"; - echo "Chave de cobrança: " . $payment->chargeKey . "\n"; + echo "Clave de facturación: " . $payment->chargeKey . "\n"; } catch (Exception $e) { - echo "Erro ao criar pagamento: " . $e->getMessage() . "\n"; + echo "Error al crear pago: " . $e->getMessage() . "\n"; } ``` -## Perguntas Frequentes +## Preguntas Frecuentes - - Cada SDK tem instruções de instalação específicas no seu repositório no GitHub. Geralmente, você pode usar o gerenciador de pacotes da sua linguagem, como npm, pip, composer, bundle, etc. + + Cada SDK tiene instrucciones de instalación específicas en su repositorio en GitHub. Generalmente, puedes usar el gestor de paquetes de tu lenguaje, como npm, pip, composer, bundle, etc. - - Sim! Todos os nossos SDKs suportam ambos os ambientes. Em alguns casos, é preciso configurar o parâmetro `environment` ao inicializar o cliente para `sandbox` ou `production`, ou basta usar a chave de api do ambiente desejado. + + ¡Sí! Todos nuestros SDKs soportan ambos ambientes. En algunos casos, es preciso configurar el parámetro `environment` al inicializar el cliente para `sandbox` o `production`, o basta usar la clave de api del ambiente deseado. - - Você pode abrir uma issue no repositório do GitHub do SDK específico. Nossa equipe está sempre atenta para corrigir bugs e melhorar nossos SDKs. + + Puedes abrir una issue en el repositorio de GitHub del SDK específico. Nuestro equipo está siempre atento para corregir bugs y mejorar nuestros SDKs. - - Entre em contato conosco em ajuda@abacatepay.com informando qual linguagem você precisa. Também aceitamos contribuições da comunidade! + + Entre en contacto con nosotros en ayuda@abacatepay.com informando qué lenguaje necesitas. ¡También aceptamos contribuciones de la comunidad! -## Recursos Adicionais +## Recursos Adicionales - Aprenda a configurar webhooks para receber notificações de eventos. + Aprende a configurar webhooks para recibir notificaciones de eventos. - - Saiba como usar o ambiente de desenvolvimento para testar suas integrações. + + Sabe cómo usar el ambiente de desarrollo para probar tus integraciones. - - Nossa equipe está disponível para ajudar com qualquer dúvida sobre nossos SDKs. Entre em contato pelo e-mail ajuda@abacatepay.com + + Nuestro equipo está disponible para ayudar con cualquier duda sobre nuestros SDKs. Entre en contacto por el e-mail ayuda@abacatepay.com diff --git a/es/webhooks.mdx b/es/webhooks.mdx index b0fb20f..1b1ad52 100644 --- a/es/webhooks.mdx +++ b/es/webhooks.mdx @@ -1,93 +1,93 @@ --- title: 'Webhooks' -description: 'Configure e receba notificações sobre atualizações' +description: 'Configura y recibe notificaciones sobre actualizaciones' icon: 'webhook' --- -Webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos importantes da AbacatePay. +Los webhooks permiten que tu aplicación reciba notificaciones en tiempo real sobre eventos importantes de AbacatePay. -## Gerenciando webhooks +## Gestionando webhooks -Gerencie seus webhooks diretamente em nossa plataforma. Você pode: -- Listar todos os webhooks ativos -- Criar novos webhooks +Gestiona tus webhooks directamente en nuestra plataforma. Puedes: +- Listar todos los webhooks activos +- Crear nuevos webhooks - Remover webhooks existentes - - Os webhooks são específicos para cada ambiente: - - Webhooks criados em **dev mode** recebem notificações apenas do ambiente de testes - - Webhooks criados em **produção** recebem notificações apenas de dados reais + + Los webhooks son específicos para cada ambiente: + - Webhooks creados en **dev mode** reciben notificaciones únicamente del ambiente de pruebas + - Webhooks creados en **producción** reciben notificaciones únicamente de datos reales - Saiba mais sobre o ambiente de desenvolvimento aqui. + Sabe más sobre el ambiente de desarrollo aquí. -## Criando webhooks +## Creando webhooks - - * Configure um secret único para cada webhook - * Valide o secret em todas as requisições recebidas - * Use HTTPS para todas as URLs de webhook - * Implemente retry logic para lidar com falhas temporárias + + * Configura un secret único para cada webhook + * Valida el secret en todas las peticiones recibidas + * Usa HTTPS para todas las URLs de webhook + * Implementa retry logic para lidiar con fallas temporales -## Como criar seu webhook +## Cómo crear tu webhook -Siga estes passos no dashboard da AbacatePay: +Sigue estos pasos en el dashboard de AbacatePay: - + Interface da plataforma AbacatePay mostrando a seção de webhooks - - Inicie o processo de configuração de um novo webhook + + Inicia el proceso de configuración de un nuevo webhook - + Formulário de criação de webhook - - Você será direcionado ao formulário de configuração + + Serás direccionado al formulario de configuración - + - - * **Nome**: Identificador único para seu webhook (ex: "Notificações de Pagamento") - * **URL**: Endpoint HTTPS que receberá as notificações - * **Secret**: Chave secreta para validar as requisições + + * **Nombre**: Identificador único para tu webhook (ej: "Notificaciones de Pago") + * **URL**: Endpoint HTTPS que recibirá las notificaciones + * **Secret**: Clave secreta para validar las peticiones -## Protegendo suas requisições +## Protegiendo tus peticiones -Cada notificação enviada para seu webhook inclui o secret configurado como parâmetro de query string para validação. +Cada notificación enviada para tu webhook incluye el secret configurado como parámetro de query string para validación. -### Exemplo de URL de Webhook +### Ejemplo de URL de Webhook -URL base do seu webhook: +URL base de tu webhook: ``` -https://meusite.com/webhook/abacatepay +https://misitio.com/webhook/abacatepay ``` -URL com secret (como será chamado): +URL con secret (como será llamado): ``` -https://meusite.com/webhook/abacatepay?webhookSecret=seu_secret_aqui +https://misitio.com/webhook/abacatepay?webhookSecret=tu_secret_aqui ``` -### Exemplo de Implementação +### Ejemplo de Implementación ```javascript -// Exemplo de validação do webhook +// Ejemplo de validación del webhook app.post('/webhook/abacatepay', (req, res) => { const webhookSecret = req.query.webhookSecret; @@ -95,7 +95,7 @@ app.post('/webhook/abacatepay', (req, res) => { return res.status(401).json({ error: 'Invalid webhook secret' }); } - // Processa a notificação + // Procesa la notificación const event = req.body; console.log('Received webhook:', event); @@ -103,15 +103,15 @@ app.post('/webhook/abacatepay', (req, res) => { }); ``` -## Eventos Suportados +## Eventos Soportados -Atualmente, suportamos os seguintes eventos: +Actualmente, soportamos los siguientes eventos: ### `billing.paid` -Este evento é disparado quando um pagamento é confirmado. O payload varia dependendo da origem do pagamento: +Este evento es disparado cuando un pago es confirmado. El payload varía dependiendo del origen del pago: -#### Pagamento via PIX QR Code +#### Pago vía PIX QR Code ```json { @@ -133,7 +133,7 @@ Este evento é disparado quando um pagamento é confirmado. O payload varia depe } ``` -#### Pagamento via Cobrança +#### Pago vía Facturación ```json { @@ -177,12 +177,12 @@ Este evento é disparado quando um pagamento é confirmado. O payload varia depe ``` - * O campo `devMode` indica se o evento ocorreu no ambiente de desenvolvimento - * Todos os valores monetários são expressos em centavos - * O campo `fee` representa a taxa cobrada pela AbacatePay - * O campo `event` identifica o tipo de evento recebido + * El campo `devMode` indica si el evento ocurrió en el ambiente de desarrollo + * Todos los valores monetarios son expresados en centavos + * El campo `fee` representa la tasa cobrada por AbacatePay + * El campo `event` identifica el tipo de evento recibido - - Nossa equipe está disponível para auxiliar na implementação de webhooks. Entre em contato pelo e-mail ajuda@abacatepay.com + + Nuestro equipo está disponible para auxiliar en la implementación de webhooks. Entre en contacto por el e-mail ayuda@abacatepay.com diff --git a/es/withdraw/create.mdx b/es/withdraw/create.mdx index bb06841..282831e 100644 --- a/es/withdraw/create.mdx +++ b/es/withdraw/create.mdx @@ -1,4 +1,4 @@ --- -title: Criar um novo Saque +title: Crear un nuevo Retiro openapi: 'POST /withdraw/create' --- diff --git a/es/withdraw/list.mdx b/es/withdraw/list.mdx index 20beeab..5719ff5 100644 --- a/es/withdraw/list.mdx +++ b/es/withdraw/list.mdx @@ -1,4 +1,4 @@ --- -title: 'Listar Saques' +title: 'Listar Retiros' openapi: "GET /withdraw/list" --- \ No newline at end of file diff --git a/es/withdraw/reference.mdx b/es/withdraw/reference.mdx index fa724ab..de52574 100644 --- a/es/withdraw/reference.mdx +++ b/es/withdraw/reference.mdx @@ -1,16 +1,16 @@ --- -title: "Referência" -description: "Realize saques para chaves PIX" +title: "Referencia" +description: "Realiza retiros para claves PIX" icon: "book-open-cover" --- -O módulo de **Saque** permite que você transfira valores da sua conta AbacatePay para uma chave PIX de sua escolha. É uma funcionalidade essencial para gerenciar seus fundos e realizar transferências. +El módulo de **Retiro** permite que transfieras valores de tu cuenta AbacatePay para una clave PIX de tu elección. Es una funcionalidad esencial para gestionar tus fondos y realizar transferencias. -Atualmente, o saque suporta apenas o método **PIX**, que é o método mais rápido e eficiente para transferências no Brasil. +Actualmente, el retiro soporta únicamente el método **PIX**, que es el método más rápido y eficiente para transferencias en Brasil. -## Estrutura +## Estructura -Um saque é representado em nossa API pela seguinte estrutura de transação: +Un retiro está representado en nuestra API por la siguiente estructura de transacción: ```json json { @@ -38,7 +38,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: ``` `id` : string.
- Id único da transação de saque na AbacatePay + Id único de la transacción de retiro en AbacatePay
```json json {2} @@ -47,16 +47,16 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `status` : string.
- Status atual da transação de saque. + Estado actual de la transacción de retiro. | | | | ---------------------| ---------------------------------------------------------------------------------------------------- | - | `PENDING` | **Saque criado e aguardando processamento** | - | `EXPIRED` | **Saque expirado e não pode mais ser processado** | - | `CANCELLED` | **Saque cancelado** | - | `COMPLETE` | **Saque processado e concluído com sucesso** | - | `REFUNDED` | **Saque reembolsado** | + | `PENDING` | **Retiro creado y aguardando procesamiento** | + | `EXPIRED` | **Retiro expirado y no puede más ser procesado** | + | `CANCELLED` | **Retiro cancelado** | + | `COMPLETE` | **Retiro procesado y concluido con éxito** | + | `REFUNDED` | **Retiro reembolsado** |
@@ -66,7 +66,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `devMode` : boolean.
- Indica se o saque foi criado em ambiente de desenvolvimento (sandbox) ou produção. Atualmente suportamos saques somente em produção. + Indica si el retiro fue creado en ambiente de desarrollo (sandbox) o producción. Actualmente soportamos retiros únicamente en producción.
```json json {2} @@ -75,7 +75,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `receiptUrl` : string.
- URL do comprovante da transação de saque. + URL del comprobante de la transacción de retiro.
```json json {2} @@ -84,7 +84,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `kind` : string.
- Tipo da transação. Para saques, sempre será `WITHDRAW`. + Tipo de la transacción. Para retiros, siempre será `WITHDRAW`.
```json json {2} @@ -93,7 +93,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `amount` : number.
- Valor do saque em centavos. No exemplo, R$ 50,00. + Valor del retiro en centavos. En el ejemplo, R$ 50,00.
```json json {2} @@ -102,7 +102,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `platformFee` : number.
- Taxa da plataforma cobrada pelo saque em centavos. No exemplo, R$ 0,80. + Tasa de la plataforma cobrada por el retiro en centavos. En el ejemplo, R$ 0,80.
```json json {2} @@ -111,7 +111,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `externalId` : string.
- Identificador único do saque em seu sistema. Opcional. + Identificador único del retiro en tu sistema. Opcional.
```json json {2} @@ -120,7 +120,7 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `createdAt` : string.
- Data e hora de criação do saque. + Fecha y hora de creación del retiro.
```json json {2} @@ -129,54 +129,54 @@ Um saque é representado em nossa API pela seguinte estrutura de transação: } ``` `updatedAt` : string.
- Data e hora da última atualização do saque. + Fecha y hora de la última actualización del retiro.
-## Tipos de Chave PIX +## Tipos de Clave PIX -O saque suporta os seguintes tipos de chave PIX: +El retiro soporta los siguientes tipos de clave PIX: - Chave PIX baseada no CPF (Cadastro de Pessoa Física) do beneficiário. + Clave PIX basada en el CPF (Cadastro de Pessoa Física) del beneficiario. - **Exemplo:** `123.456.789-01` + **Ejemplo:** `123.456.789-01` - Chave PIX baseada no CNPJ (Cadastro Nacional da Pessoa Jurídica) do beneficiário. + Clave PIX basada en el CNPJ (Cadastro Nacional da Pessoa Jurídica) del beneficiario. - **Exemplo:** `12.345.678/0001-90` + **Ejemplo:** `12.345.678/0001-90` - Chave PIX baseada no número de telefone celular do beneficiário. + Clave PIX basada en el número de teléfono celular del beneficiario. - **Exemplo:** `+5511999999999` + **Ejemplo:** `+5511999999999` - Chave PIX baseada no endereço de e-mail do beneficiário. + Clave PIX basada en la dirección de e-mail del beneficiario. - **Exemplo:** `usuario@exemplo.com` + **Ejemplo:** `usuario@ejemplo.com` - Chave PIX aleatória (chave aleatória) do beneficiário. + Clave PIX aleatoria (clave aleatoria) del beneficiario. - **Exemplo:** `a1b2c3d4-e5f6-7890-abcd-ef1234567890` + **Ejemplo:** `a1b2c3d4-e5f6-7890-abcd-ef1234567890` -## Limites e Taxas +## Límites y Tasas - **Valor mínimo:** R$ 3,50 (350 centavos) -- **Taxa da plataforma:** R$ 0,80 centavos se estiver dentro dos limites descritos em nossos [termos de uso](https://abacatepay.com/termos) -- **Processamento:** Instantâneo -- **Disponibilidade:** 24/7 caso os limites diários e noturnos da sua conta não tenham sido excedidos -- **Limite de uso:** 1 saque por minuto. Tentativas em excesso resultarão em erro HTTP 429 (Too Many Requests). Para aumentar o limite entre em contato com nosso suporte - -## Segurança - -- Todos os saques são autenticados via Bearer Token -- Validação automática das chaves PIX -- Logs detalhados de todas as transações -- Possibilidade de cancelamento em caso de erro -- Abusos desta API podem resultar em suspensão da conta conforme descrito em nossos [termos de uso](https://abacatepay.com/termos) +- **Tasa de la plataforma:** R$ 0,80 centavos si está dentro de los límites descritos en nuestros [términos de uso](https://abacatepay.com/termos) +- **Procesamiento:** Instantáneo +- **Disponibilidad:** 24/7 caso los límites diarios y nocturnos de tu cuenta no hayan sido excedidos +- **Límite de uso:** 1 retiro por minuto. Intentativas en exceso resultarán en error HTTP 429 (Too Many Requests). Para aumentar el límite entre en contacto con nuestro soporte + +## Seguridad + +- Todos los retiros son autenticados vía Bearer Token +- Validación automática de las claves PIX +- Logs detallados de todas las transacciones +- Posibilidad de cancelación en caso de error +- Abusos de esta API pueden resultar en suspensión de la cuenta conforme descrito en nuestros [términos de uso](https://abacatepay.com/termos) From 82f52c237ce9d68162a4d5897f22c19fa53ca445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Da=20N=C3=B3brega=20Brand=C3=A3o?= Date: Sun, 31 Aug 2025 16:08:30 -0300 Subject: [PATCH 4/4] feat: openapi-es --- openapi-es.yaml | 350 ++++++++++++++++++++++++------------------------ 1 file changed, 175 insertions(+), 175 deletions(-) diff --git a/openapi-es.yaml b/openapi-es.yaml index 8401593..7f6e1df 100644 --- a/openapi-es.yaml +++ b/openapi-es.yaml @@ -52,7 +52,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -60,8 +60,8 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /customer/list: get: summary: Listar clientes @@ -84,7 +84,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -92,12 +92,12 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /coupon/create: post: - summary: Criar um novo cupom - description: Permite que você crie um novo cupom que pode ser usado por seus clientes para aplicar descontos. + summary: Crear un nuevo cupón + description: Permite que crees un nuevo cupón que puede ser usado por tus clientes para aplicar descuentos. security: - bearerAuth: [] requestBody: @@ -113,7 +113,7 @@ paths: type: 'null' responses: '200': - description: Cliente criado com sucesso. + description: Cliente creado con éxito. content: application/json: schema: @@ -124,7 +124,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -132,17 +132,17 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /coupon/list: get: - summary: Listar cupons - description: Permite que você recupere uma lista de todos os seus cupons. + summary: Listar cupones + description: Permite que recuperes una lista de todos tus cupones. security: - bearerAuth: [] responses: '200': - description: Lista de cupons retornada com sucesso. + description: Lista de cupones retornada con éxito. content: application/json: schema: @@ -150,13 +150,13 @@ paths: properties: data: type: array - description: Lista de cupons. + description: Lista de cupones. items: $ref: '#/components/schemas/CouponResponse' error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -164,12 +164,12 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /billing/create: post: - summary: Criar uma nova cobrança - description: Permite que você crie um link de cobrança pro seu cliente pagar você. + summary: Crear una nueva facturación + description: Permite que crees un enlace de facturación para que tu cliente te pague. security: - bearerAuth: [] requestBody: @@ -181,13 +181,13 @@ paths: properties: frequency: type: string - description: Define o tipo de frequência da cobrança. Para cobranças únicas, use `ONE_TIME`. Para cobranças que podem ser pagas mais de uma vez, use `MULTIPLE_PAYMENTS`. + description: Define el tipo de frecuencia de la facturación. Para facturaciones únicas, usa `ONE_TIME`. Para facturaciones que pueden ser pagadas más de una vez, usa `MULTIPLE_PAYMENTS`. enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] default: 'ONE_TIME' example: 'ONE_TIME' methods: type: array - description: Métodos de pagamento que serão utilizados. Atualmente, apenas PIX é suportado. + description: Métodos de pago que serán utilizados. Actualmente, únicamente PIX es soportado. items: type: string enum: ['PIX'] @@ -198,30 +198,30 @@ paths: example: ['PIX'] products: type: array - description: Lista de produtos que seu cliente está pagando. + description: Lista de productos que tu cliente está pagando. items: type: object properties: externalId: type: string - description: O id do produto em seu sistema. Utilizamos esse id para criar seu produto na AbacatePay de forma automática, então certifique-se de que seu id é único. + description: El id del producto en tu sistema. Utilizamos ese id para crear tu producto en AbacatePay de forma automática, entonces asegúrate de que tu id sea único. example: 'prod-1234' name: type: string - description: Nome do produto. - example: 'Assinatura de Programa Fitness' + description: Nombre del producto. + example: 'Suscripción de Programa Fitness' description: type: string - description: Descrição detalhada do produto. - example: 'Acesso ao programa fitness premium por 1 mês.' + description: Descripción detallada del producto. + example: 'Acceso al programa fitness premium por 1 mes.' quantity: type: integer - description: Quantidade do produto sendo adquirida. + description: Cantidad del producto siendo adquirida. minimum: 1 example: 2 price: type: integer - description: Preço por unidade do produto em centavos. O mínimo é 100 (1 BRL). + description: Precio por unidad del producto en centavos. El mínimo es 100 (1 BRL). minimum: 100 example: 2000 required: ['externalId', 'name', 'quantity', 'price'] @@ -229,54 +229,54 @@ paths: minItems: 1 example: - externalId: 'prod-1234' - name: 'Assinatura de Programa Fitness' - description: 'Acesso ao programa fitness premium por 1 mês.' + name: 'Suscripción de Programa Fitness' + description: 'Acceso al programa fitness premium por 1 mes.' quantity: 2 price: 2000 returnUrl: type: string format: uri - description: URL para redirecionar o cliente caso o mesmo clique na opção "Voltar". + description: URL para redirigir al cliente caso el mismo haga clic en la opción "Volver". example: 'https://example.com/billing' completionUrl: type: string format: uri - description: URL para redirecionar o cliente quando o pagamento for concluído. + description: URL para redirigir al cliente cuando el pago sea concluido. example: 'https://example.com/completion' customerId: type: string - description: O id de um cliente já cadastrado em sua loja. + description: El id de un cliente ya registrado en tu tienda. example: 'cust_abcdefghij' customer: type: object - description: Dados do seu cliente. Caso o cliente não exista ele será criado. + description: Datos de tu cliente. Caso el cliente no exista será creado. required: ['name', 'cellphone', 'email', 'taxId'] additionalProperties: false properties: name: type: string - description: Nome completo do seu cliente + description: Nombre completo de tu cliente example: Daniel Lima cellphone: type: string - description: Celular do cliente + description: Celular del cliente example: (11) 4002-8922 email: type: string - description: E-mail do cliente + description: E-mail del cliente example: daniel_lima@abacatepay.com taxId: type: string - description: CPF ou CNPJ do cliente. + description: CPF o CNPJ del cliente. example: 123.456.789-01 allowCoupons: type: boolean default: false example: false - description: Se verdadeiro cupons podem ser usados na billing + description: Si es verdadero cupones pueden ser usados en la facturación coupons: type: array - description: Lista de cupons disponíveis para resem usados com a billing + description: Lista de cupones disponibles para ser usados con la facturación example: ['ABKT10', "ABKT5", "PROMO10"] default: [] maxItems: 50 @@ -284,14 +284,14 @@ paths: type: string externalId: type: string - description: Caso você tenha um identificador único da sua aplicação para cobranças, completamente opcional. - example: 'seu_id_123' + description: Caso tengas un identificador único de tu aplicación para facturaciones, completamente opcional. + example: 'tu_id_123' required: ['frequency', 'methods', 'products', 'returnUrl', 'completionUrl'] additionalProperties: false responses: '200': - description: Cobrança criada com sucesso. + description: Facturación creada con éxito. content: application/json: schema: @@ -302,7 +302,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -310,17 +310,17 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /billing/list: get: - summary: Listar cobranças - description: Permite que você recupere uma lista de todas as cobranças criadas. + summary: Listar facturaciones + description: Permite que recuperes una lista de todas las facturaciones creadas. security: - bearerAuth: [] responses: '200': - description: Lista de cobranças retornada com sucesso. + description: Lista de facturaciones retornada con éxito. content: application/json: schema: @@ -328,13 +328,13 @@ paths: properties: data: type: array - description: Lista de cobranças criadas. + description: Lista de facturaciones creadas. items: $ref: '#/components/schemas/Billing' error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -342,12 +342,12 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /pixQrCode/create: post: - summary: 'Criar QRCode PIX' - description: Permite que você crie um código copia-e-cola e um QRCode Pix para seu cliente fazer o pagamento. + summary: 'Crear QRCode PIX' + description: Permite que crees un código copia-y-pega y un QRCode Pix para que tu cliente haga el pago. security: - bearerAuth: [] requestBody: @@ -359,41 +359,41 @@ paths: properties: amount: type: number - description: Valor da cobrança em centavos. + description: Valor de la facturación en centavos. expiresIn: type: number - description: Tempo de expiração da cobrança em segundos. + description: Tiempo de expiración de la facturación en segundos. description: type: string maxLength: 140 - description: Mensagem que aparecerá na hora do pagamento do PIX. + description: Mensaje que aparecerá en la hora del pago del PIX. customer: type: object description: | - Os dados do seu cliente para criá-lo. - O objeto de customer não é obrigatório, mas ao informar qualquer informação do `customer` todos os campos `name`, `cellphone`, `email` e `taxId` são obrigatórios. + Los datos de tu cliente para crearlo. + El objeto de customer no es obligatorio, pero al informar cualquier información del `customer` todos los campos `name`, `cellphone`, `email` y `taxId` son obligatorios. required: ['name', 'cellphone', 'email', 'taxId'] additionalProperties: false properties: name: type: string - description: Nome completo do seu cliente + description: Nombre completo de tu cliente example: Daniel Lima cellphone: type: string - description: Celular do cliente + description: Celular del cliente example: (11) 4002-8922 email: type: string - description: E-mail do cliente + description: E-mail del cliente example: daniel_lima@abacatepay.com taxId: type: string - description: CPF ou CNPJ do cliente. + description: CPF o CNPJ del cliente. example: 123.456.789-01 metadata: type: object - description: Metadados opcionais para a cobrança + description: Metadatos opcionales para la facturación additionalProperties: true default: externalId: '123' @@ -401,7 +401,7 @@ paths: additionalProperties: false responses: '200': - description: QRCode Pix criado com sucesso + description: QRCode Pix creado con éxito content: application/json: schema: @@ -412,7 +412,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -420,17 +420,17 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /pixQrCode/check: get: - summary: 'Checar Status' - description: Checar status do pagamento do QRCode Pix. + summary: 'Verificar Estado' + description: Verificar estado del pago del QRCode Pix. security: - bearerAuth: [] responses: '200': - description: Status retornado + description: Estado retornado content: application/json: schema: @@ -441,17 +441,17 @@ paths: properties: status: type: string - description: Informação sobre o andamento do QRCode Pix. + description: Información sobre el progreso del QRCode Pix. enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] example: 'PENDING' expiresAt: type: string - description: Data de expiração do QRCode Pix + description: Fecha de expiración del QRCode Pix example: '2025-03-25T21:50:20.772Z' error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -459,19 +459,19 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' parameters: - name: id in: query - description: ID do QRCode Pix + description: ID del QRCode Pix required: true schema: type: string /pixQrCode/simulate-payment: post: - summary: 'Simular Pagamento' - description: Simula o pagamento de um QRCode Pix criado no modo de desenvolvimento. + summary: 'Simular Pago' + description: Simula el pago de un QRCode Pix creado en el modo de desarrollo. security: - bearerAuth: [] requestBody: @@ -483,11 +483,11 @@ paths: properties: metadata: type: object - description: Metadados opcionais para a requisição + description: Metadatos opcionales para la petición default: {} responses: '200': - description: Pagamento ralizado com sucesso + description: Pago realizado con éxito content: application/json: schema: @@ -498,7 +498,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -506,19 +506,19 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' parameters: - name: id in: query - description: ID do QRCode Pix + description: ID del QRCode Pix required: true schema: type: string /withdraw/create: post: - summary: Criar um novo saque - description: Permite que você crie um novo saque para transferir valores da sua conta para uma chave PIX. + summary: Crear un nuevo retiro + description: Permite que crees un nuevo retiro para transferir valores de tu cuenta para una clave PIX. security: - bearerAuth: [] requestBody: @@ -527,46 +527,46 @@ paths: application/json: schema: type: object - description: Dados necessários para criar um saque. + description: Datos necesarios para crear un retiro. required: ['externalId', 'method', 'amount', 'pix'] additionalProperties: false properties: description: type: string - description: Descrição opcional do saque. - example: Saque para conta principal + description: Descripción opcional del retiro. + example: Retiro para cuenta principal externalId: type: string - description: Identificador único do saque em seu sistema. + description: Identificador único del retiro en tu sistema. example: 'withdraw-1234' method: type: string - description: Método de saque disponível. + description: Método de retiro disponible. enum: ['PIX'] example: 'PIX' amount: type: number - description: Valor do saque em centavos. + description: Valor del retiro en centavos. minimum: 350 example: 5000 pix: type: object - description: Dados da chave PIX para receber o saque. + description: Datos de la clave PIX para recibir el retiro. required: ['type', 'key'] additionalProperties: false properties: type: type: string - description: Tipo da chave PIX. + description: Tipo de la clave PIX. enum: ['CPF', 'CNPJ', 'PHONE', 'EMAIL', 'RANDOM'] example: 'CPF' key: type: string - description: Valor da chave PIX. + description: Valor de la clave PIX. example: '123.456.789-01' responses: '200': - description: Saque criado com sucesso. + description: Retiro creado con éxito. content: application/json: schema: @@ -577,7 +577,7 @@ paths: error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -585,17 +585,17 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' /withdraw/list: get: - summary: Listar saques - description: Permite que você recupere uma lista de todos os saques criados. + summary: Listar retiros + description: Permite que recuperes una lista de todos los retiros creados. security: - bearerAuth: [] responses: '200': - description: Lista de saques retornada com sucesso. + description: Lista de retiros retornada con éxito. content: application/json: schema: @@ -603,13 +603,13 @@ paths: properties: data: type: array - description: Lista de saques criados. + description: Lista de retiros creados. items: $ref: '#/components/schemas/Transaction' error: type: 'null' '401': - description: Não autorizado. Falha na autenticação. + description: No autorizado. Fallo en la autenticación. content: application/json: schema: @@ -617,124 +617,124 @@ paths: properties: error: type: string - description: Mensagem de erro descrevendo o motivo da falha na autenticação. - example: 'Token de autenticação inválido ou ausente.' + description: Mensaje de error describiendo el motivo del fallo en la autenticación. + example: 'Token de autenticación inválido o ausente.' components: schemas: Customer: type: object - description: Os dados do seu cliente. + description: Los datos de tu cliente. required: ['name', 'cellphone', 'email', 'taxId'] additionalProperties: false properties: id: type: string - description: Identificador único do cliente + description: Identificador único del cliente example: 'bill_123456' metadata: type: object - description: Dados do cliente + description: Datos del cliente properties: name: type: string - description: Nome completo do seu cliente + description: Nombre completo de tu cliente example: Daniel Lima cellphone: type: string - description: Celular do cliente + description: Celular del cliente example: (11) 4002-8922 email: type: string - description: E-mail do cliente + description: E-mail del cliente example: daniel_lima@abacatepay.com taxId: type: string - description: CPF ou CNPJ do cliente. + description: CPF o CNPJ del cliente. example: 123.456.789-01 Coupon: type: object - description: Os dados do seu cupom. + description: Los datos de tu cupón. required: ['code', 'discount', 'discountKind'] additionalProperties: false properties: code: type: string - description: Identificador único do cupom + description: Identificador único del cupón example: DEYVIN_20 notes: type: string - description: Descrição sbre o cupom - example: Cupom de desconto pro meu público + description: Descripción sobre el cupón + example: Cupón de descuento para mi público maxRedeems: type: number - description: Quantidade de vezes em que o cupom pode ser resgatado. -1 Significa que esse cupom pode ser resgatado sem limites + description: Cantidad de veces en que el cupón puede ser canjeado. -1 Significa que ese cupón puede ser canjeado sin límites example: 10 default: -1 discountKind: type: string - description: Tipo de desconto aplicado, porcentagem ou fixo + description: Tipo de descuento aplicado, porcentaje o fijo enum: ['PERCENTAGE', 'FIXED'] discount: type: number - description: Valor de desconto a ser aplicado + description: Valor de descuento a ser aplicado metadata: type: object - description: Objeto chave valor para metadados do cupom + description: Objeto clave valor para metadatos del cupón default: {} CouponResponse: type: object - description: Os dados do seu cupom. + description: Los datos de tu cupón. required: ['id', 'discount', 'discountKind', 'status', 'createdAt', 'updatedAt'] additionalProperties: false properties: id: type: string - description: Identificador único do cupom + description: Identificador único del cupón example: DEYVIN_20 notes: type: string - description: Descrição sobre o cupom - example: Cupom de desconto pro meu público + description: Descripción sobre el cupón + example: Cupón de descuento para mi público maxRedeems: type: integer - description: Quantidade de vezes em que o cupom pode ser resgatado. -1 significa ilimitado. + description: Cantidad de veces en que el cupón puede ser canjeado. -1 significa ilimitado. example: -1 default: 10 redeemsCount: type: integer - description: Quantidade de vezes que o cupom já foi resgatado. + description: Cantidad de veces que el cupón ya fue canjeado. example: 0 discountKind: type: string - description: Tipo de desconto aplicado, porcentagem ou fixo + description: Tipo de descuento aplicado, porcentaje o fijo enum: ['PERCENTAGE', 'FIXED'] example: PERCENTAGE discount: type: number - description: Valor de desconto a ser aplicado + description: Valor de descuento a ser aplicado example: 123 devMode: type: boolean - description: Indica se o cupom foi criado em ambiente de testes. + description: Indica si el cupón fue creado en ambiente de pruebas. example: true status: type: string - description: Status atual do cupom. + description: Estado actual del cupón. enum: ['ACTIVE', 'INACTIVE', 'EXPIRED'] example: ACTIVE createdAt: type: string format: date-time - description: Data de criação do cupom. + description: Fecha de creación del cupón. example: '2025-05-25T23:43:25.250Z' updatedAt: type: string format: date-time - description: Data de atualização do cupom. + description: Fecha de actualización del cupón. example: '2025-05-25T23:43:25.250Z' metadata: type: object - description: Objeto chave valor para metadados do cupom + description: Objeto clave valor para metadatos del cupón default: {} Billing: @@ -742,61 +742,61 @@ components: properties: id: type: string - description: Identificador único da cobrança. + description: Identificador único de la facturación. example: 'bill_123456' url: type: string format: uri - description: URL onde o usuário pode concluir o pagamento. + description: URL donde el usuario puede concluir el pago. example: 'https://pay.abacatepay.com/bill-5678' amount: type: number - description: Valor total a ser pago em centavos. + description: Valor total a ser pagado en centavos. example: 4000 status: type: string - description: Status atual da cobrança. + description: Estado actual de la facturación. enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] example: 'PENDING' devMode: type: boolean - description: Indica se a cobrança foi criada em ambiente de testes. + description: Indica si la facturación fue creada en ambiente de pruebas. example: true methods: type: array - description: Métodos de pagamento suportados para esta cobrança. + description: Métodos de pago soportados para esta facturación. items: type: string enum: ['PIX'] example: ['PIX'] products: type: array - description: Lista de produtos na cobrança. + description: Lista de productos en la facturación. items: type: object properties: id: type: string - description: Identificador único do produto. + description: Identificador único del producto. example: 'prod_123456' externalId: type: string - description: O id do produto em seu sistema. + description: El id del producto en tu sistema. example: 'prod-1234' quantity: type: integer - description: Quantidade do produto sendo adquirida. + description: Cantidad del producto siendo adquirida. example: 2 frequency: type: string - description: Frequência da cobrança. + description: Frecuencia de la facturación. enum: ['ONE_TIME', 'MULTIPLE_PAYMENTS'] example: 'ONE_TIME' nextBilling: type: string format: date-time nullable: true - description: Data e hora da próxima cobrança, ou null para cobranças únicas. + description: Fecha y hora de la próxima facturación, o null para facturaciones únicas. example: 'null' customer: type: object @@ -806,10 +806,10 @@ components: type: boolean nullable: true default: false - description: Se verdadeiro cupons podem ser usados na billing + description: Si es verdadero cupones pueden ser usados en la facturación coupons: type: array - description: Lista de cupons disponíveis para resem usados com a billing + description: Lista de cupones disponibles para ser usados con la facturación nullable: true default: [] items: @@ -821,94 +821,94 @@ components: properties: id: type: string - description: Identificador único do QRCode Pix. + description: Identificador único del QRCode Pix. example: 'pix_char_123456' amount: type: number - description: Valor a ser pago. + description: Valor a ser pagado. example: 100 status: type: string - description: Informação sobre o andamento do QRCode Pix. + description: Información sobre el progreso del QRCode Pix. enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'PAID', 'REFUNDED'] example: 'PENDING' devMode: type: boolean - description: Ambiente no qual o QRCode Pix foi criado. + description: Ambiente en el cual el QRCode Pix fue creado. example: true brCode: type: string - description: Código copia-e-cola do QRCode Pix. + description: Código copia-y-pega del QRCode Pix. example: '00020101021226950014br.gov.bcb.pix' brCodeBase64: type: string - description: Imagem em Base64 do QRCode Pix. + description: Imagen en Base64 del QRCode Pix. example: 'data:image/png;base64,iVBORw0KGgoAAA' platformFee: type: number - description: Taxas da plataforma + description: Tasas de la plataforma example: 80 createdAt: type: string - description: Data de criação do QRCode Pix. + description: Fecha de creación del QRCode Pix. example: '2025-03-24T21:50:20.772Z' updatedAt: type: string - description: Data de atualização do QRCode Pix. + description: Fecha de actualización del QRCode Pix. example: '2025-03-24T21:50:20.772Z' expiresAt: type: string - description: Data de expiração do QRCode Pix + description: Fecha de expiración del QRCode Pix example: '2025-03-25T21:50:20.772Z' Transaction: type: object - description: Dados de uma transação (pagamento ou saque). + description: Datos de una transacción (pago o retiro). properties: id: type: string - description: Identificador único da transação. + description: Identificador único de la transacción. example: 'tran_123456' status: type: string - description: Status atual da transação. + description: Estado actual de la transacción. enum: ['PENDING', 'EXPIRED', 'CANCELLED', 'COMPLETE', 'REFUNDED'] example: 'PENDING' devMode: type: boolean - description: Indica se a transação foi criada em ambiente de testes. + description: Indica si la transacción fue creada en ambiente de pruebas. example: true receiptUrl: type: string format: uri - description: URL do comprovante da transação. + description: URL del comprobante de la transacción. example: 'https://abacatepay.com/receipt/tran_123456' kind: type: string - description: Tipo da transação. + description: Tipo de la transacción. enum: ['PAYMENT', 'WITHDRAW'] example: 'WITHDRAW' default: 'WITHDRAW' amount: type: number - description: Valor da transação em centavos. + description: Valor de la transacción en centavos. example: 5000 platformFee: type: number - description: Taxa da plataforma em centavos. + description: Tasa de la plataforma en centavos. example: 80 externalId: type: string - description: Identificador externo da transação. + description: Identificador externo de la transacción. example: 'withdraw-1234' createdAt: type: string format: date-time - description: Data de criação da transação. + description: Fecha de creación de la transacción. example: '2025-03-24T21:50:20.772Z' updatedAt: type: string format: date-time - description: Data de atualização da transação. + description: Fecha de actualización de la transacción. example: '2025-03-24T21:50:20.772Z' required: ['id', 'status', 'devMode', 'receiptUrl', 'kind', 'amount', 'platformFee', 'createdAt', 'updatedAt'] @@ -917,4 +917,4 @@ components: type: http scheme: bearer bearerFormat: JWT - description: Cabeçalho de autenticação Bearer no formato `Bearer ` onde `` é a sua chave de API. \ No newline at end of file + description: Cabecera de autenticación Bearer en el formato `Bearer ` donde `` es tu clave de API. \ No newline at end of file