1.4.1 • Published 2 months ago

@petbee/cielo-client v1.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

cielo

Client para a API 3.0 da Cielo em Typescript/Nodejs

MIT license Build Status Known Vulnerabilities codebeat badge JavaScript Style Guide Open Source Love svg2

Índice

Início

Cartão de Crédito

Cartão de Débito

Boleto

Cartões

Consultas

API Reference

Testes

Autor

License

Installation

npm install --save cielo

Como utilizar?

Iniciando

import { CieloConstructor, Cielo } from 'cielo'

const cieloParams: CieloConstructor = {
  merchantId: 'xxxxxxxxxxxxxxxxxxxxxxx',
  merchantKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
  requestId: 'xxxxxxx', // Opcional - Identificação do Servidor na Cielo
  sandbox: true, // Opcional - Ambiente de Testes
  debug: true, // Opcional - Exibe os dados enviados na requisição para a Cielo
}

const cielo = new Cielo(cieloParams)

Paramêtros de criação

CampoDescriçãoObrigatório?Default
merchantIdIdentificador da loja na Cielo.Simnull
merchantKeyChave publica para autenticação dupla na Cielo.Simnull
requestIdIdentificador do Request, utilizado quando o lojista usa diferentes servidores para cada GET/POST/PUT.Nãonull
sandboxAmbiente de testes da CieloNãofalse
debugExibe requisição da transação no consoleNãofalse

Cartão de Crédito

Criando uma transação

Usando Promise

const vendaParams: TransactionCreditCardRequestModel = {
  customer: {
    name: 'Comprador crédito',
  },
  merchantOrderId: '2014111703',
  payment: {
    amount: 10000, // R$100,00
    creditCard: {
      brand: EnumBrands.VISA,
      cardNumber: '4532117080573700',
      holder: 'Comprador T Cielo',
      expirationDate: '12/2021',
    },
    installments: 1,
    softDescriptor: 'Banzeh',
    type: EnumCardType.CREDIT,
    capture: false,
  },
}

cielo.creditCard
  .transaction(dadosSale)
  .then((data) => {
    return console.log(data)
  })
  .catch((err) => {
    return console.error('ERRO', err)
  })

Ou usando Async / Await

const transaction = await cielo.creditCard.transaction(dadosSale)
console.log(transaction)

Capturando uma venda

const capturaVendaParams: CaptureRequestModel = {
  paymentId: '24bc8366-fc31-4d6c-8555-17049a836a07',
  amount: 2000, // Caso o valor não seja definido, captura a venda no valor total
}

cielo.creditCard
  .captureSaleTransaction(capturaVendaParams)
  .then((data) => {
    return console.log(data)
  })
  .catch((err) => {
    return console.error('ERRO', err)
  })

Cancelando uma venda

const cancelamentoVendaParams: CancelTransactionRequestModel = {
    paymentId: '24bc8366-fc31-4d6c-8555-17049a836a07',
    amount: 100, // Caso o valor não seja definido, cancela a venda no valor total
};

cielo.creditCard.cancelTransaction(cancelamentoVendaParams)
    .then((data) => {
        return console.log(data);
    })
    .catch((err) => {
        return console.error('ERRO', err);
    })

Ou usando Async / Await

const cancel = await cielo.creditCard.cancelSale(dadosSale)
console.log(cancel)

Cartão de Débito

Criando uma venda simplificada

const debitCardTransactionParams: DebitCardSimpleTransactionRequestModel = {
  merchantOrderId: '2014121201',
  customer: {
    name: 'Paulo Henrique',
  },
  payment: {
    type: EnumCardType.DEBIT,
    amount: 15700,
    provider: 'Simulado',
    returnUrl: 'http://www.google.com.br',
    debitCard: {
      cardNumber: '4532117080573703',
      holder: 'Teste Holder',
      expirationDate: '12/2022',
      securityCode: '023',
      brand: EnumBrands.VISA,
    },
  },
}

cielo.debitCard
  .createSimpleTransaction(debitCardTransactionParams)
  .then((data) => {
    return console.log(data)
  })
  .catch((err) => {
    return console.error('ERRO', err)
  })

Boleto

Criando uma venda de Boleto

const boletoParams: BankSlipCreateRequestModel = {
  merchantOrderId: '20180531',
  customer: {
    name: 'Comprádor Boleto Cíéló Áá',
    identity: '1234567890',
    address: {
      street: 'Avenida Marechal Câmara',
      number: '160',
      complement: 'Sala 934',
      zipCode: '22750012',
      district: 'Centro',
      city: 'Rio de Janeiro',
      state: 'RJ',
      country: 'BRA',
    },
  },
  payment: {
    type: 'Boleto',
    amount: 15700,
    provider: 'Bradesco2',
    address: 'Rua Teste',
    boletoNumber: '123',
    assignor: 'Empresa Teste',
    demonstrative: 'Desmonstrative Teste',
    expirationDate: '5/1/2020',
    identification: '11884926754',
    instructions: 'Aceitar somente até a data de vencimento, após essa data juros de 1% dia.',
  },
}

cielo.bankSlip
  .create(boletoParams)
  .then((data) => {
    return console.log(data)
  })
  .catch((err) => {
    return console.error('ERRO', err)
  })

Cartões

Gerando o token de cartão

const tokenParams: TokenizeRequestModel = {
  customerName: 'Comprádor Teste Cíéló Áá',
  cardNumber: '5555666677778884',
  holder: 'Comprador T Cielo',
  expirationDate: '12/2021',
  brand: brand as EnumBrands,
}

cielo.card
  .createTokenizedCard(tokenParams)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Validando cartão com Zero Auth

const zeroAuthParams: ZeroAuthRequestModel = {
  cardType: EnumCardType.CREDIT,
  cardNumber: '5555666677778884',
  holder: 'Comprador T Cielo',
  expirationDate: '12/2021',
  securityCode: '262',
  brand: brand as EnumBrands,
}

cielo.card
  .zeroAuth(zeroAuthParams)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Consultas

Consulta Transação usando PaymentId

const consultaParams: ConsultTransactionPaymentIdRequestModel = {
  paymentId: '24bc8366-fc31-4d6c-8555-17049a836a07',
}

cielo.consult
  .paymentId(consultaParams)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Consultando as transações usando MerchandOrderID

const consultaParamsMerchantOrderId: ConsultTransactionMerchantOrderIdRequestModel = {
  merchantOrderId: '2014111706',
}

cielo.consult
  .merchantOrderId(consultaParamsMerchantOrderId)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Consulta de Cardbin

const consultaBinNacionalParams: ConsultBinRequestModel = {
  cardBin: '453211',
}

cielo.consult
  .bin(consultaBinNacionalParams)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

Consulta de cartão Tokenizado

const consultaCartaoTokenizadoParams: ConsultTokenRequestModel = {
  cardToken: '66b2c162-efbf-4692-aee5-e536c0f81037',
}

cielo.consult
  .cardtoken(consultaCartaoTokenizadoParams)
  .then((data) => {
    console.log(data)
  })
  .catch((err) => {
    console.log(err)
  })

API Reference

Consulte os campos necessários na documentação da Cielo

PT-Br

En

Testes

Para rodar os testes automatizados, apenas execute o seguinte comando

npm test

Também é possível verificar o histórico de builds através do Travis CI

Autor

Flavio Takeuchi [flavio@banzeh.com.br](mailto:flavio@banzeh.com.br)

Github

Twitter

License

MIT License

Copyright (c) 2017 banzeh

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.2.0

2 months ago

1.4.1

2 months ago

1.4.0

2 months ago

1.3.0

2 months ago

1.1.1

4 months ago

1.1.0

4 months ago

1.0.0

5 months ago