Documentação da API Royal Bank - Cashin
Bem-vindo à documentação da API Pix do RoyalBanking! Esta API permite que você integre a funcionalidade de geração e confirmação de pagamentos via Pix em seus sistemas. Abaixo, você encontrará detalhes sobre como realizar operações de entrada (cash in) e saída (cash out) utilizando a API.
Atenção: Somente IP's autorizados
Solicitação de Depósito (Pix de Entrada)
Como Usar
Para usar a API Pix do RoyalBanking, faça uma requisição HTTP POST para o endpoint https://api.royalbanking.com.br/v1/gateway/
com os seguintes parâmetros:
Descrição
Esse endpoint permite realizar requisições de pagamento via PIX, com autenticação por chave de API e validação de IP autorizado. Ele também verifica campos obrigatórios e requisitos de valores mínimos.
Exemplo de Requisição Cash in
{
"amount": 100,
"client": {
"name": "Maria Oliveira",
"document": "123456789",
"telefone": "11999999999",
"email": "[email protected]"
},
"split" => [
"email" => 'Teste002', //Utilize Seu Nome De Usuario!
"percentage" => '50',
],
"callbackUrl" => 'https://exemplo/royalbanking/callback', //Utilize para enviar seu webhook
"api-key": "81bb141jmdaw9u32-d3q9md3qd-qdwq59"
}
Respostas da API
- 200 OK: O Pix foi gerado com sucesso. A resposta incluirá detalhes do Pix.
Exemplo de Resposta (200 OK)
Aqui está um exemplo de resposta quando a requisição é bem-sucedida:
{
"status": "success",
"message": "ok",
"paymentCode": "00020101021226790014br.gov.bcb.pix255/v2/be1920df6b714e4e84edd77d7f25204000039865802BR
592**63042CA1",
"idTransaction": "52fc5262-4063-4900-933b-55e69850",
"paymentCodeBase64": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQAAAACgl2eQAAACwElEQVR4Xu2XS5IjIQwF4SJw/1vMUeAi
. MJmi2y57IjpmMaXZGH+qDLl4IelJ5bJ/Xr/K+87b+gBnfYCzPsBZfweMUuoqpfTVGl91r9Knm4nA5D36Xn3uUQdY5epmJhA/Fyedr9I
HMuvZTAXmnopDHRurtP4fgNVMUCuuvglbNsAbFlZQERo8cI22piU9dFaE8oCVMd2xTXdUiFNGHmlArQtNdWvWt1+gT6LNgHAL7SwO
kImuRr8JHo9E/CwlGifvJp6Q2omQPNgktTTRzuVg8YwcSJwzGoHp04QSdUM4YfIFCDMs8ItJgt1DNpcQNsSoeKhTUTR12QlADHPqFal
EaViM1FwzwV4tunhWW3DiLONXYxzP3BqxEihi/Ph3TVZCcBSm56xmYO0GsnSwGmAvZuzPkkaVYs8fPyWrNuBKFfaCG3MUzV688zm/YB
PeYoM04waWp0umYBmDVHW67R+SuQrE0AXEeo2T2Ryt2K6PJOVACixEq0RMi3iYRvZD5EJgF3UyVQxcGSCWynmEo1seZtpm1dzJsAGJ
e9eJsgrmSvjhd33w5MI2UjnR51h+s+P/MATYN3BVX8Z7IygBpRIkfNcTo0Lum6uvt2wKaBJiITIns0ESOWClisyDqPOGBEimR5lAWMa
. vOSIlYGLc5fknU7gGHCq9HMCNlQYDgoD1ihyOE+zVgkr3roSi5Pm8ybxSgRc9q+4MFOV/DLcE4BxikTbVP+H2sot2UeyEoBTG+wstVH
. A54ZPIhDaCt4hV8dBoTsbmOEZg7X0TPw329nAiL7lvUYySnJ5wHamEqvwSsgdPvBIZAGRGTSW+vVvmHg1e0ki8NP6AGd9gLM+wFn/AP
. gNfNIphReCMrQAAAAASUVORK5CYII="
}
Dados do Cliente
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
client | string | Sim | { |
name | string | Sim | Nome do cliente (Exemplo: "ExemploDaSilva") |
document | string | Sim | CPF sem pontuação. (Exemplo: "12345678911") |
telefone | string | Sim | Telefone sem pontuação. (Exemplo: "12345678911") |
string | Sim | Email do Cliente. (Padrão: "[email protected]") | |
}, |
Detalhes do Pagamento
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
api-key | string | Sim | Api-Key do Cliente Royal. (Exemplo: "81bb141jmdaw9u32-d3q9md3qd-qdwq59") |
amount | String | Sim | Valor do pagamento em reais. Sem pontuação. |
split | string | Não | { |
string | Não | Usuario do Split. (Exemplo: "@teste123") | |
percentage | string | Não | Porcentagem de Split. (Exemplo: "10") |
}, |
Outros Parâmetros
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
callbackUrl | string | Sim | URL de retorno para notificações de atualização |
Webhook - Confirmação de Pagamento
{
"idtransaction": "81bb141a-1746-49a8-bb4a-c3b8aa0d2259",
"status": "paid"
}
Caso seu sistema não retorne Status: 200
O Webhook será disparado por mais 3 vezes
Respostas da API
Sucesso
Código: 200 OK
Corpo: JSON contendo informações da transação e confirmação do processamento.
Erros
Código | Mensagem | Descrição |
---|---|---|
401 | API Key não fornecida | Cabeçalho de autenticação ausente ou inválido. |
403 | IP não autorizado | O IP do solicitante não é permitido. |
422 | Dados inválidos | Faltam dados obrigatórios ou valor fora do permitido. |
Documentação da API Royal Bank - Cashout
Solicitação de Saques (Pix de Saída)
Endpoint: https://api.royalbanking.com.br/c1/cashout
Descrição
Esse endpoint permite realizar requisições de saque via PIX, com autenticação por chave de API, validação de IP autorizado e cálculo de taxas e saldo líquido para cashout.
Autenticação: Basic Auth
Cabeçalho:
Authorization: Basic {API_KEY}
content-type: application/json
Substitua {API_KEY}
pela chave de API codificada em Base64.
Parâmetros da Requisição (JSON)
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Chave de API do usuário para autenticação. |
amount | Number | Sim | Valor do saque solicitado em reais. |
pixKey | string | Sim | Chave pix para recebimento. |
pixType | string | Sim | Tipo da chave. |
beneficiaryName | string | Sim | Nome do beneficiário. |
beneficiaryDocument | string | Sim | CPF do beneficiário |
beneficiaryDocument | string | Não | Descrição |
postbackUrl | string | Sim | URL de retorno para notificações de atualização. |
Exemplo Json de Envio
{
"api-key": "81bb141a-1746-49a8-basdasdas4a-c3b8dasdasdasaa0d2259" ,
"name": "adm neto",
"cpf": "33456787698"
"keypix": "7029132323669492",
"amount": 410.95
}
Respostas da API
Sucesso
Código: 200 OK
Corpo: JSON contendo informações sobre a transação e o saldo atualizado.
Erros
Código | Mensagem | Descrição |
---|---|---|
401 | API Key não fornecida | Cabeçalho de autenticação ausente ou inválido. |
401 | IP não autorizado | O IP do solicitante não está autorizado. |
422 | Dados inválidos | Faltam dados obrigatórios ou o valor é inválido. |
Documentação da API Royal Bank - Webhook para Transações
Este webhook permite que o sistema receba notificações de transações de depósito e saque via JSON.
Endpoint
https://seuservidor.com/webhook.php
Descrição
Este webhook recebe notificações automáticas para depósitos e saques, fornecendo dados detalhados das transações. No caso de um depósito, o campo paymentCode
pode ser usado para gerar um QR Code para pagamento.
Cabeçalho:
Content-Type: application/json
Estrutura JSON da Requisição
1. Depósito
Campo | Tipo | Descrição |
---|---|---|
id | integer | ID da transação |
user_id | integer | ID do usuário |
externalreference | string | Referência externa da transação |
amount | float | Valor do depósito |
client_name | string | Nome do cliente |
client_document | string | Documento do cliente |
client_email | string | Email do cliente |
data_registro | string | Data de registro da transação |
adquirente_ref | string | Referência do adquirente |
status | string | Status da transação |
idtransaction | string | ID da transação de pagamento |
paymentcode | string | Código para gerar QR Code de pagamento |
paymentCodeBase64 | string | QRCode em Base64 |
taxa_deposito | float | Taxa aplicada ao depósito |
taxa_adquirente | float | Taxa do adquirente |
deposito_liquido | float | Valor líquido do depósito |
2. Saque
Campo | Tipo | Descrição |
---|---|---|
id | integer | ID da transação |
user_id | integer | ID do usuário |
externalreference | string | Referência externa da transação |
amount | float | Valor do saque |
beneficiaryname | string | Nome do beneficiário |
beneficiarydocument | string | Documento do beneficiário |
pix | string | Chave Pix |
type | string | Tipo de saque |
pixkey | string | Chave Pix |
date | string | Data da transação |
status | string | Status da transação |
idtransaction | string | ID da transação de pagamento |
taxa_cash_out | float | Taxa aplicada ao saque |
cash_out_liquido | float | Valor líquido do saque |
Exemplo de Código para Implementação do Webhook
O exemplo a seguir ilustra como configurar o webhook para receber e processar as notificações de transações.
// webhook.php
$data = file_get_contents("php://input");
$jsonData = json_decode($data, true);
if ($jsonData) {
if (isset($jsonData['client_name']) && isset($jsonData['paymentcode'])) {
$transactionType = 'Depósito';
$paymentCode = $jsonData['paymentcode']; // QR Code pode ser gerado com este código
} elseif (isset($jsonData['beneficiaryname']) && isset($jsonData['pixkey'])) {
$transactionType = 'Saque';
} else {
$transactionType = 'Desconhecido';
}
echo json_encode(['status' => 'success', 'message' => "$transactionType recebido com sucesso."]);
} else {
http_response_code(400);
echo json_encode(['status' => 'error', 'message' => 'Dados inválidos.']);
}