> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abacatepay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ruby

> Integre a AbacatePay em aplicações Ruby em minutos.

<Card title="AbacatePay Ruby SDK" icon="github" href="https://github.com/AbacatePay/abacatepay-ruby-sdk">
  Repositório oficial — issues, changelog e contribuições.
</Card>

## Pré-requisitos

* Ruby 2.6+
* Uma chave de API ([criar no dashboard](https://app.abacatepay.com))

## Instalação

<CodeGroup>
  ```bash Gemfile theme={null}
  # Adicione ao seu Gemfile:
  gem 'abacatepay-ruby'
  # Depois execute:
  bundle install
  ```

  ```bash gem theme={null}
  gem install abacatepay-ruby
  ```
</CodeGroup>

## Configuração

Armazene sua chave de API em uma variável de ambiente e nunca no código:

```ruby theme={null}
# config/initializers/abacatepay.rb
AbacatePay.configure do |config|
  config.api_token   = ENV['ABACATEPAY_API_KEY']
  config.environment = :sandbox # ou :production
end
```

## Primeira cobrança

```ruby theme={null}
billing_client = AbacatePay::Clients::BillingClient.new

billing = billing_client.create(
  AbacatePay::Resources::Billing.new(
    frequency: AbacatePay::Enums::Billing::Frequencies::ONE_TIME,
    methods:   [AbacatePay::Enums::Billing::Methods::PIX],
    products: [
      AbacatePay::Resources::Billing::Product.new(
        external_id: 'PRO-PLAN',
        name:        'Pro plan',
        quantity:    1,
        price:       1000, # em centavos
      )
    ],
    metadata: AbacatePay::Resources::Billing::Metadata.new(
      return_url:     'https://meusite.com/app',
      completion_url: 'https://meusite.com/pagamento/sucesso',
    ),
  )
)

puts billing.url # URL de pagamento para o cliente
```

**Resposta:**

```json theme={null}
{
  "success": true,
  "error": null,
  "data": {
    "id": "bill_12345667",
    "url": "https://app.abacatepay.com/pay/bill_12345667",
    "amount": 1000,
    "status": "PENDING",
    "devMode": true,
    "createdAt": "2024-11-04T18:38:28.573Z"
  }
}
```

## Próximos passos

<CardGroup cols={2}>
  <Card title="Configurar webhooks" icon="bell" href="/pages/webhooks">
    Receba notificações em tempo real sobre pagamentos confirmados.
  </Card>

  <Card title="Checkout Transparente" icon="credit-card" href="/pages/transparents/create">
    Aceite PIX e cartão diretamente na sua interface.
  </Card>

  <Card title="Criar clientes" icon="users" href="/pages/client/create">
    Gerencie clientes vinculados às cobranças.
  </Card>

  <Card title="Referência completa" icon="book-open" href="/pages/reference/introduction">
    Todos os endpoints, status codes e formato de resposta.
  </Card>
</CardGroup>
