{"id":32168108,"url":"https://github.com/anderluiz/moip_ex","last_synced_at":"2025-10-21T15:45:31.872Z","repository":{"id":62429916,"uuid":"89518800","full_name":"AnderLuiz/moip_ex","owner":"AnderLuiz","description":"Lib em Elixir para lidar com o moip pagamentos","archived":false,"fork":false,"pushed_at":"2018-07-17T01:01:08.000Z","size":62,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-21T15:45:31.312Z","etag":null,"topics":["assinaturas","gateway","moip","pagamento","subscriptions"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/moip_ex","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnderLuiz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-26T19:27:29.000Z","updated_at":"2018-07-17T01:01:10.000Z","dependencies_parsed_at":"2022-11-01T20:04:20.450Z","dependency_job_id":null,"html_url":"https://github.com/AnderLuiz/moip_ex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AnderLuiz/moip_ex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnderLuiz%2Fmoip_ex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnderLuiz%2Fmoip_ex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnderLuiz%2Fmoip_ex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnderLuiz%2Fmoip_ex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnderLuiz","download_url":"https://codeload.github.com/AnderLuiz/moip_ex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnderLuiz%2Fmoip_ex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280290182,"owners_count":26305278,"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","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["assinaturas","gateway","moip","pagamento","subscriptions"],"created_at":"2025-10-21T15:45:26.045Z","updated_at":"2025-10-21T15:45:31.859Z","avatar_url":"https://github.com/AnderLuiz.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MoipEx\n\n[![Hex.pm](https://img.shields.io/hexpm/v/moip_ex.svg?style=plastic)](https://hex.pm/packages/moip_ex)\n[![Hex.pm](https://img.shields.io/hexpm/dt/moip_ex.svg?style=plastic)](https://hex.pm/packages/moip_ex)\n[![Travis](https://img.shields.io/travis/AnderLuiz/moip_ex.svg?style=plastic)](https://travis-ci.org/AnderLuiz/moip_ex)\n\nLib para lidar com o moip pagamentos. Até o momento somente com o Moip Assinaturas. https://dev.moip.com.br/v1.5/reference#introdução\n\n# Setup\n\nPara usar o moip_ex no seu projeto:\n\n\n# 1. Config\n\n```elixir\nconfig :moip_ex,\n  token: \"TOKEN\",\n  api_key: \"API_KEY\",\n  env: :sandbox  #ou env: :prod\n\n```\n\n# 2. Mix\n\n```elixir\ndef deps do\n  [{:moip_ex, \"~\u003e 0.3.0\"}]\nend\n```\n\n# 3. Exemplos de uso\n\nPara os exemplos a seguir, utilizaremos o Módulo `MoipEx.Example` para obter exemplos de planos, assinaturas, cupons, clientes, etc.\n\n\n## Planos\n\n#### Exemplo de plano\n\n```elixir\niex(1)\u003e MoipEx.Example.plan()\n%MoipEx.Plan{amount: 5440, billing_cycles: 8, code: \"PLAN_CODE\",\n description: \"Descricao do plano\", id: nil,\n interval: %MoipEx.Interval{length: 1, unit: \"MONTH\"}, max_qty: 500,\n name: \"Nome do plano\", payment_method: \"ALL\", setup_fee: 55726,\n status: \"ACTIVE\",\n trial: %MoipEx.Trial{days: 30, enabled: false, end: nil, hold_setup_fee: true,\n  start: nil}}\n```\nVeja documentação do módulo `MoipEx.Plan` para mais detalhes.\n\n\n### Listar planos\n```elixir\n  MoipEx.Plan.list()\n```\n\n### Criar planos\n```elixir\n  MoipEx.Plan.create(MoipEx.Example.plan(\"PLAN_CODE\"))\n```\n\n### Detalhes de um plano\n```elixir\n  MoipEx.Plan.get(\"PLAN_CODE\")\n```\n\n### Ativar um plano\n```elixir\n  MoipEx.Plan.activate(\"PLAN_CODE\")\n```\n\n### Desativar um plano\n```elixir\n  MoipEx.Plan.inactivate(\"PLAN_CODE\")\n```\n### Modificar um plano\n```elixir\n  MoipEx.Plan.change(MoipEx.Example.plan(\"PLAN_CODE\"))\n```\n\n## Clientes\n\n#### Exemplo de cliente\n\n```elixir\niex(1)\u003e MoipEx.Example.customer()\n%MoipEx.Customer{address: %MoipEx.Address{city: \"São Paulo\",\n  complement: \"Casa\", country: \"BRA\", district: \"Jardim Alemanha\",\n  number: \"332\", state: \"SP\", street: \"Rua Talbate\", zipcode: \"07343634\"},\n billing_info: %MoipEx.BillingInfo{credit_card: %MoipEx.CreditCard{brand: nil,\n   expiration_month: \"04\", expiration_year: \"27\", first_six_digits: nil,\n   holder_name: \"João da Silva\", last_four_digits: nil,\n   number: \"4111111111117756\", vault: nil}, credit_cards: nil},\n birthdate_day: \"12\", birthdate_month: \"06\", birthdate_year: \"1985\",\n code: \"cliente-46855\", cpf: \"38330516555\", email: \"email@cliente.com.br\",\n fullname: \"José Castro\", phone_area_code: \"11\", phone_number: \"123456789\"}\n\n```\nVeja documentação do módulo `MoipEx.Customer` para mais detalhes.\n\n### Criar cliente\n\n```elixir\n  MoipEx.Customer.create(MoipEx.Example.customer())\n```\n\n### Listar clientes\n\n```elixir\n  MoipEx.Customer.list()\n```\n\n### Obter cliente\n\n```elixir\n  MoipEx.Customer.get(\"CUSTOMER_CODE\")\n```\n\n### Alterar cliente\n\n```elixir\n  MoipEx.Customer.change(customer)\n```\n\n### Alterar cartao de credito\n\n```elixir\n  MoipEx.Customer.change_credit_card(\"CUSTOMER_CODE\", MoipEx.Example.billing_info)\n```\n\n## Assinaturas\n\n#### Exemplo de assinatura\n\n```elixir\niex(1)\u003e MoipEx.Example.subscription(plan)   \n%MoipEx.Subscription{_links: nil, amount: \"1400\", code: \"subscription-code\",\n coupon: nil, creation_date: nil,\n customer: %MoipEx.Customer{address: %MoipEx.Address{city: \"São Paulo\",\n   complement: \"Casa\", country: \"BRA\", district: \"Jardim Alemanha\",\n   number: \"332\", state: \"SP\", street: \"Rua Talbate\", zipcode: \"07343634\"},\n  billing_info: %MoipEx.BillingInfo{credit_card: %MoipEx.CreditCard{brand: nil,\n    expiration_month: \"04\", expiration_year: \"27\", first_six_digits: nil,\n    holder_name: \"João da Silva\", last_four_digits: nil,\n    number: \"4111111111111247\", vault: nil}, credit_cards: nil},\n  birthdate_day: \"12\", birthdate_month: \"06\", birthdate_year: \"1985\",\n  code: \"cliente-code\", cpf: \"38330516555\", email: \"email@cliente.com.br\",\n  fullname: \"José Castro\", phone_area_code: \"11\", phone_number: \"123456789\"},\n expiration_date: nil, next_invoice_date: nil, payment_method: \"CREDIT_CARD\",\n plan: %MoipEx.Plan{amount: 1400, billing_cycles: 0, code: \"plan-code\",\n  description: \"descricao do plano\", id: \"PLA-CGTZFCA6DCVI\",\n  interval: %MoipEx.Interval{length: 2, unit: \"MONTH\"}, max_qty: 0,\n  name: \"testedffd\", payment_method: \"CREDIT_CARD\", setup_fee: 0,\n  status: \"INACTIVE\",\n  trial: %MoipEx.Trial{days: 0, enabled: false, end: nil, hold_setup_fee: true,\n   start: nil}}, status: nil, trial: nil}\n```\nVeja documentação do módulo `MoipEx.Subscription` para mais detalhes.\n\n### Criar assinatura\n\n```elixir\n  new_customer = false # or true\n  MoipEx.Subscription.create(MoipEx.Example.subscription(plan), new_customer)\n```\n\n### Listar assinaturas\n\n```elixir\n  MoipEx.Subscription.list()\n```\n### Listar assinaturas por cliente\n\n```elixir\n  MoipEx.Subscription.list_by_customer(\"CUSTOMER_CODE\")\n```\n\n### Obter  assinatura\n\n```elixir\n  MoipEx.Subscription.get(\"SUBSCRIPTION_CODE\")\n```\n\n### Ativar assinatura\n\n```elixir\n  MoipEx.Subscription.activate(\"SUBSCRIPTION_CODE\")\n```\n\n### Suspender assinatura\n\n```elixir\n  MoipEx.Subscription.suspend(\"SUBSCRIPTION_CODE\")\n```\n\n### Cancelar assinatura\n\n```elixir\n  MoipEx.Subscription.cancel(\"SUBSCRIPTION_CODE\")\n```\n\n### Cancelar todas assinaturas de um cliente\n\n```elixir\n  MoipEx.Subscription.cancel_all_by_customer(\"CUSTOMER_CODE\")\n```\n\n## Cupons\n\n#### Exemplo de cupom\n\n```elixir\niex(1)\u003e MoipEx.Example.coupon()\n%MoipEx.Coupon{code: \"coupon-abc\", creation_date: nil,\n description: \"Novo cupom abc\",\n discount: %MoipEx.Discount{type: \"percent\", value: 1000},\n duration: %MoipEx.Duration{occurrences: 12, type: \"repeating\"},\n expiration_date: %MoipEx.Date{day: 26, month: 12, year: 2030}, in_use: nil,\n max_redemptions: 1000, name: \"coupon abc\", status: \"active\"}\n```\nVeja documentação do módulo `MoipEx.Coupon` para mais detalhes.\n\n### Criar cupom\n\n```elixir\n  MoipEx.Coupon.create(MoipEx.Example.coupon())\n```\n\n### Listar cupons\n\n```elixir\n  MoipEx.Coupon.list()\n```\n\n### Obter cupom\n\n```elixir\n  MoipEx.Coupon.get(\"COUPON_CODE\")\n```\n### Obter cupom de uma assinatura\n\n```elixir\n  MoipEx.Coupon.get_by_subscription(\"SUBSCRIPTION_CODE\")\n```\n\n### Ativar um cupom\n\n```elixir\n  MoipEx.Coupon.activate(\"COUPON_CODE\")\n```\n\n### Desativar um cupom\n```elixir\n  MoipEx.Coupon.inactivate(\"COUPON_CODE\")\n```\n\n\n## Faturas\n\nVeja documentação do módulo `MoipEx.Invoice` para mais detalhes\n\n\n### Listar por assinatura\n\n```elixir\n  MoipEx.Invoice.list_by_subscription(\"SUBSCRIPTION_CODE\")\n```\n\n### Obter fatura\n\n```elixir\n  invoice_id = 333333\n  MoipEx.Invoice.get(invoice_id)\n```\n\n### Retentativa de cobrança\n\n```elixir\n  invoice_id = 3333333\n  MoipEx.Invoice.retry(invoice_id)\n```\n\n\n## Pagamentos\n\nVeja documentação do módulo `MoipEx.Payment` para mais detalhes\n\n\n### Listar por fatura\n\n```elixir\n  invoice_id = 3333333\n  MoipEx.Payment.list_by_invoice(invoice_id)\n```\n\n### Obter pagamento\n\n```elixir\n  payment_id = 1111111\n  MoipEx.Payment.get(payment_id)\n```\n\n## Notificações\n\n[Veja um exemplo de controller para lidar com as notificações MOIP em examples/notifications.md ](notificacoes.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanderluiz%2Fmoip_ex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanderluiz%2Fmoip_ex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanderluiz%2Fmoip_ex/lists"}