{"id":36549987,"url":"https://github.com/jattento/go-iso8583","last_synced_at":"2026-01-12T06:32:35.618Z","repository":{"id":45807028,"uuid":"264709366","full_name":"jattento/go-iso8583","owner":"jattento","description":"An easy to use, yet flexible marshaler for ISO-8583","archived":false,"fork":false,"pushed_at":"2025-01-24T23:15:07.000Z","size":116,"stargazers_count":26,"open_issues_count":0,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T00:20:31.188Z","etag":null,"topics":["go","golang","iso8583","marshal","payments"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jattento.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE.txt","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,"publiccode":null,"codemeta":null}},"created_at":"2020-05-17T16:25:57.000Z","updated_at":"2025-01-24T23:15:10.000Z","dependencies_parsed_at":"2024-06-19T01:46:24.339Z","dependency_job_id":"08d6faf0-d2cf-4ab4-8d6e-4fedda3b77d3","html_url":"https://github.com/jattento/go-iso8583","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/jattento/go-iso8583","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jattento%2Fgo-iso8583","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jattento%2Fgo-iso8583/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jattento%2Fgo-iso8583/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jattento%2Fgo-iso8583/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jattento","download_url":"https://codeload.github.com/jattento/go-iso8583/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jattento%2Fgo-iso8583/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["go","golang","iso8583","marshal","payments"],"created_at":"2026-01-12T06:32:33.633Z","updated_at":"2026-01-12T06:32:35.612Z","avatar_url":"https://github.com/jattento.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![codecov](https://codecov.io/gh/jattento/go-iso8583/branch/master/graph/badge.svg)](https://codecov.io/gh/jattento/go-iso8583)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Last release](https://img.shields.io/github/v/release/jattento/go-iso8583?style=plastic)](https://github.com/jattento/go-iso8583/releases)\n\n\u003cimg align=\"right\" width=\"200px\" src=\"https://raw.githubusercontent.com/jattento/go-iso8583-logo/main/iso%20gopher.png\"\u003e\n\nAn easy to use, yet flexible marshaler for ISO-8583.\n\nAPI [godoc](https://godoc.org/github.com/jattento/go-iso8583/pkg/iso8583) documentation.\n\nThis library provides:\n- Marshal and Unmarshal functions with his respective interfaces\nincluding MTI, VAR, LLVAR, LLLVAR and bitmaps fields ready for use\nbut with the possibility to easily add new field types.\n- Inbuid Support for ASCII and EBCDIC but not limited to them\n\n\n## Installation\n\nTo install go-iso8583 package, you need to install Go and set your Go workspace first.\n\n1. First you need [Go](https://golang.org/) installed, then you can use the below Go command to install go-iso8583.\n```sh\n$ go get -u github.com/jattento/go-iso8583/iso8583\n```\n\n2. Import it in your code:\n```go\nimport \"github.com/jattento/go-iso8583/pkg/iso8583\"\n```\n\n## Quick start\n\nThe API of this package is inspired in the go native json package\ntherefore it's pretty intuitive to use. Take a look at this!\n\n```go\nimport \"github.com/jattento/go-iso8583/pkg/iso8583\"\n\ntype exampleMessage struct {\n\tMessageTypeIdentifier                     iso8583.MTI       `iso8583:\"mti,length:4,encoding:ebcdic\"`\n\tBitmap                                    iso8583.BITMAP    `iso8583:\"bitmap\"`\n\tSecondaryBitmap                           iso8583.BITMAP    `iso8583:\"1,omitempty\"`\n\tPrimaryAccountNumber                      iso8583.LLVAR     `iso8583:\"2,length:64,encoding:ebcdic,omitempty\"`\n\tProcessingCode                            iso8583.VAR       `iso8583:\"3,length:6,encoding:ebcdic,omitempty\"` \n\tAmountTransaction                         iso8583.VAR       `iso8583:\"4,length:12,encoding:ebcdic,omitempty\"`\n\tAmountSettlement                          iso8583.VAR       `iso8583:\"5,length:12,encoding:ebcdic,omitempty\"`\n\tAmountCardholderBilling                   iso8583.VAR       `iso8583:\"6,length:12,encoding:ebcdic,omitempty\"`\n\tAcquiringInstitutionIDCode                iso8583.LLVAR     `iso8583:\"32,length:11,encoding:ebcdic,omitempty\"`\n\tForwardingInstitutionIDCode               iso8583.LLVAR     `iso8583:\"33,length:11,encoding:ebcdic,omitempty\"`\n\tPrimaryAccountNumberExtended              iso8583.LLVAR     `iso8583:\"34,length:28,encoding:ebcdic,omitempty\"`\n\tTrack2Data                                iso8583.LLVAR     `iso8583:\"35,length:37,encoding:ebcdic,omitempty\"`\n\tTrack3Data                                iso8583.LLLVAR    `iso8583:\"36,length:104,encoding:ebcdic,omitempty\"`\n\tAdditionalResponseData                    iso8583.LLVAR     `iso8583:\"44,length:25,encoding:ebcdic,omitempty\"`\n\tTrack1Data                                iso8583.LLVAR     `iso8583:\"45,length:76,encoding:ebcdic,omitempty\"`\n\tExpandedAdditionalAmounts                 iso8583.LLLVAR    `iso8583:\"46,length:999,encoding:ebcdic,omitempty\"`\n\tAdditionalDataNationalUse                 iso8583.LLLVAR    `iso8583:\"47,length:999,encoding:ebcdic,omitempty\"`\n\tAdditionalDataPrivateUse                  iso8583.LLLVAR    `iso8583:\"48,length:999,encoding:ebcdic,omitempty\"`\n\tCurrencyCodeTransaction                   iso8583.VAR       `iso8583:\"49,length:3,encoding:ebcdic,omitempty\"`\n\tCurrencyCodeSettlement                    iso8583.VAR       `iso8583:\"50,length:3,encoding:ebcdic,omitempty\"`\n\tCurrencyCodeCardholderBilling             iso8583.VAR       `iso8583:\"51,length:3,encoding:ebcdic,omitempty\"`\n\tPersonalIDNumberData                      iso8583.BINARY    `iso8583:\"52,length:8,omitempty\"`\n\tSecurityRelatedControlInformation         iso8583.VAR       `iso8583:\"53,length:16,encoding:ebcdic,omitempty\"`\n\tAdditionalAmounts                         iso8583.LLLVAR    `iso8583:\"54,length:120,encoding:ebcdic,omitempty\"`\n\tIntegratedCircuitCardSystemRelatedData    iso8583.LLLBINARY `iso8583:\"55,length:999,encoding:ebcdic,omitempty\"`\n\tMessageSecurityCode                       iso8583.VAR       `iso8583:\"96,length:8,encoding:ebcdic,omitempty\"`\n}\n```\n\n```go\nfunc GenerateStaticReqBytes() ([]byte, error) {\n\treq := exampleMessage{\n\t\tMTI: \"0100\",\n\t\t// FirstBitmap is generated by library\n\t\t// SecondBitmap is generated by library\n\t\tPAN: \"54000000000000111\", // LL part is added by library!\n\t\tProcessingCode: \"1000\",\n\t\tAmount: \"000000000100\",\n\t\tMessageNumber: \"1\",\n\t}\n\t\n\tbyt, err := iso8583.Marshal(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn byt, nil\n}\n```\n\n```go\nimport \"github.com/jattento/go-iso8583/pkg/iso8583\"\n\nfunc ReadResp(byt []byte) (exampleMessage,error){\n\tvar resp exampleMessage\n\n\t_, err :=iso8583.Unmarshal(byt,\u0026resp)\n\tif err != nil{\n\t\treturn exampleMessage{}, err\n\t}\n\n\treturn resp,nil\n}\n```\n\n### [Changelog](changelog.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjattento%2Fgo-iso8583","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjattento%2Fgo-iso8583","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjattento%2Fgo-iso8583/lists"}