xgate/xgate-integration
最新稳定版本:1.0.3
Composer 安装命令:
composer require xgate/xgate-integration
包简介
Pacote para integração com a API da XGate
README 文档
README
XGATE
O que a XGate?
Uma solução moderna para pagamentos e conversões financeiras. Uma plataforma robusta para transações PIX e Cripto, perfeita para otimizar operações financeiras.
- Processamento instantâneo via PIX.
- Conversão automática de moeda FIAT para cripto.
- Depósitos e saques em Bitcoin, Ethereum, SHIBA INU, USDT, USDC, BNB e MATIC.
- Monitoramento em tempo real via dashboard avançado.
Instalação
composer require xgate/xgate-integration dev-production
Manual
Iniciar integração:
Crie um instância da classe Xgate para ter acesso aos métodos.
require 'vendor/xgate/xgate-integration/src/index.php'; try { $xgate = new XGate( new Account( 'nameemail@domain.com', '**************' ) ); ... } catch (Exception $e) { echo "\nErro: " . $e->getMessage() . "\n"; }
Errors:
// catch { message: "...", name: "XGateError", status: 400, // exemplo originalError: {...} }
👉 DEPÓSITO usando moeda fiduciária:
$xgate->depositFiat( 10, new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID MethodCurrency::PIX );
-
PARÂMETRO 1: Valor de depósito
-
PARÂMETRO 2: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF -
PARÂMETRO 3: Tipo de transação
Resposta:
{ message: "****"; data: { status: "PENDING"; code: "0002012684001****"; id: "12s1****"; customerId: "01asd1****"; } }
👉 DEPÓSITO convertendo moeda fiduciária para cripto moeda:
$xgate->depositConversionFiatToCrypto( 10, new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID MethodCurrency::PIX, MethodCryptocurrency::USDT );
-
PARÂMETRO 1: Valor de depósito
-
PARÂMETRO 2: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF -
PARÂMETRO 3: Tipo de transação
-
PARÂMETRO 3: Para qual cripto moeda quer converter
Resposta:
{ message: "****"; data: { status: "PENDING"; code: "0002012684001****"; id: "12s1****"; customerId: "01asd1****"; } }
👉 DEPÓSITO de cripto moeda (Gerar uma carteira)
$xgate->depositGenerateCryptoWallet( new Customer("Nome do cliente", "00000000000") ?? "1a0********" // {...} or ID );
- PARÂMETRO 1: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF
Resposta:
[ { blockchainNetworks: ["Ethereum", "ERC-20", "BEP-20"]; publicKey: "0xE5****"; }, ... ]
OBSERVAÇÃO: Não é gerado uma solicitação de depósito para cripto moeda, apenas a carteira onde o cliente pode transferir o valor que ele desejar.
👉 DEPÓSITO de cripto moeda convertendo para moeda fiduciária
❌ Não temos essa opção disponível no momento.
👉 SAQUE usando moeda fiduciária:
$xgate->withdrawFiat( 10, new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID MethodCurrency::PIX, new PixKeyParam("00000000000", PixKeyParamType::CPF) );
-
PARÂMETRO 1: Valor de saque
-
PARÂMETRO 2: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF -
PARÂMETRO 3: Tipo de transação
-
PARÂMETRO 4: Informações da chave pix
parâmetro Obrigatório Tipo Descrição key SIM StringChave pix type SIM StringTipo da chave, opções: PHONE,CPF,CNPJ,EMAIL,RANDOM
Resposta:
{ message: "******"; status: "********"; _id: "as1*****"; }
👉 SAQUE convertendo cripto moeda para moeda fiduciária:
$xgate->withdrawConversionCryptoToFiat( 10, new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID MethodCryptocurrency::USDT, MethodCurrency::PIX, new PixKeyParam("00000000000", PixKeyParamType::CPF) );
- PARÂMETRO 1: Valor de saque
- PARÂMETRO 2: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF - PARÂMETRO 3: Cripto moeda
- PARÂMETRO 4: Para qual forma de pagamento você quer receber (Converter)
- PARÂMETRO 5: Informações da chave pix
parâmetro Obrigatório Tipo Descrição key SIM StringChave pix type SIM StringTipo da chave, opções: PHONE,CPF,CNPJ,EMAIL,RANDOM
Resposta:
{ message: "******"; status: "********"; _id: "as1*****"; }
👉 SAQUE para carteira externa:
$xgate->withdrawExternalWallet( 10, new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID MethodBlockchain::BEP20, MethodCryptocurrency::USDT, "0xff*****" );
- PARÂMETRO 1: Valor de saque
- PARÂMETRO 2: Informações do cliente ou ID do cliente que já existe
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF - PARÂMETRO 3: Rede blockchain
- PARÂMETRO 4: Cripto moeda
- PARÂMETRO 5: Chave pública da carteira que vai receber a transferência
Resposta:
{ message: "******"; status: "********"; _id: "as1*****"; }
👉 SAQUE convertendo moeda fiduciária para cripto moeda
❌ Não temos essa opção disponível no momento.
👉 BUSCAR lista de moedas fiduciária disponíveis para depósito
$xgate->getCurrenciesDeposit();
Resposta:
[ { _id: "sw2****"; name: "********"; type: "********"; createdDate: "********"; updatedDate: "********"; __v: 0; symbol: "********"; }, ... ]
👉 BUSCAR lista de moedas fiduciária disponíveis para saques
$xgate->getCurrenciesWithdraw();
Resposta:
[ { _id: "sw2****"; name: "********"; type: "********"; createdDate: "********"; updatedDate: "********"; __v: 0; symbol: "********"; }, ... ]
👉 BUSCAR lista de cripto moedas disponíveis para depósito
$xgate->getCryptocurrenciesDeposit();
Resposta:
[ { _id: "sw2****"; name: "********"; symbol: "******"; coinGecko: "******"; createdDate: "********"; updatedDate: "********"; __v: 0; }, ... ]
👉 BUSCAR lista de cripto moedas disponíveis para saque
$xgate->getCryptocurrenciesWithdraw();
Resposta:
[ { _id: "sw2****"; name: "********"; symbol: "******"; coinGecko: "******"; createdDate: "********"; updatedDate: "********"; __v: 0; }, ... ]
👉 BUSCAR redes blockchain disponíveis para depósito e suas cripto moedas suportadas
$xgate->getBlockchainDeposit();
Resposta:
[ { _id: "1Q******"; name: "********"; symbol: "********"; coinGecko: "********"; updatedDate: "********"; createdDate: "********"; __v: 0; }, ... ]
👉 BUSCAR redes blockchain disponíveis para saque e suas cripto moedas suportadas
$xgate->getBlockchainWithdraw();
Resposta:
[ { _id: "1Q******"; name: "********"; symbol: "********"; coinGecko: "********"; updatedDate: "********"; createdDate: "********"; __v: 0; }, ... ]
👉 COTAÇÃO de depósito convertendo moeda fiduciária para cripto moeda
$xgate->getQuotationDepositFiatToCrypto( 10, MethodCurrency::PIX, MethodCryptocurrency::USDT );
- PARÂMETRO 1: Valor de depósito
- PARÂMETRO 3: Tipo de transação
- PARÂMETRO 3: Para qual cripto moeda quer converter
Resposta:
{ amount: 10; crypto: "******"; }
👉 COTAÇÃO de depósito convertendo cripto moeda para moeda fiduciária
❌ Não temos essa opção disponível no momento.
👉 COTAÇÃO de saque convertendo cripto moeda para moeda fiduciária
$xgate->getQuotationWithdrawCryptoToFiat( 10, MethodCryptocurrency::USDT, MethodCurrency::PIX );
- PARÂMETRO 1: Valor de saque
- PARÂMETRO 3: Cripto moeda
- PARÂMETRO 3: Para qual forma de pagamento você quer receber (Converter)
Resposta:
{ amount: 10; crypto: "******"; }
👉 COTAÇÃO de saque convertendo moeda fiduciária para cripto moeda
❌ Não temos essa opção disponível no momento.
👉 COTAÇÃO de saque para um carteira de cripto moeda externa
$xgate->getQuotationWithdrawExternalWallet( 10, MethodBlockchain::BEP20, MethodCryptocurrency::USDT );
- PARÂMETRO 1: Valor de saque
- PARÂMETRO 3: Rede blockchain
- PARÂMETRO 3: Cripto moeda (A rede blockchain precisa suportar essa cripto moeda)
Resposta:
{ amount: 10; }
👉 CLIENTE: Criar um cliente
$xgate->customerCreate( new Customer( "Nome do cliente", "00000000000" ) );
- PARÂMETRO 1: Informações do cliente
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF
Resposta:
{ message: "********"; customer: { _id: "********"; } }
👉 CLIENTE: Atualizar informações do cliente
$xgate->customerUpdate( "********", new Customer("Nome do cliente", "00000000000") );
- PARÂMETRO 1: ID do cliente existente
- PARÂMETRO 2: Informações do cliente
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF
Resposta:
{ message: "********"; customer: { _id: "********"; } }
👉 PIX: Criar uma chave pix para um clientes
$xgate->pixKeyCreate( new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID new PixKeyParam( "00000000000", PixKeyParamType::CPF ) );
-
PARÂMETRO 1: Informações do cliente ou ID do cliente existente
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF -
PARÂMETRO 2: Informações da chave pix do cliente
parâmetro Obrigatório Tipo Descrição key SIM StringNome do cliente type SIM StringTipo da chave, opções: PHONE,CPF,CNPJ,EMAIL,RANDOM
Resposta:
{ message: "********"; key: "********"; }
👉 PIX: Buscar todas as chaves pix de um cliente
$xgate->pixKeyGetAll( new Customer("Nome do cliente", "00000000000") ?? "1a0********", // {...} or ID );
- PARÂMETRO 1: Informações do cliente ou ID do cliente existente
parâmetro Obrigatório Tipo Descrição name SIM StringNome do cliente phone NÃO StringTelefone do cliente email NÃO StringE-mail do cliente document SIM StringAlgum documento do cliete, ex: CPF
Resposta:
[ { key: "00000000000"; type: "CPF"; _id: "********"; } ]
👉 PIX: Deletar uma chave pix do cliente
$xgate->pixKeyDelete("*******", "*******");
- PARÂMETRO 1: ID do cliente
- PARÂMETRO 2: ID da chave pix do cliente
Resposta:
{ message: "********"; }
👉 EMPRESA: Buscar saldo da empresa
# Busca todas as moedas fiduciárias e cripto moedas
$xgate->getBalance();
Resposta:
[ { currency: { name: "******"; type: "******"; }; totalAmount: 10; totalHeld: 10; }, { cryptocurrency: { name: "******"; symbol: "******"; }; totalAmount: 10; }, ... ]
# Busca uma moeda fiduciária específica
$xgate->getBalance(new CurrencyBalance("********"));
- PARÂMETRO 1: ID da moeda fiduciária
Resposta:
[ { currency: { name: "******"; type: "******"; }; totalAmount: 10; totalHeld: 10; }, ... ]
OBSERVAÇÃO: Pode ser o ID tanto da moeda fiduciária de saque como a de depósito
# Busca uma cripto moeda específica
$xgate->getBalance(new CryptoBalance("********"));
- PARÂMETRO 1: ID da cripto moeda
Resposta:
[ { cryptocurrency: { name: "******"; symbol: "******"; }; totalAmount: 10; }, ... ]
OBSERVAÇÃO: Pode ser o ID tanto da cripto moeda de saque como a de depósito
👉 SUB EMPRESA: Criar sub empresa
$currencies = $xgate->getCurrenciesDeposit(); $xgate->createSubCompany( new SubCompanyCreate( new User( "Meu primeiro usuário", "email@domain.com", "********", new Phone( PhoneType::mobile, "900000000", "11", "55" ) ), new SubCompanyOption( [ new SubCompanyOptionCurrency( $currencies[0], new Fee( FeeType::PERCENTAGE, 10 ) ) ], new Fee( FeeType::PERCENTAGE, 10 ), new Fee( FeeType::PERCENTAGE, 10 ) ), new SubCompanyOption( new Fee( FeeType::PERCENTAGE, 10 ), new Fee( FeeType::PERCENTAGE, 10 ), new Fee( FeeType::PERCENTAGE, 10 ) ) ) );
OBSERVAÇÃO: Um objecto único com os seguites parâmetros:
-
PARÂMETRO 1:
user: Informações do primeiro usuário (ADMIN) da sub conta-
name:OBRIGATÓRIO StringNome do usuário -
email:OBRIGATÓRIO StringE-mail do usuário -
password:OBRIGATÓRIO StringSenha do usuário -
phone:OBRIGATÓRIO StringObject com inforções do telefone do usuário -
type:OBRIGATÓRIO StringTipo do número. Opções: mobile -
number:OBRIGATÓRIO StringNúmero de telefon -
areaCode:OBRIGATÓRIO StringCódigo do estado -
countryCode:OBRIGATÓRIO StringCódigo do país
-
-
-
PARÂMETRO 2 e 3:
depositewithdraw: Informações de taxas de depósito e saque Tanto nodepositcomo nowithdrawtem os parâmetroscurrencies,cryptocurrencieseblockchainNetworks.currencies: Moedas fiduciáriascryptocurrencies: Cripto moedasblockchainNetworks: Redes blockchains
E cada uma delas tem a opção de mandar um object
{ type: "PERCENTAGE", value: 1, }, isso significa que toda a categoria terão o mesmo valor de taxa. Exemplo:withdraw: { currencies: { type: "PERCENTAGE", value: 1, }, ... }, ...
OBSERVAÇÃO: A palavra 'categoria' pode-se se entender que é
currencies,cryptocurrencieseblockchainNetworksIsso significa que todas as moedas fiduciárias de saque terão uma taxa de 1%, isso server para todos. Agora se você quiser definir uma porcentagem para cada moeda fiduciárias diferente, você precisa buscar a listagem de todas as moedas (Isso serve tembém para as outras categorias). Exemplo:
Cenário hipotético: Adicionando um valor de dinâmico para cada cripto moeda de depósito
const cryptocurrencies = await xgate.cryptocurrencies.getCryptocurrenciesDeposit(); return await xgate.subCompany.createSubCompany({ deposit: { cryptocurrencies: cryptocurrencies.map((item, index) => ({ cryptocurrency: item._id || item, fee: { type: "PERCENTAGE", value: 1 + index, }, })), }, });
Sempre que usar essa opção, adicione um object com dois parâmetros, o 1°: o nome da categoria no singular e o 2°:
fee, onde será adicionado um object com os dois parâmetros,type= Tipo de taxa evalue= Valor da taxa. No primeiro parâmetro você pode adicionar tanto o ID da moeda como o object completo.Na "vida real", você pode criar um painel visual para adicionar essas taxas diferentes ou apenas criar um object fixo definindo a taxa de cada categoria e moedas.
Resposta:
{ message: "********"; }
👉 SUB EMPRESA: Adicionar o primeiro IP da sub empresa
⚠️ Essa rota adiciona o primeiro IP da sub empresa, caso tente adicionar um segundo IP, retornará um error.
$xgateSubCompany = new XGate( new Account( 'nameemail@domain.com', '**************' ) ); return await $xgate->subCompanyAddFirstIP( "0000:0000:0000:0000:0000:0000:0000:0000" );
Primeiro é criado um nova instância da classe Xgate e é passada as informações de acesso da sub conta.
OBSERVAÇÃO: Todos os métodos chamados nessa intância, afetará a sub empresa e não a empresa principal.
- PARÂMETRO 1:
IP, Aceitas IPV4 e IPV6
Resposta:
{ message: "********"; }
👉 SUB EMPRESA: Adicionar o primeiro Webhook da sub empresa
⚠️ Essa rota adiciona a primeira rota de Webhook da sub empresa, caso tente adicionar um segundo Webhook, retornará um error.
$xgateSubCompany = new XGate( new Account( 'nameemail@domain.com', '**************' ) ); $xgate->subCompanyAddFirstWebhook( new Webhook( "https://www.mydomain.com/webhook", "Primeiro Webhook Test" ) );
Primeiro é criado um nova instância da classe Xgate e é passada as informações de acesso da sub conta.
OBSERVAÇÃO: Todos os métodos chamados nessa intância, afetará a sub empresa e não a empresa principal.
Um object com os seguintes parâmetros:
- PARÂMETRO 1:
externalWebhookUrl: URL do webhook - PARÂMETRO 2:
name: Nome para identificação do webhook
Resposta:
{ message: "********"; }
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-14