{"id":18429664,"url":"https://github.com/nayibor/iso8583_erl","last_synced_at":"2025-04-07T17:33:11.813Z","repository":{"id":57508640,"uuid":"89759589","full_name":"nayibor/iso8583_erl","owner":"nayibor","description":"erlang codec for iso8583 financial message protocol","archived":false,"fork":false,"pushed_at":"2024-02-12T16:33:41.000Z","size":170,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-06T00:02:12.515Z","etag":null,"topics":["elixir","erlang","fintech","iso8583","payment-processing"],"latest_commit_sha":null,"homepage":"https://nayibor.github.io/posts/using-iso8583_erl-library/","language":"Erlang","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/nayibor.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"dei":null}},"created_at":"2017-04-29T02:47:50.000Z","updated_at":"2024-05-01T22:25:18.000Z","dependencies_parsed_at":"2024-02-12T17:38:11.033Z","dependency_job_id":null,"html_url":"https://github.com/nayibor/iso8583_erl","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/nayibor%2Fiso8583_erl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayibor%2Fiso8583_erl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayibor%2Fiso8583_erl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayibor%2Fiso8583_erl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nayibor","download_url":"https://codeload.github.com/nayibor/iso8583_erl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247698008,"owners_count":20981288,"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":["elixir","erlang","fintech","iso8583","payment-processing"],"created_at":"2024-11-06T05:18:11.976Z","updated_at":"2025-04-07T17:33:11.556Z","avatar_url":"https://github.com/nayibor.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"iso8583_erl\n=====\n\nAn erlang library for processing iso8583 messages inspired by [erl8583],[jpos library].\n\nThis is a minimalist library for  packing and unpacking iso8583 financial messages.\n\nIt accepts a specification file which contains information about fields,mti,bitmap  for your interchange.\n\nIt then uses those specifications to then pack and unpack iso messages for your interchange.\n\nThe specification can be loaded once and then used for all packing and unpacking operations\n\n\n## usage ##\n\nthe library can be used by putting the following in your rebar.config or mix.exs\n\nrebar.config\n```erlang\n{iso8583_erl,{git,\"https://github.com/nayibor/iso8583_erl.git\",{tag,\"0.4.1\"}}}\n```\n\nmix.exs\n```elixir\n{:iso8583_erl, \"~\u003e 0.4.1\"}\n```\n\n\n## quickstart ##\n```erlang\n\n%set mti\n\tSpecification = iso8583_erl:load_specification(code:priv_dir(iso8583_erl)++\"/custom.cfg\"),\n\t{ok,First_map} = iso8583_erl:set_mti(maps:new(),\u003c\u003c\"0200\"\u003e\u003e),\n\n\n%set field\n\t{ok,Second_map} = iso8583_erl:set_field(First_map,3,\u003c\u003c\"201234\"\u003e\u003e),\n\n\n%pack_data\n\t%%one way to pack data\n\t{ok,First_map} = iso8583_erl:set_mti(maps:new(),\u003c\u003c\"0200\"\u003e\u003e),\n\t{ok,Second_map} = iso8583_erl:set_field(First_map,3,\u003c\u003c\"201234\"\u003e\u003e),\n\t{ok,Third_map} = iso8583_erl:set_field(Second_map,4,\u003c\u003c\"4.5\"\u003e\u003e),\n\t{ok,Fourth_map} = iso8583_erl:set_field(Third_map,5,\u003c\u003c\"5000\"\u003e\u003e),\n\t{ok,Fifth_map} = iso8583_erl:set_field(Fourth_map,102,\u003c\u003c\"123413243\"\u003e\u003e),\n\t{ok,Six_map} = iso8583_erl:set_field(Fifth_map,103,\u003c\u003c\"12897979987\"\u003e\u003e),\n\t[Mti,Bitmap_final_bit,Fields_list] = iso8583_erl:pack(Six_map,Specification),\n\t%another way to pack data\n\tMap_send_list = iso8583_erl:set_field_list([{mti,\u003c\u003c\"0200\"\u003e\u003e},{3,\u003c\u003c\"201234\"\u003e\u003e},{4,\u003c\u003c\"4.5\"\u003e\u003e},{5,\u003c\u003c\"5000\"\u003e\u003e},{102,\u003c\u003c\"123413243\"\u003e\u003e},{103,\u003c\u003c\"12897979987\"\u003e\u003e}]),\n\t[Mti,Bitmap_final_bit,Fields_list] = iso8583_erl:pack(Map_send_list,Specification).\n\n\n%unpack data\n\t{ok,First_map} = iso8583_erl:set_mti(maps:new(),\u003c\u003c\"0200\"\u003e\u003e),\n\t{ok,Second_map} = iso8583_erl:set_field(First_map,3,\u003c\u003c\"001234\"\u003e\u003e),\n\t{ok,Third_map} = iso8583_erl:set_field(Second_map,4,\u003c\u003c\"123456789012\"\u003e\u003e),\n\t{ok,Fourth_map} = iso8583_erl:set_field(Third_map,5,\u003c\u003c\"123456789012\"\u003e\u003e),\n\t[Mti,Bitmap_final_bit,Fields_list] = iso8583_erl:pack(Fourth_map,Specification),\n\tFinal_fields = [Mti,Bitmap_final_bit,Fields_list],\n\tMap_data = #{3 =\u003e \u003c\u003c\"001234\"\u003e\u003e,4 =\u003e \u003c\u003c\"123456789012\"\u003e\u003e,5 =\u003e \u003c\u003c\"123456789012\"\u003e\u003e,\n    bit =\u003e \u003c\u003c\"3800000000000000\"\u003e\u003e,mti =\u003e \u003c\u003c\"0200\"\u003e\u003e},\n\t?assertEqual(true,Map_data =:= iso8583_erl:unpack(Final_fields,Specification)).\n\n```\n\n## to create documentation ##\n\nto create documentation run command below \n```erlang\nrebar3 ex_doc\n```\n\n\nmore examples of usage can be found in  ```test/iso8583_erl_SUITE.erl```\n\n\n## acknowledgements ##\ni wish to thank the creators of the jpos library from which gave a lot of great ideas.\n\ni also wish to thank the creators of erl8583 library which gave a lot of excellent ideas.\n\n[erl8583]: https://github.com/mgwidmann/erl8583\n[jpos library]: https://github.com/jpos/jPOS\n[hex]: https://hex.pm/packages/iso8583_erl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayibor%2Fiso8583_erl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnayibor%2Fiso8583_erl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayibor%2Fiso8583_erl/lists"}