PHPackages                             fragoso-software/integra-icp-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. fragoso-software/integra-icp-sdk

ActiveLibrary[API Development](/categories/api)

fragoso-software/integra-icp-sdk
================================

SDK para integração com a IntegraICP

v1.0.9(1y ago)11.7k↓44.4%MITPHPPHP ^7.4 || ^8.0

Since Dec 8Pushed 1y ago1 watchersCompare

[ Source](https://github.com/fsdrasfragoso/IntegraIcpSdk)[ Packagist](https://packagist.org/packages/fragoso-software/integra-icp-sdk)[ RSS](/packages/fragoso-software-integra-icp-sdk/feed)WikiDiscussions master Synced 2d ago

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

IntegraICP
==========

[](#integraicp)

[![IntegraICP Logo](https://camo.githubusercontent.com/c43489ea0c30b7333abd2470c831f891a346d44e57397a93541fc27b10cd1aa1/68747470733a2f2f646576656c6f706572732e696e74656772616963702e636f6d2e62722f696d616765732f696e74656772616963702d6c6f676f2e706e67)](https://camo.githubusercontent.com/c43489ea0c30b7333abd2470c831f891a346d44e57397a93541fc27b10cd1aa1/68747470733a2f2f646576656c6f706572732e696e74656772616963702e636f6d2e62722f696d616765732f696e74656772616963702d6c6f676f2e706e67)

**Revisado em 2024-05-22**

Sobre a IntegraICP
------------------

[](#sobre-a-integraicp)

A **IntegraICP** é uma plataforma que reúne os principais Prestadores de Serviços de Confiança do Brasil, oferecendo **APIs simples** para:

- Criação de Assinaturas Digitais.
- Identificação de Pessoas e Entidades utilizando Certificados Digitais em Nuvem.

Para utilizar os serviços, as aplicações (web ou móveis) precisam de acesso a um **Channel** (equivalente a uma API-Key), que pode ser solicitado por:

- [Portal Valid](https://valid-sa.atlassian.net/servicedesk/customer/portal/4/group/115/create/51)
- E-mail:

Uso do SDK
----------

[](#uso-do-sdk)

A IntegraICP fornece um SDK para facilitar a integração com suas APIs. Veja abaixo como utilizá-lo:

### Contratos

[](#contratos)

#### `AuthenticationInterface`

[](#authenticationinterface)

```
namespace FragosoSoftware\IntegraIcpSdk\Contracts;

use FragosoSoftware\IntegraIcpSdk\Models\AuthenticationResponse;

interface AuthenticationInterface
{
    /**
     * Método para obter a lista de Clearances (provedores de autenticação).
     *
     * @param array $params Parâmetros para a requisição (ex.: subject_key, callback_uri).
     * @return AuthenticationResponse Retorna a resposta de autenticação encapsulada em um modelo.
     */
    public function getClearances(array $params): AuthenticationResponse;
}
```

#### `HttpClientInterface`

[](#httpclientinterface)

```
namespace FragosoSoftware\IntegraIcpSdk\Contracts;

interface HttpClientInterface
{
    public function get(string $url, array $params = []): array;
    public function post(string $url, array $data): array;
}
```

#### `SignatureInterface`

[](#signatureinterface)

```
namespace FragosoSoftware\IntegraIcpSdk\Contracts;

use FragosoSoftware\IntegraIcpSdk\Models\SignatureResponse;

interface SignatureInterface
{
    /**
     * Realiza uma assinatura digital usando os dados fornecidos.
     *
     * @param array $data Dados necessários para a assinatura, incluindo `credentialId` e `hashes`.
     * @return SignatureResponse Retorna a resposta da assinatura encapsulada em um modelo.
     */
    public function sign(array $data): SignatureResponse;
}
```

---

### Implementações de Serviços

[](#implementações-de-serviços)

#### Serviço de Autenticação

[](#serviço-de-autenticação)

```
namespace FragosoSoftware\IntegraIcpSdk\Services;

use FragosoSoftware\IntegraIcpSdk\Contracts\AuthenticationInterface;
use FragosoSoftware\IntegraIcpSdk\Contracts\HttpClientInterface;
use FragosoSoftware\IntegraIcpSdk\Models\AuthenticationResponse;

class AuthenticationService implements AuthenticationInterface
{
    private HttpClientInterface $httpClient;
    private string $baseUrl;

    public function __construct(HttpClientInterface $httpClient, string $baseUrl)
    {
        $this->httpClient = $httpClient;
        $this->baseUrl = $baseUrl;
    }

    public function getClearances(array $params): AuthenticationResponse
    {
        $url = "{$this->baseUrl}/authentications";
        $response = $this->httpClient->get($url, $params);

        return new AuthenticationResponse($response);
    }
}
```

#### Serviço de Assinatura

[](#serviço-de-assinatura)

```
namespace FragosoSoftware\IntegraIcpSdk\Services;

use FragosoSoftware\IntegraIcpSdk\Contracts\SignatureInterface;
use FragosoSoftware\IntegraIcpSdk\Contracts\HttpClientInterface;
use FragosoSoftware\IntegraIcpSdk\Models\SignatureResponse;

class SignatureService implements SignatureInterface
{
    private HttpClientInterface $httpClient;
    private string $baseUrl;

    public function __construct(HttpClientInterface $httpClient, string $baseUrl)
    {
        $this->httpClient = $httpClient;
        $this->baseUrl = $baseUrl;
    }

    public function sign(array $data): SignatureResponse
    {
        $url = "{$this->baseUrl}/signatures";
        $response = $this->httpClient->post($url, $data);

        return new SignatureResponse($response);
    }
}
```

---

### Modelos de Resposta

[](#modelos-de-resposta)

#### `AuthenticationResponse`

[](#authenticationresponse)

```
namespace FragosoSoftware\IntegraIcpSdk\Models;

class AuthenticationResponse
{
    private array $clearances;

    public function __construct(array $data)
    {
        $this->clearances = $data['clearances'] ?? [];
    }

    public function getClearances(): array
    {
        return $this->clearances;
    }
}
```

---

Assinatura Eletrônica Qualificada
---------------------------------

[](#assinatura-eletrônica-qualificada)

### Passos para Assinatura Digital:

[](#passos-para-assinatura-digital)

```
1. Invocação da API de Autenticação:
   Retorna uma lista de Clearances (provedores).
2. Escolha de Clearance:
   O usuário seleciona o provedor para identificação.
3. Processo de Autenticação:
   A aplicação recebe um CredentialId via callback URI.
4. Preparação da Assinatura Eletrônica:
   Calcula o SHA256 dos conteúdos a serem assinados.
5. Execução do Serviço de Assinatura Eletrônica:
   Realiza a assinatura utilizando o CredentialId e os hashes.
6. Consulta de Credenciais:
   Permite obter detalhes do Certificado Digital usado.

```

---

Diagrama de Sequência
---------------------

[](#diagrama-de-sequência)

[![Diagrama de Sequência](https://camo.githubusercontent.com/1aba7a297ad052b2f742b11e432cc73ed723d59d090da04802ad17bad5d57770/68747470733a2f2f646576656c6f706572732e696e74656772616963702e636f6d2e62722f696d616765732f73657175656e63652d6469616772616d2e706e67)](https://camo.githubusercontent.com/1aba7a297ad052b2f742b11e432cc73ed723d59d090da04802ad17bad5d57770/68747470733a2f2f646576656c6f706572732e696e74656772616963702e636f6d2e62722f696d616765732f73657175656e63652d6469616772616d2e706e67)

---

Referência de APIs
------------------

[](#referência-de-apis)

### **Authentications**

[](#authentications)

**Endpoint:**

```
GET /c/{channelId}/icp/v3/authentications
```

**Descrição:**
Retorna uma lista de Clearances (provedores de confiança) disponíveis para autenticação e assinatura.

#### Parâmetros da Query String

[](#parâmetros-da-query-string)

```
subject_key          Identificação única do proponente (CPF, somente números). (Opcional)
subject_type         Tipo do proponente (ex.: CPF).                           (Opcional)
secret_data          Código de segurança gerado pela aplicação.               (Obrigatório)
secret_type          Tipo de segurança (ex.: code_challenge).                 (Opcional)
callback_uri         URL para resultados da autenticação.                     (Obrigatório)
autostart            Início automático do processo (true/false).              (Opcional)
credential_lifetime  Tempo máximo de uso da credencial (máx.: 168h).          (Opcional)
clearance_lifetime   Tempo máximo de ativação da liberação (máx.: 24h).       (Opcional)

```

---

### **Credentials**

[](#credentials)

**Endpoint:**

```
GET /c/{channelId}/icp/v3/credentials/{credentialId}
```

**Descrição:**
Obtém detalhes da credencial autenticada, incluindo informações do certificado digital.

---

### **Signatures**

[](#signatures)

**Endpoint:**

```
POST /c/{channelId}/icp/v3/signatures
```

**Descrição:**
Permite realizar assinaturas eletrônicas em múltiplos conteúdos.

#### Exemplo de Requisição

[](#exemplo-de-requisição)

```
{
  "credentialId": "01HQNT0RBF8VFPQ6MAVAG1BWPG",
  "secretType": "code_verifier",
  "secretData": "4yrDHoTpVMTvMPemeZlIzfCPMOhd5QXiNxVcmycmWqU",
  "requests": [
    {
      "contentId": "doc_001",
      "contentDigest": "4yrDHoTpVMTvMPemeZlIzfCPMOhd5QXiNxVcmycmWqU=",
      "contentDescription": "Documento de teste",
      "signaturePolicy": "RAW"
    }
  ]
}
```

---

Implementação da RFC 7636
-------------------------

[](#implementação-da-rfc-7636)

A **RFC 7636** (Proof Key for Code Exchange by OAuth Public Clients) é usada para mitigar ataques de interceptação de códigos de autorização em comunicações OAuth. Consulte [RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636) para mais detalhes.

---

Suporte
-------

[](#suporte)

Para dúvidas ou problemas, entre em contato pelo e-mail  ou acesse o [Portal Valid](https://valid-sa.atlassian.net/servicedesk/customer/portal/4/group/115/create/51).

---

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

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 ~4 days

Total

10

Last Release

537d ago

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/fragoso-software-integra-icp-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/fragoso-software-integra-icp-sdk/health.svg)](https://phpackages.com/packages/fragoso-software-integra-icp-sdk)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M420](/packages/drupal-core-recommended)[google/cloud-core

Google Cloud PHP shared dependency, providing functionality useful to all components.

346132.9M112](/packages/google-cloud-core)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)

PHPackages © 2026

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