npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

xgate

v1.0.7

Published

Pacote de integração xgateglobal

Readme

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

npm install xgate

Manual

Iniciar integração:

Crie um instância da classe Xgate para ter acesso aos métodos.

import Xgate from "./index"; // or const Xgate = require("xgate");

try {
  const xgate = new Xgate({
    email: process.env.XGATE_EMAIL, // Seu E-mail
    password: process.env.XGATE_PASSWORD, // Sua Senha
  });

  ...
} catch (err) {
  return err;
}

Errors:

// catch
{
    message: "...",
    name: "XGateError",
    status: 400, // exemplo
    originalError: {...}
}

👉 DEPÓSITO usando moeda fiduciária:

try {
  return await xgate.deposit.depositFiat(
    10,
    {
      name: "Nome do cliente",
      phone: "5511900000000",
      email: "[email protected]",
      document: "00000000000",
    } ?? "1a0********", // {...} or ID
    "PIX"
  );
} catch (err) {
  return err;
}
  • 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 | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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:

try {
  return await xgate.deposit.depositConversionFiatToCrypto(
    10,
    {
      name: "Nome do cliente",
      phone: "5511900000000",
      email: "[email protected]",
      document: "00000000000",
    } ?? "1a0********", // {...} or ID
    "PIX",
    "USDT"
  );
} catch (err) {
  return err;
}
  • 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 | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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)

try {
  return await xgate.deposit.depositGenerateCryptoWallet({
    name: "Nome do cliente",
    phone: "5511900000000",
    email: "[email protected]",
    document: "00000000000",
  }); // {...} or ID
} catch (err) {
  return err;
}
  • PARÂMETRO 1: Informações do cliente ou ID do cliente que já existe | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | name | SIM | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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:

try {
  return await xgate.withdraw.withdrawFiat(
    10,
    {
      name: "Nome do cliente",
      phone: "5511900000000",
      email: "[email protected]",
      document: "00000000000",
    } ?? "1a0********", // {...} or ID
    "PIX",
    {
      key: "00000000000",
      type: "CPF",
    }
  );
} catch (err) {
  return err;
}
  • 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 | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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 | String | Chave pix | | type | SIM | String | Tipo da chave, opções: PHONE, CPF, CNPJ, EMAIL, RANDOM |

Resposta:

{
  message: "******";
  status: "********";
  _id: "as1*****";
}

👉 SAQUE convertendo cripto moeda para moeda fiduciária:

try {
  return await xgate.withdraw.withdrawConversionCryptoToFiat(
    10,
    {
      name: "Nome do cliente",
      phone: "5511900000000",
      email: "[email protected]",
      document: "00000000000",
    } ?? "1a0********", // {...} or ID
    "USDT",
    "PIX",
    {
      key: "00000000000",
      type: "CPF",
    }
  );
} catch (err) {
  return err;
}
  • 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 | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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 | String | Chave pix | | type | SIM | String | Tipo da chave, opções: PHONE, CPF, CNPJ, EMAIL, RANDOM |

Resposta:

{
  message: "******";
  status: "********";
  _id: "as1*****";
}

👉 SAQUE para carteira externa:

try {
  return await xgate.withdraw.withdrawExternalWallet(
    10,
    {
      name: "Nome do cliente",
      phone: "5511900000000",
      email: "[email protected]",
      document: "00000000000",
    } ?? "1a0********", // {...} or ID
    "BEP-20",
    "USDT",
    "0xff*****"
  );
} catch (err) {
  return err;
}
  • 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 | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum 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

try {
  return await xgate.currencies.getCurrenciesDeposit();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "sw2****";
    name: "********";
    type: "********";
    createdDate: "********";
    updatedDate: "********";
    __v: 0;
    symbol: "********";
  },
  ...
]

👉 BUSCAR lista de moedas fiduciária disponíveis para saques

try {
  return await xgate.currencies.getCurrenciesWithdraw();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "sw2****";
    name: "********";
    type: "********";
    createdDate: "********";
    updatedDate: "********";
    __v: 0;
    symbol: "********";
  },
  ...
]

👉 BUSCAR lista de cripto moedas disponíveis para depósito

try {
  return await xgate.cryptocurrencies.getCryptocurrenciesDeposit();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "sw2****";
    name: "********";
    symbol: "******";
    coinGecko: "******";
    createdDate: "********";
    updatedDate: "********";
    __v: 0;
  },
  ...
]

👉 BUSCAR lista de cripto moedas disponíveis para saque

try {
  return await xgate.cryptocurrencies.getCryptocurrenciesWithdraw();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "sw2****";
    name: "********";
    symbol: "******";
    coinGecko: "******";
    createdDate: "********";
    updatedDate: "********";
    __v: 0;
  },
  ...
]

👉 BUSCAR redes blockchain disponíveis para depósito e suas cripto moedas suportadas

try {
  return await xgate.cryptocurrencies.getBlockchainDeposit();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "1Q******";
    name: "********";
    symbol: "********";
    coinGecko: "********";
    updatedDate: "********";
    createdDate: "********";
    __v: 0;
  },
  ...
]

👉 BUSCAR redes blockchain disponíveis para saque e suas cripto moedas suportadas

try {
  return await xgate.cryptocurrencies.getBlockchainWithdraw();
} catch (err) {
  return err;
}

Resposta:

[
  {
    _id: "1Q******";
    name: "********";
    symbol: "********";
    coinGecko: "********";
    updatedDate: "********";
    createdDate: "********";
    __v: 0;
  },
  ...
]

👉 COTAÇÃO de depósito convertendo moeda fiduciária para cripto moeda

try {
  return await xgate.quotation.getQuotationDepositFiatToCrypto(
    10,
    "PIX",
    "USDT"
  );
} catch (err) {
  return err;
}
  • 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

try {
  return await xgate.quotation.getQuotationWithdrawCryptoToFiat(
    10,
    "USDT"
    "PIX",
  );
} catch (err) {
  return err;
}
  • 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

try {
  return await xgate.quotation.getQuotationWithdrawExternalWallet(
    10,
    "BET-20",
    "USDT"
  );
} catch (err) {
  return err;
}
  • 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

try {
  return await xgate.customer.customerCreate({
    name: "Nome do cliente",
  });
} catch (err) {
  return err;
}
  • PARÂMETRO 1: Informações do cliente | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | name | SIM | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum documento do cliete, ex: CPF |

Resposta:

{
  message: "********";
  customer: {
    _id: "********";
  }
}

👉 CLIENTE: Atualizar informações do cliente

try {
  return await xgate.customer.customerUpdate("********", {
    name: "Nome do cliente",
  });
} catch (err) {
  return err;
}
  • PARÂMETRO 1: ID do cliente existente
  • PARÂMETRO 2: Informações do cliente | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | name | SIM | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum documento do cliete, ex: CPF |

Resposta:

{
  message: "********";
  customer: {
    _id: "********";
  }
}

👉 PIX: Criar uma chave pix para um clientes

try {
  return await xgate.pix.pixKeyCreate(
    { name: "Nome do cliente" }, // {...} or ID
    { key: "00000000000", type: "CPF" }
  );
} catch (err) {
  return err;
}
  • PARÂMETRO 1: Informações do cliente ou ID do cliente existente | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | name | SIM | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum documento do cliete, ex: CPF |

  • PARÂMETRO 2: Informações da chave pix do cliente | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | key | SIM | String | Nome do cliente | | type | SIM | String | Tipo da chave, opções: PHONE, CPF, CNPJ, EMAIL, RANDOM |

Resposta:

{
  message: "********";
  key: "********";
}

👉 PIX: Buscar todas as chaves pix de um cliente

try {
  return await xgate.pix.pixKeyGetAll({
    name: "Nome do cliente", // {...} or ID
  });
} catch (err) {
  return err;
}
  • PARÂMETRO 1: Informações do cliente ou ID do cliente existente | parâmetro | Obrigatório | Tipo | Descrição |------------|-------|--------|------| | name | SIM | String | Nome do cliente | | phone | NÃO | String | Telefone do cliente | | email | NÃO | String | E-mail do cliente | | document | NÃO | String | Algum documento do cliete, ex: CPF |

Resposta:

[
  {
    key: "00000000000";
    type: "CPF";
    _id: "********";
  }
]

👉 PIX: Deletar uma chave pix do cliente

try {
  return await xgate.pix.pixKeyDelete("*******", "*******");
} catch (err) {
  return err;
}
  • 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

try {
  return await xgate.company.getBalance();
} catch (err) {
  return err;
}

Resposta:

[
  {
    currency: {
      name: "******";
      type: "******";
    };
    totalAmount: 10;
    totalHeld: 10;
  },
  {
    cryptocurrency: {
      name: "******";
      symbol: "******";
    };
    totalAmount: 10;
  },
  ...
]

# Busca uma moeda fiduciária específica

try {
  return await xgate.company.getBalance({ currencyId: "********" });
} catch (err) {
  return err;
}
  • 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

try {
  return await xgate.company.getBalance({ cryptocurrencyId: "********" });
} catch (err) {
  return err;
}
  • 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

try {
  const cryptocurrencies =
    await xgate.cryptocurrencies.getCryptocurrenciesDeposit();
  return await xgate.subCompany.createSubCompany({
    user: {
      name: "Meu primeiro usuário",
      email: "[email protected]",
      password: "********",
      phone: {
        type: "mobile",
        number: "900000000",
        areaCode: "11",
        countryCode: "55",
      },
    },
    deposit: {
      currencies: {
        type: "PERCENTAGE",
        value: 0,
      },
      cryptocurrencies: cryptocurrencies.map((item) => ({
        cryptocurrency: item._id,
        fee: {
          type: "PERCENTAGE",
          value: 5,
        },
      })),
      blockchainNetworks: {
        type: "PERCENTAGE",
        value: 0,
      },
    },
    withdraw: {
      currencies: {
        type: "PERCENTAGE",
        value: 1,
      },
      cryptocurrencies: {
        type: "PERCENTAGE",
        value: 1,
      },
      blockchainNetworks: {
        type: "PERCENTAGE",
        value: 1,
      },
    },
  });
} catch (err) {
  return err;
}

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 | String | Nome do usuário | |-------------|----------|-----------------|
    • email: | OBRIGATÓRIO | String | E-mail do usuário | |-------------|----------|-----------------|
    • password: | OBRIGATÓRIO | String | Senha do usuário | |-------------|----------|-----------------|
    • phone: | OBRIGATÓRIO | String | Object com inforções do telefone do usuário | |-------------|----------|-----------------|
      • type: | OBRIGATÓRIO | String | Tipo do número. Opções: mobile | |-------------|----------|-----------------|
      • number: | OBRIGATÓRIO | String | Número de telefon | |-------------|----------|-----------------|
      • areaCode: | OBRIGATÓRIO | String | Código do estado | |-------------|----------|-----------------|
      • countryCode: | OBRIGATÓRIO | String | Código do país | |-------------|----------|-----------------|
  • PARÂMETRO 2 e 3: deposit e withdraw: Informações de taxas de depósito e saque Tanto no deposit como no withdraw tem os parâmetros currencies, cryptocurrencies e blockchainNetworks.

    • currencies: Moedas fiduciárias
    • cryptocurrencies: Cripto moedas
    • blockchainNetworks: 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, cryptocurrencies e blockchainNetworks

    Isso 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 e value = 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.

try {
  const xgateSubCompany = new Xgate({
    email: "[email protected]",
    password: "********",
  });
  return await xgateSubCompany.subCompany.addFirstIP(
    "0000:0000:0000:0000:0000:0000:0000:0000"
  );
} catch (err) {
  return err;
}

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.

try {
  const xgateSubCompany = new Xgate({
    email: "[email protected]",
    password: "********",
  });
  return await xgateSubCompany.subCompany.addFirstWebhook({
    externalWebhookUrl: "https://www.mydomain.com/webhook",
    name: "Primeiro Webhook Test",
  });
} catch (err) {
  return err;
}

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: "********";
}