PHPackages                             betocampoy/cora-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. betocampoy/cora-sdk

ActiveLibrary[API Development](/categories/api)

betocampoy/cora-sdk
===================

SDK PHP para integrar com as APIs da Cora na modalidade Integracao Direta (mTLS + client\_credentials).

v0.1.2(5mo ago)09MITPHPPHP &gt;=8.1

Since Dec 2Pushed 5mo agoCompare

[ Source](https://github.com/betocampoy/cora-sdk)[ Packagist](https://packagist.org/packages/betocampoy/cora-sdk)[ RSS](/packages/betocampoy-cora-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

Cora SDK – Integração PHP com o Banco Cora
==========================================

[](#cora-sdk--integração-php-com-o-banco-cora)

**by Beto Campoy**

SDK oficial (não-oficial 😄) para integração PHP com a API do Banco Cora, incluindo suporte completo a **mTLS com certificado A1/A3**, criação de **boletos**, **PIX**, consultas e futuros endpoints do ecossistema financeiro Cora.

Este SDK foi projetado para funcionar **tanto em PHP puro (legado)** quanto em **aplicações modernas com Symfony**, oferecendo uma camada consistente, simples e modular sobre as APIs da Cora.

---

📦 Instalação
------------

[](#-instalação)

Via Composer:

```
composer require betocampoy/cora-sdk
```

---

⚙️ Configuração
---------------

[](#️-configuração)

O SDK utiliza uma classe central chamada `CoraConfig`, que recebe todas as configurações necessárias:

- Client ID
- Client Secret
- Certificado A1/A3 (PFX/P12)
- Senha do certificado
- URL da API (stage/prod)
- URL mTLS
- Timeout

Você pode configurar manualmente:

```
use BetoCampoy\CoraSdk\CoraConfig;

$config = new CoraConfig(
    clientId: 'seu-client-id',
    clientSecret: 'seu-client-secret',
    certPath: '/caminho/do/certificado.pfx',
    certPassword: 'senha-cert',
    baseUrl: 'https://api.stage.cora.com.br',
    matlsBaseUrl: 'https://matls-clients.api.stage.cora.com.br',
);
```

Ou automaticamente via variáveis de ambiente:

```
$config = CoraConfig::fromEnv();
```

### Variáveis de ambiente suportadas

[](#variáveis-de-ambiente-suportadas)

```
CORA_CLIENT_ID=
CORA_CLIENT_SECRET=
CORA_CERT_PATH=
CORA_CERT_PASSWORD=
CORA_BASE_URL=https://api.stage.cora.com.br
CORA_MATLS_BASE_URL=https://matls-clients.api.stage.cora.com.br
CORA_TIMEOUT=30

```

---

---

🔐 Conexão Segura (mTLS)
-----------------------

[](#-conexão-segura-mtls)

O SDK configura automaticamente cURL com:

- Certificado cliente PFX/P12
- Senha do certificado
- Auth mTLS bidirecional
- Timeout configurável

Erros são convertidos para exceções:

- `TransportException` → falhas de rede / SSL
- `ApiException` → erros HTTP retornados pela Cora

---

🧰 Uso em PHP puro
-----------------

[](#-uso-em-php-puro)

Criando cobrança:

```
$config = CoraConfig::fromEnv();
$client = new CoraClient($config);

$invoiceService = new InvoiceService($client);

$invoice = $invoiceService->createInvoice([
    "code" => "mensal_123",
    "amount" => 19990,
    "description" => "Mensalidade",
    "customer" => [
        "name" => "Transportadora XPTO",
        "document" => "12345678000155",
        "email" => "financeiro@empresa.com"
    ]
]);
```

---

✨ NOVO EM v0.1.2 — GERAÇÃO NATIVA DE QR CODE PIX
================================================

[](#-novo-em-v012--geração-nativa-de-qr-code-pix)

O SDK agora inclui o serviço **PixQrCodeGenerator**, que encapsula automaticamente o pacote `endroid/qr-code`.

Você passa **somente o EMV** retornado pela Cora → e ele devolve diretamente a **Data URI** para ``.

---

📌 Exemplo em PHP puro
---------------------

[](#-exemplo-em-php-puro)

```
use BetoCampoy\CoraSdk\Service\PixQrCodeGenerator;

$qr = new PixQrCodeGenerator();

$emv = $invoice['pix']['emv']; // retornado pela Cora

$dataUri = $qr->dataUriFromEmv($emv);

echo '';
```

---

📌 Exemplo em Symfony (Controller)
---------------------------------

[](#-exemplo-em-symfony-controller)

```
$qrcode = $pixQrCodeGenerator->dataUriFromEmv($invoice['pix']['emv']);

return $this->render('billing/pix.html.twig', [
    'qrcode' => $qrcode
]);
```

Twig:

```

```

---

🧩 Serviço PixQrCodeGenerator
----------------------------

[](#-serviço-pixqrcodegenerator)

```
class PixQrCodeGenerator
{
    public function __construct(
        private int $defaultSize = 700,
        private int $defaultMargin = 5
    ) {}

    public function dataUriFromEmv(string $emv, ?int $size = null, ?int $margin = null): string
    {
        $builder = new Builder(
            writer: new PngWriter(),
            writerOptions: [],
            validateResult: false,
            data: $emv,
            size: $size ?? $this->defaultSize,
            margin: $margin ?? $this->defaultMargin,
            roundBlockSizeMode: RoundBlockSizeMode::Margin,
        );

        return $builder->build()->getDataUri();
    }

    public function pngFromEmv(string $emv): string
    {
        return $builder->build()->getString();
    }
}
```

---

🧾 Endpoints disponíveis (v0.1.2)
--------------------------------

[](#-endpoints-disponíveis-v012)

### InvoiceService

[](#invoiceservice)

- `createInvoice(array $payload): array`
- `createBoleto(array $payload): array`
- `getInvoice(string $invoiceId): array`
- `cancelInvoice(string $invoiceId): array`

### PixQrCodeGenerator

[](#pixqrcodegenerator)

- `dataUriFromEmv(string $emv): string`
- `pngFromEmv(string $emv): string`

---

🚨 Troubleshooting
-----------------

[](#-troubleshooting)

### ❌ "could not load PEM client certificate"

[](#-could-not-load-pem-client-certificate)

- Caminho incorreto
- Permissões
- Certificado corrompido

### ❌ "schannel: next InitializeSecurityContext failed"

[](#-schannel-next-initializesecuritycontext-failed)

- Problemas de cadeia PFX no Windows

### ❌ HTTP 400 / 401 / 403

[](#-http-400--401--403)

- Client ID/Secret incorretos
- Ambiente errado (stage vs production)
- Payload fora do padrão Cora

---

🗺 Roadmap
---------

[](#-roadmap)

- QRCode Pix nativo
- Transferências
- Pagamento de boletos
- Extrato bancário
- Webhooks
- Symfony Bundle oficial
- Testes automatizados
- Mock server local

---

📄 Licença
---------

[](#-licença)

MIT

---

✨ Autor
-------

[](#-autor)

Beto Campoy

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance72

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

158d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f716b40e59d9e04a7a6ce607fb14866a53a5160e31456676ec379f25e324e58b?d=identicon)[betocampoy](/maintainers/betocampoy)

---

Top Contributors

[![betocampoy](https://avatars.githubusercontent.com/u/85419774?v=4)](https://github.com/betocampoy "betocampoy (3 commits)")

### Embed Badge

![Health badge](/badges/betocampoy-cora-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/betocampoy-cora-sdk/health.svg)](https://phpackages.com/packages/betocampoy-cora-sdk)
```

###  Alternatives

[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/common-protos

Google API Common Protos for PHP

173103.7M49](/packages/google-common-protos)[hubspot/api-client

Hubspot API client

23414.2M16](/packages/hubspot-api-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
