Guia de integração
Comece com segurança. Conecte com intenção.
Dois ambientes, dois tipos de autenticação e uma regra clara de cobrança. Veja como tudo se encaixa.
Primeiros passos
Escolha a integração e confira a disponibilidade. Todas têm sandbox com dados simulados; endpoints reais existem apenas onde o catálogo indica. As rotas API não são traduzidas.
- URL base do sandbox
- https://www.openbankinggateway.com/api/sandbox
- URL base real
- https://www.openbankinggateway.com/api/v1
Sandbox gratuito
O console usa rotas relativas /api/sandbox de mesma origem. O serviço anônimo não exige Google, chave API, conta de carteira nem créditos. Não é um proxy de navegador entre origens: execute os exemplos neste site ou use um cliente HTTP no servidor.
Use apenas identidades e credenciais públicas de teste das páginas e do console. Transferências são simuladas, SMS não são enviados e os tokens não funcionam no modo real.
const response = await fetch('/api/sandbox/bkash-agent/login/request-otp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
account: '01700000001',
phoneOperator: 'Grameenphone'
})
});
const result = await response.json();curl -X POST 'https://www.openbankinggateway.com/api/sandbox/bkash-agent/login/request-otp' \
-H 'Content-Type: application/json' \
--data '{
"account": "01700000001",
"phoneOperator": "Grameenphone"
}'Autenticação real
Para chamadas reais entre servidores, entre no site, crie uma chave em Painel → Chaves API e envie-a em x-api-key. Nunca a exponha no JavaScript do navegador, em URLs ou repositórios públicos. Apenas integrações reais compatíveis podem ser chamadas.
curl 'https://www.openbankinggateway.com/api/v1/bkash-agent/balance?account=<YOUR_WALLET_NUMBER>' \
-H "x-api-key: $OBG_API_KEY" \
-H "X-OBG-Token: $WALLET_TOKEN"Site e carteira: logins diferentes
O Google autentica sua conta Open Banking Gateway e dá acesso a créditos, chaves e cobrança. Não conecta você ao bKash ou a outra carteira. Complete o fluxo da carteira separadamente com uma conta autorizada.
Sessões reais do bKash se vinculam à sua conta do site após o login. Outro usuário não pode assumir esse vínculo. Guarde o token com segurança e autentique novamente quando a sessão expirar.
curl -X POST 'https://www.openbankinggateway.com/api/v1/bkash-agent/login/verify-otp' \
-H "x-api-key: $OBG_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"account": "<YOUR_WALLET_NUMBER>",
"pin": "<WALLET_PIN>",
"otp": "<SMS_OTP>",
"otpHash": "<SMS_HASH>"
}'Campos sensíveis
Envie o token da carteira em X-OBG-Token. Envie PINs, senhas, OTP e otpHash no corpo JSON de POSTs com Content-Type: application/json. Há compatibilidade por consulta, mas URLs podem vazar segredos no histórico, capturas, referências ou logs: evite-a em novas integrações.
Créditos e cobrança
Cada chamada real bem-sucedida custa 1 crédito. Falhas, inclusive do provedor, são gratuitas; o sandbox nunca consome créditos. Pode haver retenção temporária de 1 crédito durante a chamada, cobrado ou liberado na conclusão.
O primeiro login Google concede 1.000 créditos uma única vez. Compre 10.000 por US$ 10, 50.000 por US$ 50 ou 100.000 por US$ 100. Não expiram. Comprar créditos não habilita APIs somente sandbox.
PreçosRespostas
As respostas usam {code, data}. O código do gateway, o status HTTP e o status interno do provedor descrevem camadas diferentes: HTTP 200 ou code 200 não comprovam sozinhos o sucesso da operação. Inspecione os campos do provedor. Uma falha interna do provedor não é cobrada, mesmo com code externo 200. Uma estrutura de resposta do provedor não reconhecida retorna HTTP 502 com UPSTREAM_BAD_RESPONSE e é gratuita. Não há garantia de um campo extra de resposta bruta.
{
"code": 400,
"data": {
"error": "One or more parameters are missing or invalid.",
"errorCode": "INVALID_PARAMS",
"requestId": "<request-id>"
}
}X-Request-Id identifica a requisição. Quando a liquidação está confirmada, X-Credits-Charged é 1 para uma chamada real bem-sucedida cobrada e 0 para falhas ou sandbox. X-OBG-Settlement: unknown indica que o resultado da cobrança está indefinido: X-Credits-Charged: 0 não comprova que nenhum crédito foi debitado. Guarde o ID, não credenciais, para diagnóstico.
Transferências e tentativas
Endpoints que movem dinheiro exigem uma Idempotency-Key única por operação. Mantenha a mesma chave ao resolvê-la; não gere outra para repetir uma transferência incerta. O gateway não repete chamadas ao provedor automaticamente.
Idempotency-Key: <original-operation-id>
X-Request-Id: <gateway-request-id>
X-Credits-Charged: 0
X-OBG-Settlement: unknownErros e limites
O sandbox permite 60 requisições por minuto por IP. Há outros limites reais e de conta. Em 429, respeite Retry-After. Leituras têm 25 segundos; login, escrita e movimentação podem levar até 45 segundos.
| HTTP | Código do gateway | O que fazer |
|---|---|---|
| 404 | APP_NOT_FOUND | Confira campos obrigatórios, tipos e regras. |
| 404 | ENDPOINT_NOT_FOUND | Confira campos obrigatórios, tipos e regras. |
| 405 | METHOD_NOT_ALLOWED | Confira campos obrigatórios, tipos e regras. |
| 503 | LIVE_GATEWAY_DISABLED | O gateway real ou um serviço necessário não está habilitado. Use o sandbox ou fale com o suporte. |
| 403 | LIVE_ACCESS_NOT_ENABLED | Não há provedor real habilitado. Use o sandbox ou fale conosco. Nenhum crédito é cobrado. |
| 401 | INVALID_API_KEY | Use uma chave válida ou entre no console real do site. Erros de sessão da carteira são resultados separados do provedor. |
| 401 | UNAUTHENTICATED | Use uma chave válida ou entre no console real do site. Erros de sessão da carteira são resultados separados do provedor. |
| 403 | ORIGIN_REJECTED | Use uma chave válida ou entre no console real do site. Erros de sessão da carteira são resultados separados do provedor. |
| 400 | INVALID_PARAMS | Confira campos obrigatórios, tipos e regras. |
| 400 | INVALID_IDEMPOTENCY_KEY | Confira campos obrigatórios, tipos e regras. |
| 413 | PAYLOAD_TOO_LARGE | Confira campos obrigatórios, tipos e regras. |
| 415 | UNSUPPORTED_MEDIA_TYPE | Confira campos obrigatórios, tipos e regras. |
| 429 | RATE_LIMITED | Aguarde o prazo de Retry-After; evite loops de tentativas. |
| 403 | ACCOUNT_LINKED_TO_ANOTHER_USER | Faça o login da carteira com a conta correta do site. Uma carteira não pode se vincular a dois usuários. |
| 403 | ACCOUNT_NOT_LINKED | Faça o login da carteira com a conta correta do site. Uma carteira não pode se vincular a dois usuários. |
| 409 | REQUEST_IN_PROGRESS | Inspecione a operação original e seu resultado antes de agir. |
| 409 | IDEMPOTENT_REPLAY | Inspecione a operação original e seu resultado antes de agir. |
| 422 | IDEMPOTENCY_KEY_REUSED | Inspecione a operação original e seu resultado antes de agir. |
| 402 | INSUFFICIENT_CREDITS | Recarregue antes de outra chamada real. |
| 504 | UPSTREAM_TIMEOUT | Guarde o ID da requisição e a Idempotency-Key original. Se a transferência ou liquidação da cobrança for incerta, confira o uso e concilie o resultado do provedor antes de tentar novamente; nunca repita a operação automaticamente. |
| 502 | UPSTREAM_UNAVAILABLE | Guarde o ID da requisição e a Idempotency-Key original. Se a transferência ou liquidação da cobrança for incerta, confira o uso e concilie o resultado do provedor antes de tentar novamente; nunca repita a operação automaticamente. |
| 502 | UPSTREAM_BAD_RESPONSE | A estrutura de resposta do provedor não foi reconhecida. O gateway retorna HTTP 502 e não cobra créditos. Em uma operação financeira, isso não comprova que não houve movimentação; concilie o resultado do provedor antes de qualquer nova tentativa. |
| 503 | NOT_CONFIGURED | O gateway real ou um serviço necessário não está habilitado. Use o sandbox ou fale com o suporte. |
| 500 | INTERNAL_ERROR | Guarde o ID da requisição e a Idempotency-Key original. Se a transferência ou liquidação da cobrança for incerta, confira o uso e concilie o resultado do provedor antes de tentar novamente; nunca repita a operação automaticamente. |
Referência de integrações
Cada página tem endpoints exatos, regras e console com sandbox por padrão. A disponibilidade vem do catálogo, não da compra de créditos.