Quick start

Siga os exemplos abaixo e crie um fluxo de cadastro de clientes e geração de links de Emissão Online

Aqui você irá aprender de forma objetiva como fazer autenticação, autorização, cadastro de clientes e geração de links para Emissão Online.

circle-exclamation
triangle-exclamation

Ambiente de produção e homologação

Todos os exemplos serão apontando para endpoints onde a diferença entre homologação e produção será somente a URL Base.

URL de Homologação:

https://api-hom.soluti.com.br

URL de Produção:

https://api.soluti.com.br

1

Autenticação:

Para fazer a Autenticação no sistema, é pré-requisito ter um BirdID de acordo com o ambiente que você está usando. No caso, se estiver em homologação, você precisa de um BirdID de homologação, se estiver usando produção, você precisa de um BirdID de produção. E também é necessário criar uma chave de API dentro do painel do BirdID para subistituir o OTP no momento da Autenticação.

circle-info

É possivel passar o OTP no momento da Autenticação, porém é inviável usar essa abordagem na integração entre sistemas.

POST /auth/birdid

Use este endpoint para conseguir o token de autenticação para passar no Header Authorization: Bearer "Token", das próximas requisições.

Headers

Name
Value

Content-Type

application/json

Accept

application/json

Body

Name
Type
Description

registration_number

string

Pode ser um CPF ou CNPJ (sem formatação)

password

string

Chave de API (ou o OTP)

Response

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3...",
    "token_type": "Bearer",
    "expires_in": 86400
}
2

Autorização:

POST /auth/authorization

Use este endpoint para conseguir o token de Autorização. Ele será necessário ser passado no Header de todas as próximas requisições juntamente com o token de Autorização. Porém ele deverá constar no campo: x-spro-authorization: "Token" (sem o Bearer) de todas as requisições.

Headers

Name
Value

Content-Type

application/json

Accept

application/json

Authorization

Bearer <token de Autenticação conseguido na requisição anterior>

Body: Vazio

Response

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGci...",
    "token_type": "Bearer",
    "expires_in": 86400
}
3

Cadastro de Cliente

POST /v1/organization/CLIENT_ID/companies

Neste endpoint você irá cadastrar a empresa do seu cliente juntamente com 1 representante legal. Assim que o cadastro ocorre, a API faz verificações no CPF do representante legal de modo a seguir esse fluxo. Note que caso ele não tenha um BirdID válido, a API irá gerar um link de video-conferência automaticamente. Caso ele não tenha BirdID válido e não esteja abilitado a fazer a video conferência, você precisá direcionar ele para uma loja física para conseguir emitir o BirdID.

circle-info

Todos os endpoints, necessitarão dos 2 tokens no Header e deverá ser passado na URL o CLIENT_ID. Esse assunto foi tratado em Primeiros Passos, caso não tenha este código, acione o time de suporte.

circle-exclamation

Headers

Name
Value

Content-Type

application/json

Accept

application/json

Authorization

Bearer <token de Autenticação>

x-spro-authorization

<token de Autorização>

Body

{
    "type": "J",
    "registration_number": "23158308000165",
    "alias": "Nome da Empresa",
    "name": "Nome da Empresa",
    "phone": "(00) 0000-0000",
    "whatsapp": "(00) 0000-0000",
    "email": "contato@nomedaempresa.com.br",
    "country_id": "1058",
    "country_name": "Brasil",
    "state_id": "00",
    "state_name": "",
    "city_id": "00",
    "city_name": "",
    "neighborhood": "",
    "postal_code": "00000-000",
    "address": "",
    "number": "0",
    "complement": "",
    "customer": {
        "name": "Nome do Representante Legal",
        "email": "emailDoRepresentanteLegal@nomedaempresa.com.br",
        "registration_number": "000000000000",
        "phone": "(00)00000-0000",
        "whatsapp": "(00)00000-0000"
    }
}
circle-check
4

POST /v1/organization/CLIENT_ID/orders

Este endpoint serve para você criar uma negociação dentro do SPro e ter como resultado o link de integração com o Emissão Online. Este link deverá ser passado para o seu cliente para ele criar a solicitação no Emissão Online de modo a você conseguir acompanhar o ciclo de vida dela.

circle-info

Todos os endpoints, necessitarão dos 2 tokens no Header e deverá ser passado na URL o CLIENT_ID. Esse assunto foi tratado em Primeiros Passos, caso não tenha este código, acione o time de suporte.

Headers

Name
Value

Content-Type

application/json

Accept

application/json

Authorization

Bearer <token de Autenticação>

x-spro-authorization

<token de Autorização>

URL Parameters: exemplo: /v1/organization/CLIENT_ID

Campo
Exemplo de Valor
Descrição

CLIENT_ID

01jawvcvfahk52qsaerzfa0tyj

Código da sua empresa (passado pelo time de integração após o setup). Detalhado em: Primeiros passos.

Body:

{
    "type": "sell_order",
    "payment_modality_id": 4,
    "company_id": 211,
    "customer_id": 244,
    "details": [
        {
            "product_id": 2
        }
    ]
}
circle-check
5

Consultando Status da Negociação

GET /v1/organization/CLIENT_ID/orders/CODIGO_DA_NEGOCIACAO

Após a negociação ser criada e você ter passado o link de Emissão Online para o seu cliente, você pode acompanhar o status da Negocição através deste endpoint. Aqui você terá além do status, todos os outros dados da negociação, com destaque para o número da solicitação no SisAr e o link de integração com o Emissão Online (caso precise passar novamente para seu cliente)

circle-info

Todos os endpoints, necessitarão dos 2 tokens no Header e deverá ser passado na URL o CLIENT_ID. Esse assunto foi tratado em Primeiros Passos, caso não tenha este código, acione o time de suporte.

Headers:

Name
Value

Content-Type

application/json

Accept

application/json

Authorization

Bearer <token de Autenticação>

x-spro-authorization

<token de Autorização>

Body: Vazio

URL Parameters: exemplo: /v1/organization/CLIENT_ID/orders/CODIGO_DA_NEGOCIACAO

Campo
Exemplo de Valor
Descrição

CLIENT_ID

01jawvcvfahk52qsaerzfa0tyj

Código da sua empresa (passado pelo time de integração após o setup). Detalhado em: Primeiros passos.

CODIGO_DA_NEGOCIACAO

01jee3ha0mn8t5hxv3tvx5nhq3

Código da Negociação

Response:

{
	"order": {
		"id": 567,
		"ulid": "01jee3ha0mn8t5hxv3tvx5nhq3",
		"status": {
			"id": 3,
			"code": "payment_confirmed",
			"label": "Pagamento Confirmado"
		},
		"type": "sell_order",
		"public_token": null,
		"order_id": null,
		"order_code": "01954a648640",
		"status_date": "2024-12-06",
		"obs": null,
		"price": {
			"id": 1,
			"name": "Preço Teste",
			"slug": "preco-teste",
			"status": "Ativo",
			"start_date": "2024-06-20",
			"end_date": null,
			"link": "LINK_DOWNLOAD_PLANILHA"
		},
		"production_range": null,
		"amount": "0.00",
		"created_at": "2024-12-06",
		"update_at": null,
		"payment_modality": {
			"id": 5,
			"name": "Utilizar voucher pós-pago",
			"code": "POST_PAID_VOUCHER",
			"status": true,
			"created_at": "2024-08-22",
			"updated_at": "2024-08-22"
		},
		"payment_method": null,
		"organization": {
			"id": 6,
			"ulid": "01j0trb4rwg94t9eekc7qpzpcc",
			"status": true,
			"type": "J",
			"registration_number": "09271555000142",
			"alias": "Aguiar e Associados",
			"name": "Aguiar e Associados",
			"ulid_ar": "01j0trb4mqf2g7rxewbqaxxj8f",
			"ar_subdomain": "arpartnerhom",
			"theme": {
				"primary": null,
				"secondary": null,
				"logo": null
			},
			"organization_type": {
				"id": 4,
				"ulid": "01j0trb4j2n6mg4z97y9x2gkve",
				"status": 1,
				"code": "accounting",
				"name": "Contabilidade",
				"created_at": "2024-06-20"
			},
			"email": "fernando.franca@soluti.com.br",
			"phone": "(97)97317-3799",
			"whatsapp": "(97)97317-3799",
			"country_id": 1058,
			"state_id": 11,
			"city_id": 1100288,
			"address": "rua 5",
			"number": "70",
			"complement": "casa 1",
			"neighborhood": "setor sul",
			"postal_code": "76940000"
		},
		"company": {
			"id": 276,
			"ulid": "01jee3fmychjj2vzny37rw8pqy",
			"status": true,
			"type": "J",
			"registration_number": "72518117000172",
			"alias": "Cliente do Parceiro B2B (12-11-2024)",
			"name": "Cliente do Parceiro B2B (12-11-2024)",
			"email": "fernando.franca@soluti.com.br",
			"phone": "(31) 99129-2027",
			"whatsapp": "(22) 98676-2512",
			"country_id": 1058,
			"state_id": 52,
			"city_id": 5208707,
			"address": "Largo Renan, 2. Bloco C",
			"number": "68111",
			"complement": "Bc. 8 Ap. 47",
			"neighborhood": "Sul",
			"postal_code": "95765-846",
			"all_customers_has_birdid": null
		},
		"customer": {
			"id": 321,
			"ulid": "01jee3fpjg1t3193a0e613mp17",
			"status": true,
			"registration_number": "33615348877",
			"name": "Fernando França",
			"email": "fernando.franca@soluti.com.br",
			"phone": "(62)98178-0000",
			"whatsapp": "(11)99999-9999",
			"bird_id": {
				"is_valid": true,
				"verified_at": "2024-12-06 10:45:26"
			},
			"videoconference": {
				"verification": false,
				"link": null
			}
		},
		"details": [
			{
				"id": 584,
				"original_unit_value": "0.00",
				"additional_unit_value": "0.00",
				"final_unit_value": "0.00",
				"quantity": 1,
				"amount": "0.00",
				"product": {
					"id": 2,
					"certificate_type": "A1",
					"person_type": "PJ",
					"sku": 19776,
					"sisar_id": 310,
					"name": "Certificado PJ A1 - Spro Contadores",
					"validate": 1,
					"description": "ACS PJ A1 V5 G2 - SPRO CONTADORES",
					"min_price": "10.00",
					"max_price": "199.99",
					"status": true,
					"slug": "certificado-pj-a1-spro-contadores",
					"created_at": "2024-07-03",
					"updated_at": "2024-07-03"
				},
				"solicitation_sisar": "3B0124120644ED82",
				"solicitation_link": "https:\/\/emissao-online-hom.soluti.com.br\/arpartnerhom\/spro-contadores\/?d=MzM2MTUzNDg4Nzc%3D&i=MzEw&s=MTk3NzY%3D&v=KktkUjai5YsEZEX68TZy0w%3D%3D&data=Tfas8RxDtZuWq3g9%2ByoaTq1WiZijs1iK7FWDwc2smV%2BaVuJawB%2BmlqvuYKO76jm5I%2BolHcvA5mIfxBsNoOlPx5Wx2co43zEWYtUbg5xLWwd4C0pHEnzgrdR1l3y5BG58XzUuNsuJt%2FjdSJKDVeHaOME7MpxBH69wz738H6wq09MfhTWOU3DhvV4I5irf%2FZQIep%2BMJEnrrq9eswo00PiueOiCJgzz9P4tzaqsF9Bcq60F4FcBrHSwkj%2FThsrPq%2FBmLpYwzP%2BA8v0UNsyul2o11zOgchvXUJvL7Ew4xPcOWPL9Q03q10a3lsUdBu6ShoLYF9KYRIL4Lmwiho7daf8oTRR8MrB3GzLUjzaIuNYczLZU5EjtwZq7emYE%2FnXTUUhJNjWSO9IqgYS4LM28pT%2FH9nF2CdGIe%2BUPO34B9twQgZzVRSdVJ69yzFkbUUedxtheED3hIrJme4nRN2aj3tFpWAs376WTZVjMVRfxtxGRNdx%2BWVsQknYu9Cl8Ec9H0aP5nzsYYJKJCQVDnZISpp%2FR2QpqxxRloWS3TzNyiRRlKQVQuZEoznfi6AyrPSHnhpdOvUX4hvLBl2AQ%2FLlxNWyFStH9eHERukHRvrge%2BWU7OSpbSgSqhwG7%2FC2lMoGMclbyFdW2Xv1%2BGJ9p1yo0eJgimjMdDca2RktT%2B2STUQk9qDALq8qtWyGhyVk9EgKnq9AkhbRXS4VX3kQ6p7Mh0nwnnWVPIMCIb7e4of1YQnRcWtw%3D",
				"created_at": "2024-12-06"
			}
		]
	}
}
circle-check

Last updated