{"id":25162937,"url":"https://github.com/themgoncalves/cielo","last_synced_at":"2025-08-03T15:34:10.357Z","repository":{"id":66058594,"uuid":"100375015","full_name":"themgoncalves/Cielo","owner":"themgoncalves","description":"💳 Cielo E-Commerce integration in C# .Net - Webservice 3.0","archived":false,"fork":false,"pushed_at":"2017-10-06T12:21:44.000Z","size":86,"stargazers_count":4,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T17:11:20.113Z","etag":null,"topics":["api","cielo","cielo-ecommerce","csharp","rest-api"],"latest_commit_sha":null,"homepage":"https://themgoncalves.github.io/Cielo/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themgoncalves.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-15T12:27:38.000Z","updated_at":"2022-12-05T22:21:58.000Z","dependencies_parsed_at":"2023-05-26T14:00:54.101Z","dependency_job_id":null,"html_url":"https://github.com/themgoncalves/Cielo","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themgoncalves%2FCielo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themgoncalves%2FCielo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themgoncalves%2FCielo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themgoncalves%2FCielo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themgoncalves","download_url":"https://codeload.github.com/themgoncalves/Cielo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251728485,"owners_count":21634229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","cielo","cielo-ecommerce","csharp","rest-api"],"created_at":"2025-02-09T03:30:55.878Z","updated_at":"2025-04-30T15:08:17.309Z","avatar_url":"https://github.com/themgoncalves.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![forthebadge](http://forthebadge.com/images/badges/built-with-love.svg)](http://forthebadge.com)\n[![forthebadge](http://forthebadge.com/images/badges/made-with-c-sharp.svg)](http://forthebadge.com)\n\n# Cielo E-Commerce [![Travis](https://travis-ci.org/themgoncalves/Cielo.svg)](https://travis-ci.org/themgoncalves/Cielo) \n\n[![GitHub issues](https://img.shields.io/github/issues/themgoncalves/Cielo.svg)](https://github.com/themgoncalves/Cielo/issues) [![GitHub stars](https://img.shields.io/github/stars/themgoncalves/Cielo.svg)](https://github.com/themgoncalves/Cielo/stargazers) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/themgoncalves/Cielo/master/LICENSE)\n\nIntegração com o Webservice 3.0 do [Cielo E-Commerce](http://developercielo.github.io/Webservice-3.0/).\nProjeto de demonstração na solução.\n\n\n## Suporte\n\nOs seguintes recursos do Webservice são suportados pela aplicação:\n\n* Transação Simples (Cartão de Crédito e Débito).\n\n* Transação Completa.\n\n* Transação com Autenticação.\n\n* Transação com Card Token.\n\n* ~~Transação com Análise de Fraude~~.\n\n* ~~Transação Recorrente~~.\n\n* ~~Transação com Boleto~~.\n\n* Transação com Transferência Eletrônica.\n\n* Consulta de transação.\n\n* Tokenização de Cartão - _Salvar cartão_ .\n\n* ~~Wallet/Carteiras~~.\n\n\n\n## Introdução\n\nExistem dois métodos para você utilizar este repositório.\n\n### Familiar com Git?\n\nBasta executar os comandos abaixos para iniciar:\n```\n\u003e git clone https://github.com/oforia/Cielo.git\n\u003e cd Cielo\n```\nE após finalizar, abrir a solução (_Cielo.sln_) com o Visual Studio\n\n### Não é Familiar com Git?\n\nNão tem problema, basta [Clicar aqui](https://github.com/oforia/Cielo/releases) para baixar o repositório em arquivo .zip e depois extrair em seu local favorito.\n\n\n## Configurações\n\n### Web.config ou App.config\n\nBasta você adicionar as seguintes chaves e substituir com seus valores na seção appSettings de seu Web.config ou App.config.\n\nNão possui credenciais para Sandbox? [Clique aqui](https://cadastrosandbox.cieloecommerce.cielo.com.br) para seu o seu.\n```xml\n  \u003cappSettings\u003e\n\n    \u003c!-- Cielo --\u003e\n    \u003c!--\n    *************************   DEV   *************************\n    \u003cadd key=\"cielo.endpoint.default\" value=\"https://apisandbox.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.endpoint.query\" value=\"https://apiquerysandbox.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.customer.id\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.customer.key\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.return.url\" value=\"/\" /\u003e\n\n    *************************   PROD   *************************\n    \u003cadd key=\"cielo.endpoint.default\" value=\"https://api.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.endpoint.query\" value=\"https://apiquery.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.customer.id\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.customer.key\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.return.url\" value=\"/\" /\u003e\n    --\u003e\n    \n    \u003cadd key=\"cielo.endpoint.default\" value=\"https://apisandbox.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.endpoint.query\" value=\"https://apiquerysandbox.cieloecommerce.cielo.com.br\" /\u003e\n    \u003cadd key=\"cielo.customer.id\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.customer.key\" value=\"\" /\u003e\n    \u003cadd key=\"cielo.return.url\" value=\"/\" /\u003e\n  \u003c/appSettings\u003e\n\n```\n\n\n### Na aplicação\n\nUtilize o código abaixo caso _queira personalizar_ os valores, se não a aplicação irá **procurar automaticamente pelas configurações** em seu Web.config ou App.config .\n\n```csharp\nusing Cielo.Configuration;\n//...\nCustomConfiguration configuration = new CustomConfiguration()\n{\n    DefaultEndpoint = ConfigurationManager.AppSettings[\"cielo.endpoint.default\"],\n    QueryEndpoint = ConfigurationManager.AppSettings[\"cielo.endpoint.query\"],\n    MerchantId = ConfigurationManager.AppSettings[\"cielo.customer.id\"],\n    MerchantKey = ConfigurationManager.AppSettings[\"cielo.customer.key\"],\n    ReturnUrl = ConfigurationManager.AppSettings[\"cielo.return.url\"],\n};\n\nCieloService cieloService = new CieloService(configuration);\n\n```\n\n# Documentação\n\nOs exemplos a seguir se aplicam na grande maioria dos casos, mas se mesmo assim precisar de algo diferente, basta ler a [Documentação da Cielo](http://developercielo.github.io/Webservice-3.0/) e personalizar as _models_ para envio.\n\n## Criando uma transação com cartão de crédito\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nvar customer = new Customer(\"John Doe\");\n\nvar creditCard = new CreditCard(\"0000.0000.0000.0001\",\n                                \"John Doe\",\n                                new CardExpiration(2020, 9), \"123\", CardBrand.Visa);\n\nvar payment = new Payment(PaymentType.CreditCard, 380.2m, 1, \"\", creditCard: creditCard);\n\nvar transaction = new TransactionRequest(\"128745\", customer, payment);\n\nvar cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CreateTransaction(transaction);\n    Console.WriteLine($\"Feito! Status: {response.Status}, Tid: {response.Tid}, PaymentId: {response.PaymentId}\"); //exemplo de retorno\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n## Criando uma transação com cartão de débito\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nvar customer = new Customer(\"John Doe\");\n\nvar debitCard = new DebitCard(\"0000.0000.0000.0001\",\n                              \"John Doe\",\n                              new CardExpiration(2017, 9), \"123\", CardBrand.Visa);\n\nvar payment = new Payment(PaymentType.DebitCard, 380.2m, 1, \"\", debitCard: debitCard, returnUrl: configuration.ReturnUrl);\n\nvar transaction = new TransactionRequest(\"128745\", customer, payment);\n\nvar cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CreateTransaction(transaction);\n    Console.WriteLine($\"Feito! Status: {response.Status}, Tid: {response.Tid}, PaymentId: {response.PaymentId}, AuthenticationUrl: {response.AuthenticationUrl}\"); //exemplo de retorno\n    //Você deve redirecionar o usuário para a URL fornecida no 'response.AuthenticationUrl'\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n## Criando uma transação com Card Token\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nvar customer = new Customer(\"John Doe\");\n\nvar creditCard = new CreditCard(\"6e1bf77a-b28b-4660-b14f-455e2a1c95e9\", \"123\", CardBrand.Visa); // \u003c-- basta informar o CardToken, SecurityCode e a Brand do cartão\n\nvar payment = new Payment(PaymentType.CreditCard, 380.2m, 1, \"\", creditCard: creditCard);\n\nvar transaction = new TransactionRequest(\"128745\", customer, payment);\n\nvar cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CreateTransaction(transaction);\n    Console.WriteLine($\"Feito! Status: {response.Status}, Tid: {response.Tid}, PaymentId: {response.PaymentId}\"); //exemplo de retorno\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n## Criando uma transferência eletrônica\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCustomer customer = new Customer(\"John Doe\");                        \n\nPayment payment = new Payment(PaymentType.EletronicTransfer, 100.00m, EletronicTransferProvider.BancodoBrasil, \"http://www.cielo.com.br/\");\n\nvar transaction = new TransactionRequest(\"14421\", customer, payment);\n\nvar cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CreateEletronicTransfer(transaction);\n    Console.WriteLine($\"Feito! Status: {response.Status}, PaymentId: {response.PaymentId}, Url: {response.Url}\"); //exemplo de retorno\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n## Cancelando uma transação\n\n\n### Cancelar total\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    //você possui duas opções de consulta\n    //1) através do MerchantOrderId;\n    //2) Ou pelo PaymentId\n    \n    var response = cieloService.CancelTransaction(merchantOrderId: \"123123\");    \n    //var response = cieloService.CancelTransaction(paymentId: Guid.Parse(\"55158bb3-2bb9-4e76-a92b-708b51245f4b\"));\n    \n    Console.WriteLine($\"Feito! Status: {response.Status}, Return Code: {response.ReturnCode}, ReturnMessage: {response.ReturnMessage}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n### Cancelar parcialmente\n\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    //você possui duas opções de consulta\n    //1) através do MerchantOrderId;\n    //2) Ou pelo PaymentId\n    \n    var response = cieloService.CancelTransaction(merchantOrderId: \"123123\", amount: 20.00m);    \n    //var response = cieloService.CancelTransaction(paymentId: Guid.Parse(\"55158bb3-2bb9-4e76-a92b-708b51245f4b\"), amount: 20.00m);\n    \n    Console.WriteLine($\"Feito! Status: {response.Status}, Return Code: {response.ReturnCode}, ReturnMessage: {response.ReturnMessage}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n## Capturando uma transação\n\n\n### Captura Total\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CaptureTransaction(Guid.Parse(\"55158bb3-2bb9-4e76-a92b-708b51245f4b\"));\n    Console.WriteLine($\"Feito! Status: {response.Status}, Return Code: {response.ReturnCode}, ReturnMessage: {response.ReturnMessage}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n\n### Captura Parcial\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    var response = cieloService.CaptureTransaction(Guid.Parse(\"55158bb3-2bb9-4e76-a92b-708b51245f4b\"), 20.00m); // \u003c-- basta informar o valor que deseja capturar\n    Console.WriteLine($\"Feito! Status: {response.Status}, Return Code: {response.ReturnCode}, ReturnMessage: {response.ReturnMessage}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n\n## Consultar Transação\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    //você possui duas opções de consulta\n    //1) através do MerchantOrderId;\n    //2) Ou pelo PaymentId\n    \n    var response = cieloService.CheckTransaction(merchantOrderId: \"14421\");\n    //var response = cieloService.CheckTransaction(paymentId: Guid.Parse(\"55158bb3-2bb9-4e76-a92b-708b51245f4b\"));\n    Console.WriteLine($\"Feito! ReasonCode: {response.ReasonCode}, ReasonMessage: {response.ReasonMessage}, Number of Payments made: {response.Payments.Count}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n\n## Salvando um Cartão\n\n```csharp\nusing Cielo.Enums;\nusing Cielo.Request.Entites;\nusing Cielo.Request.Entites.Common;\nusing Cielo.Responses.Exceptions;\n//...\n\nCieloService cieloService = new CieloService(configuration);\n\ntry\n{\n    var request = new CreditCardRequest(\"John Doe\", \"0000.0000.0000.0004\", \"John Doe\", new CardExpiration(2020,8), CardBrand.MasterCard);\n    var response = cieloService.SaveCard(request);\n    Console.WriteLine($\"Feito! CardToken: {response.CardToken}\");\n}\ncatch (ResponseException ex)\n{\n    //Erro personalizado das Requisições\n    //Error Id:       ex.ResponseError.Id\n    //Message:        ex.ResponseError.Message\n    //HttpStatusCode: ex.ResponseError.HttpStatusCode\n}\ncatch (Exception ex)\n{\n    //erros genéricos\n}\n```\n\n# Projeto de Demonstração\n\nAo abrir a solução (_Cielo.sln_) você encontrará um projeto chamado **Cielo.Demo**.\nPara executá-lo é simples, basta seguir os seguintes passos:\n1) Clicando o _botão direito_ do mouse em cima do projeto _Cielo.Demo_, clique em _Complilar_ ou _Recompilar_.\n2) Após, basta você abrir o _Prompt de Comando_ do Windows.\n3) Com o Prompt aberto, execute a seguinte instrução:\n```\n\u003e cd C:\\DIRETORIO_DO_MEU_PROJETO\\Cielo.Demo\\bin\\Debug\n\u003e Cielo.Demo.exe\n```\nOBS: Você deverá trocar o _DIRETORIO_DO_MEU_PROJETO_ pelo endereço do local de seu projeto.\n\nApós isso, você deverá ver a seguinte saída no prompt:\n\n```\nChoose an option to execute\n\nCommands available:\nall                 : Execute all available tests\ncancel              : Cancel a transaction\ncapture             : Capture a transaction\ncapture-partial     : Capture partially a transaction\ncheck               : Check a transaction\neletronic           : Create a new eletronic transfer\nnew                 : Create a new transaction\nnew-cardtoken       : Create a new transaction with a Card Token\nsavecard            : Salvar um Cartão de Crédito\n\n```\n\nE pronto! Para utilizar basta selecionar uma opção, por exemplo:\n\n```\n\u003e Cielo.Demo.exe all\n```\nou \n\n```\n\u003e Cielo.Demo.exe capture\n```\nou\n\n```\n\u003e Cielo.Demo.exe new\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemgoncalves%2Fcielo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemgoncalves%2Fcielo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemgoncalves%2Fcielo/lists"}