{"id":13809286,"url":"https://github.com/omise/omise-elixir","last_synced_at":"2026-02-18T09:40:41.095Z","repository":{"id":62430157,"uuid":"62610235","full_name":"omise/omise-elixir","owner":"omise","description":"Omise Client Library for Elixir","archived":false,"fork":false,"pushed_at":"2025-10-16T08:42:44.000Z","size":522,"stargazers_count":9,"open_issues_count":0,"forks_count":8,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-10-17T06:36:25.300Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.opn.ooo","language":"Elixir","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"lowks/omistry","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omise.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-07-05T06:06:16.000Z","updated_at":"2025-10-16T08:15:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"b43b3a22-7a5e-4085-ae11-545e46d2a17e","html_url":"https://github.com/omise/omise-elixir","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/omise/omise-elixir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omise%2Fomise-elixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omise%2Fomise-elixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omise%2Fomise-elixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omise%2Fomise-elixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omise","download_url":"https://codeload.github.com/omise/omise-elixir/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omise%2Fomise-elixir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29574979,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-08-04T01:02:15.151Z","updated_at":"2026-02-18T09:40:36.080Z","avatar_url":"https://github.com/omise.png","language":"Elixir","funding_links":[],"categories":["Third Party APIs"],"sub_categories":[],"readme":"# Omise Elixir Client\n\n[![Build Status](https://github.com/omise/omise-elixir/actions/workflows/pipeline.yml/badge.svg)](https://github.com/omise/omise-elixir/actions/workflows/pipeline.yml)\n[![Hex.pm](https://img.shields.io/hexpm/v/omise.svg?style=flat-square)](https://hex.pm/packages/omise)\n[![Coverage Status](https://coveralls.io/repos/github/omise/omise-elixir/badge.svg?branch=master)](https://coveralls.io/github/omise/omise-elixir?branch=master)\n\n**Opn Payments for Elixir**\n\n## Installation\n\nFirst, add `omise` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [{:omise, \"~\u003e 0.11.0\"}]\nend\n```\n\nThen update your dependencies with:\n\n```shell\n$ mix deps.get\n```\n\n## Configuration\n\nSet the following configuration variables in `config/config.exs`:\n\n```elixir\nconfig :omise,\n  public_key: \"pkey_test_xxx\",\n  secret_key: \"skey_test_xxx\"\n```\n\nOr manually configure at runtime:\n\n```elixir\nOmise.configure(public_key: \"pkey_test_xxx\", secret_key: \"skey_test_xxx\")\n```\n\nTo configure the HTTP options, you could optionally add the `:http_options` key to the Opn Payments configuration. For a full list of the available options, please check [HTTPoison documentation](https://github.com/edgurgel/httpoison).\n\n```elixir\nconfig :omise,\n  http_options: [timeout: 60_000, recv_timeout: 60_000]\n```\n\n## Example\n\n```elixir\ncharge_params = [amount: 100_00, currency: \"thb\", card: \"tokn_xxx\"]\n\nwith {:ok, %Omise.Charge{paid: true}} \u003c- Omise.Charge.create(charge_params) do\n  # handle success\n  IO.puts \"Thank you :)\"\nelse\n  {:ok, %Omise.Charge{failure_code: failure_code}} -\u003e\n    # handle failure\n\n  {:error, %Omise.Error{code: code, message: message}} -\u003e\n    # handle error\nend\n```\n\nYou can also set a per-request key and API version when making an API call:\n\n```elixir\nOmise.Charge.list([], key: \"skey_test_xxx\", api_version: \"2015-11-17\")\n\nOmise.Charge.retrieve(\"chrg_test_4yq7duw15p9hdrjp8oq\", key: \"skey_test_xxx\")\n\nOmise.Charge.create([\n  amount: 1000_00,\n  currency: \"thb\",\n  customer: \"cust_test_xxx\"\n], key: \"skey_test_xxx\")\n```\n\n# Passkey Integration\n\nThe Omise Elixir SDK supports Passkey authentication for enhanced security and user experience. Passkey provides a passwordless authentication method that uses biometric authentication or device PINs, making payments more secure and convenient for users.\n\n## Prerequisites\n\nBefore implementing Passkey authentication:\n\n- Ensure your Omise account supports Passkey authentication\n- Configure your frontend to collect proper card holder data (email/phoneNumber)\n\n## Implementation\n\n### Requesting Cardholder Data\n\nTo use Passkey authentication, you must request cardholder data fields (email or phone number) during the payment process on the frontend. This information is required for the backend Passkey authentication setup.\n\n### Creating a Passkey Charge\n\nOnce you have created a token on the frontend that includes the email/phoneNumber of the user, you can now use this token to create a passkey charge.\nTo create a passkey charge you must set the `authentication` field in the charge request to `PASSKEY`. This will trigger the required flows and you will also be able to check the `authenticated_by` field in the charge response in order to check the actual authentication method. Here is an example code for creating a charge with the passkey flow:\n\n```elixir\nOmise.Charge.create(\n        amount: 10_000,\n        currency: \"thb\",\n        card: token.id,\n        capture: true,\n        return_uri: \"https://www.example.com/complete\",\n        authentication: \"PASSKEY\"\n      )\n```\n\n## Development\n\n- Install all dependencies with `mix deps.get`\n- Run tests with `mix test`\n\n## Documentation\n\n- [https://hexdocs.pm/omise/api-reference.html](https://hexdocs.pm/omise/api-reference.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomise%2Fomise-elixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomise%2Fomise-elixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomise%2Fomise-elixir/lists"}