Integração GSPayments Link
1. Introdução
Este documento tem como objetivo guiar terceiros na integração com o Gspayments, explicando o processo de obtenção de credenciais, autenticação e consumo das APIs disponíveis.
Acesse o portal SC3 pelo link:
https://portal.homolog.gsurfnet.com/gsurf/login
Nota: substitua "gsurf" pelo nome da sua empresa na URL.
2. Configuração do Gspayments
Importante: Configuração no canal tem prioridade sobre as demais! \
Canal tem prioridade sobre Parceiro.
2.1 Configuração no Parceiro (CANAL GENÉRICO)
- Acesse Configurações > Gateway > Configurações do Parceiro.
- Acesse Credenciais para cadastrar uma credencial de provedor de cartão, Pix ou boleto.
- Selecione os provedores disponíveis e cadastre a credencial com o adquirente/banco utilizando as credenciais fornecidas por eles. (Faça isso para outros provedores como antifraude, por exemplo).
- Após esse cadastro, acesse Canais Genéricos, selecione PAYMENT_LINK e siga para Integrações e salve o provedor com a credencial criada.
- Em seguida, acesse Roteamento para configurar um roteamento default ou específico, caso haja mais de um.
- Configure os hooks a serem recebidos (necessário criar uma credencial de hook antes), definindo quais eventos são relevantes para garantir o fluxo correto da operação.
2.2 Configuração no Canal PAYMENT_LINK
- Acesse Acessar uma Loja > Config. Gateway > Canal > PAYMENT_LINK.
- Acesse Credenciais para cadastrar uma credencial de provedor de cartão, Pix ou boleto.
- Selecione os provedores disponíveis e cadastre a credencial com o adquirente/banco utilizando as credenciais fornecidas por eles. (Faça isso para outros provedores como antifraude, por exemplo).
- Após esse cadastro, acesse Integrações e salve o provedor com a credencial criada.
- Em seguida, acesse Roteamento para configurar um roteamento default ou específico, caso haja mais de um.
- Configure os hooks a serem recebidos (necessário criar uma credencial de hook antes), definindo quais eventos são relevantes para garantir o fluxo correto da operação.
3. Acesso às APIs
Antes de iniciar a integração, é necessário criar um App Client no portal SC3 para obter credenciais de acesso.
Passos para criar um App Client:
- Acesse uma loja.
- Dentro da loja, vá em Menu > Controle de Acesso > Cadastrar App Client.
4. Configuração das Rotas de API
- Em Configurações do Módulo selecionar channel (obrigatório ter um canal)
- Acesse Rotas de API.
- Localize Gateway de Pagamentos Gsurf (Gspayments).
- Selecione todos os endpoints disponíveis.
- Clique em Salvar.
- Após salvar, copie e armazene com segurança os seguintes dados:
- Client Secret (visível apenas na tela de criação).
- Client ID (visível posteriormente).
📌 Requisição Token
🛠 Método: POST
🔗 URL:
https://api-hml.gsurfnet.com/gmac-v1/oauth2/token
Autenticação: Basic Auth
- Username = clientId
- Password = clientSecret
Resultado: Obtenção do access_token
🔹 5. Criar Link de Pagamento
Este endpoint permite criar um link de pagamento.
📌 Requisição
🛠 Método: POST
🔗 URL:
https://api-hml.gsurfnet.com/gs-payment-ecommerce/v1/payments/link
5.1 Estrutura da Requisição
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body (Exemplo JSON):
{
"payment_link_data": {
"unique_payment": true,
"allowed_payment_types": ["CARD", "SLIP", "PIX"],
"card_payment_params": {},
"recurrence_params": {},
"description": "Pagamento da compra XYZ",
"expiration": 86400,
"split_data": [],
"sale_data": {
"amount": 1000,
"merchant_correlation_id": "06f087a6-6e50-4b76-b71a-ee0ea9de961e",
"order_id": "e44a1288ea1e4410bb8c",
"submerchant_id": "05643319000159",
"merchant_document": "00037736558"
}
}
}
5.2 Parâmetros Importantes
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
unique_payment |
boolean | ✅ | Indica se o link é de pagamento único. |
allowed_payment_types |
array | ✅ | Tipos de pagamento permitidos (CARD, SLIP, PIX). |
description |
string | ❌ | Descrição do link de pagamento (máx. 99 caracteres). |
expiration |
integer | ❌ | Expiração do link em segundos (máx. 172800, padrão: 86400). |
amount |
integer | ✅ | Valor da venda sem separador decimal (ex: 1000 = R$ 10,00). |
merchant_correlation_id |
string | ❌ | Identificador único para referência da loja (máx. 36 caracteres). |
order_id |
string | ❌ | Número do pedido da loja (máx. 20 caracteres). |
submerchant_id |
string | ❌ | Identificador da loja cadastrada no Gspayments (máx. 20 caracteres). |
merchant_document |
string | ❌ | Documento da loja que o link será criado. |
5.3 Respostas Possíveis
🟢 201 - Sucesso
{
"url": "https://pagamento.gsurfnet.com/link/123456"
}
🔴 Erros Comuns
| Código | Motivo |
|---|---|
| 400 | Requisição inválida (parâmetros ausentes ou incorretos). |
| 401 | Token de autenticação inválido ou expirado. |
| 403 | Permissão negada para a ação solicitada. |
| 404 | Recurso não encontrado. |
| 500 | Erro interno no servidor. |
🔹 6. Pagamento do Link por Pix
Este endpoint permite realizar o pagamento de um link via Pix.
📌 Requisição
🛠 Método: POST
🔗 URL:
https://api-hml.gsurfnet.com/gs-payment-ecommerce/v1/payments/link/{link_code}/pix
6.1 Estrutura da Requisição
Path Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
link_code |
string | ✅ | Código base64 contendo o identificador do link e do parceiro. |
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body (Exemplo JSON):
{
"pix_data": {
"payer": {
"name": "Nome do Pagador",
"document": "12345678900"
}
}
}
6.2 Parâmetros Importantes
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pix_data |
object | ✅ | Objeto contendo os dados do pagamento por Pix. |
payer |
object | ✅ | Objeto contendo os dados do pagador. |
6.3 Respostas Possíveis
🟢 201 - Sucesso
{
"pix_data": {
"emv": "00020101021126950014BR.GOV.BCB.PIX2573spi.hom.cloud.itau.com.br/documentos/f2bc596c-5ad6-4b8b-9a01-6d11cfcf3d015204000053039865409999900.005802BR5910Neymar CPF6009SAO PAULO626005228rxZbFrWS4uaAW0Rz889AQ50300017BR.GOV.BCB.BRCODE01051.0.06304CF12",
"expiration": 300
},
"payment_data": {
"gti": "ec8cb6ea-265d-463e-8f89-21c632989c2d",
"status": "AUTHORIZED",
"amount": 2000
}
}
🔴 Erros Comuns
| Código | Motivo |
|---|---|
| 400 | Requisição inválida (parâmetros ausentes ou incorretos). |
| 401 | Token de autenticação inválido ou expirado. |
| 403 | Permissão negada para a ação solicitada. |
| 404 | Recurso não encontrado. |
| 500 | Erro interno no servidor. |
🔹 7. Pagamento do Link por Cartão
Este endpoint permite realizar o pagamento de um link via Cartão.
📌 Requisição
🛠 Método: POST
🔗 URL:
https://api-hml.gsurfnet.com/gs-payment-ecommerce/v1/payments/link/{link_code}/card
7.1 Estrutura da Requisição
Path Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
link_code |
string | ✅ | Código base64 contendo o identificador do link e do parceiro. |
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body (Exemplo JSON):
{
"transaction_data": {
"payer": {
"name": "Loja Gsurf",
"document": "05643319000159"
},
"card": {
"installments": 12
},
"session_id": "4e84ef0f-ae16-483c-999a-5a42be35219c"
}
}
7.2 Parâmetros Importantes
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
transaction_data |
object | ✅ | Objeto contendo os dados do pagamento por cartão. |
payer |
object | ✅ | Objeto contendo os dados do pagador. |
card.installments |
integer | ✅ | Quantidade de parcelas da transação. |
session_id |
string | ✅ | Identificador da sessão (mín. 36 caracteres). |
7.3 Respostas Possíveis
🟢 201 - Sucesso
{
"transaction_data": {
"masked_card": "544828******0007",
"installments": 1,
"authorization_code": "123",
"authorization_time": "2024-07-12T12:00:00Z",
"provider_usn": "123123123123123",
"payer": {
"name": "Loja Gsurf",
"document": "05643319000159"
}
},
"payment_data": {
"gti": "8d561c7d-0dda-4185-bc86-5a78a070b2ca",
"amount": "1000",
"status": "AUTHORIZED"
}
}
🔴 Erros Comuns
| Código | Motivo |
|---|---|
| 400 | Requisição inválida (parâmetros ausentes ou incorretos). |
| 401 | Token de autenticação inválido ou expirado. |
| 403 | Permissão negada para a ação solicitada. |
| 404 | Recurso não encontrado. |
| 500 | Erro interno no servidor. |
🔹 8. Consultar Link de Pagamento para Pagar
Este endpoint permite consultar um link para realizar o pagamento.
📌 Requisição
🛠 Método: GET
🔗 URL:
https://api-hml.gsurfnet.com/gs-payment-ecommerce/v1/payments/link/{link_code}/to-pay
8.1 Estrutura da Requisição
Path Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
link_code |
string | ✅ | Código base64 contendo o identificador do link e do parceiro. |
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
8.2 Respostas Possíveis
🟢 200 - Sucesso
{
"id": "9873217",
"unique_payment": true,
"allowed_payment_types": ["PIX"],
"status": "ACTIVE",
"creation_time": "2024-07-12T12:00:00Z",
"update_time": "2024-07-12T12:00:00Z",
"card_payment_params": {
"max_installments": 6,
"initial_installment_fees": 0,
"installment_plans": [
{
"installment_value": 21,
"installments": 10,
"final_value": 210,
"has_fee": true
}
]
},
"recurrence_params": {
"time_interval": 1,
"time_unit_interval": "MOUNTH",
"recurrence_times": 12
},
"description": "Pagamento do pedido X",
"expiration": 86400,
"payment_count": 1,
"sale_data": {
"amount": 1000,
"merchant_correlation_id": "06f087a6-6e50-4b76-b71a-ee0ea9de961e",
"order_id": "e44a1288ea1e4410bb8c",
"submerchant_id": "05643319000159"
},
"hook_data": {
"url": "gsurfnet.com/payment/notification",
"credentials_id": "d6f5a1d5-cadd-4d65-a136-c92614f45c40"
},
"split_data": [],
"session_id": "7939c4eb-012d-41a9-8dfc-161a98bc4d6c"
}
🔴 Erros Comuns
| Código | Motivo |
|---|---|
| 400 | Requisição inválida (parâmetros ausentes ou incorretos). |
| 401 | Token de autenticação inválido ou expirado. |
| 403 | Permissão negada para a ação solicitada. |
| 404 | Recurso não encontrado. |
| 500 | Erro interno no servidor. |
🔹 9. Cancelar Link de Pagamento
Este endpoint permite cancelar um link de pagamento.
📌 Requisição
🛠 Método: PUT
🔗 URL:
https://api-hml.gsurfnet.com/gs-payment-ecommerce/v1/payments/link/{link_id}/cancel
9.1 Estrutura da Requisição
Path Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
link_id |
string | ✅ | Identificador do link (36 a 38 caracteres). |
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
9.2 Respostas Possíveis
🟢 200 - Sucesso
{
"id": "9873217",
"unique_payment": true,
"allowed_payment_types": ["PIX"],
"status": "ACTIVE",
"creation_time": "2024-07-12T12:00:00Z",
"update_time": "2024-07-12T12:00:00Z",
"card_payment_params": {
"max_installments": 6,
"initial_installment_fees": 0,
"installment_plans": [
{
"installment_value": 21,
"installments": 10,
"final_value": 210,
"has_fee": true
}
]
},
"recurrence_params": {
"time_interval": 1,
"time_unit_interval": "MOUNTH",
"recurrence_times": 12
},
"description": "Pagamento do pedido X",
"expiration": 300,
"payment_count": 1,
"sale_data": {
"amount": 1000,
"merchant_correlation_id": "06f087a6-6e50-4b76-b71a-ee0ea9de961e",
"order_id": "e44a1288ea1e4410bb8c",
"submerchant_id": "05643319000159"
}
}
🔴 Erros Comuns
| Código | Motivo |
|---|---|
| 400 | Requisição inválida (parâmetros ausentes ou incorretos). |
| 401 | Token de autenticação inválido ou expirado. |
| 403 | Permissão negada para a ação solicitada. |
| 404 | Recurso não encontrado. |
| 500 | Erro interno no servidor. |
🔹 9. Criação de Link via Portal Lojista


