{"id":20279893,"url":"https://github.com/goodmeasuresllc/trizetto-api","last_synced_at":"2025-10-07T14:59:02.545Z","repository":{"id":51247689,"uuid":"116999313","full_name":"GoodMeasuresLLC/trizetto-api","owner":"GoodMeasuresLLC","description":"Ruby wrapper for Trizetto APIs","archived":false,"fork":false,"pushed_at":"2021-05-19T07:17:00.000Z","size":110,"stargazers_count":4,"open_issues_count":4,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-12T16:56:54.812Z","etag":null,"topics":["insurance-eligibility","ruby","soap-client","x12"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/GoodMeasuresLLC.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-10T19:08:45.000Z","updated_at":"2024-05-31T03:45:16.000Z","dependencies_parsed_at":"2022-08-28T07:40:50.907Z","dependency_job_id":null,"html_url":"https://github.com/GoodMeasuresLLC/trizetto-api","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/GoodMeasuresLLC/trizetto-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodMeasuresLLC%2Ftrizetto-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodMeasuresLLC%2Ftrizetto-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodMeasuresLLC%2Ftrizetto-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodMeasuresLLC%2Ftrizetto-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoodMeasuresLLC","download_url":"https://codeload.github.com/GoodMeasuresLLC/trizetto-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodMeasuresLLC%2Ftrizetto-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278794401,"owners_count":26046968,"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-07T02:00:06.786Z","response_time":59,"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":["insurance-eligibility","ruby","soap-client","x12"],"created_at":"2024-11-14T13:33:36.579Z","updated_at":"2025-10-07T14:59:02.527Z","avatar_url":"https://github.com/GoodMeasuresLLC.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trizetto::Api\n\n[![Build Status](https://travis-ci.org/GoodMeasuresLLC/trizetto-api.svg?branch=master)](https://travis-ci.org/GoodMeasuresLLC/trizetto-api)\n\nRuby wrapper for Trizetto APIs for Ruby 2.3 and above.\n\n## Installation\n\n\u003cb\u003eRequires Ruby 2.3 or above\u003c/b\u003e\n\nAdd this line, and maybe some others, to your application's Gemfile:\n\n```ruby\ngem 'trizetto-api'\n\n# Savon-multipart is used in the CORE II API. savon-multipart 2.1.1 has the\n# mail gem, pinned to exactly 2.5.4.  As of Jan 18, 2018, there is an\n# unreleased version that uses ~\u003e 2.6.  Depending on your existing gems\n# you may need to add an explicit dependency on savon-multipart if bundle\n# install fails with a mail gem dependency.\n#\n# You can savon-multipart, or use git diretly with one of the below\n#\n# savon-multipart as of Jan 18, 2018:\n# gem 'savon-multipart', git: \"git@github.com:savonrb/savon-multipart.git\", ref: 'd9a138b6c166cd7c30c28e8888ff19011f8ec071'\n#\n# live on the edge\n# gem 'savon-multipart', git: \"git@github.com:savonrb/savon-multipart.git\", branch: :master\n#\n# Your fork?\n# gem 'savon-multipart', git: \"git@github.com:YOU/savon-multipart.git\"\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install trizetto-api\n\n## Usage\n\n### Use the Eligibility Web Service with an XML payload to check eligibility in realtime\n\n#### Fields\n\nThe Eligibility Web Service is poorly documented in the [Eligibility Web Service Companion Guide](https://mytools.gatewayedi.com/Help/documents/Eligibility/Realtime%20Eligibility%20Webservice%20Companion%20Guide.pdf).\n\nThe fields listed below are copied from the documentation and can be used to perform eligibility checks.\n\n|Field| Description | Requirement |\n|--|--|--|\n| `GediPayerID` | The GEDI specific payer identifier | Always |\n| `ProviderFirstName`  | Provider First Name | Required when individual provider name is sent in the inquiry |\n| `ProviderLastName`   | Provider Last Name/Organization Name | |\n| `NPI`                | National Provider Identifier  | |\n| `InsuredFirstName`   | Subscriber First Name | Required when the patient is the subscriber or if the Payer requires this information to identify the patient. |\n| `InsuredLastName`    | Subscriber Last Name | Required when the patient is the subscriber or if the Payer requires this information to identify the patient |\n| `InsuranceNum`       |  | Required when the payer needs this information to identify patient. |\n| `InsuredDob`         | Subscriber Date of birth (YYYYMMDD) | Required when the payer needs this information to identify patient. |\n| `InsuredGender`      | Subscriber Gender (M) or (F) | Required when the payer needs this information to identify patient. |\n| `ServiceTypeCode`    | Health Care Financing Administration Common Procedural Coding System Code | |\n| `DependentFirstName` | Dependent First Name | |\n| `DependentLastName`  | Dependent Last Name | |\n| `DependentDob`       | Dependent Date of Birth (YYYYMMDD) | |\n| `DependentGender`    | Dependent Gender (M) or (F) | |\n| `DateOfService`      | Date of service to check for eligibiltiy (YYYYMMDD). **This field is not documented**  | |\n\n#### Example\nThis uses name/value pairs in a request and returns an XML docunment as a response.\n\nTo simply check if the patient is covered by a health plan\n\n```ruby\nresponse = client.do_inquiry({...})\nresponse.active_coverage_for?(service_type_code = \"30\")  #=\u003e true | false\n```\n\n```ruby\nrequire 'trizetto/api'\n\nTrizetto::Api.configure do |config|\n  config.username = ENV['TRIZETTO_USERNAME']\n  config.password = ENV['TRIZETTO_PASSWORD']\nend\n\nclient = Trizetto::Api::Eligibility::WebService::Client.new({\n  # You probably don't want logging enable unless you are being very careful to protect PHI in logs\n  # pretty_print_xml: true,\n  # log: true,\n  # log_level: :debug,\n})\n\nresponse = client.do_inquiry({\n  'ProviderLastName': 'YOUR_COMPANY_NAME',\n  'NPI':              'YOUR NPI HERE',\n  'InsuredFirstName': 'Mickey',\n  'InsuredLastName':  'Mouse',\n  'InsuredDob':       '19281118',\n  'GediPayerId':      'N4222',\n})\n\n\n\n# Were there validation errors with the request?\nresponse.success?                                          # =\u003e false\nresponse.success_code                                      # =\u003e \"ValidationFailure\"\nresponse.errors.messages                                   # =\u003e [\"Please enter InsuranceNum.\"]\nresponse.errors.validation_failures.first.affected_fields  # =\u003e [\"InsuranceNum\"]\nresponse.errors.validation_failures.first.message          # =\u003e \"Please enter InsuranceNum.\"\n\n\n# Did we successfully get back an eligibility response from the payer.\nresponse.success?                   # =\u003e true\nresponse.success_code               # =\u003e \"Success\"\nresponse.transaction_id             # =\u003e \"c6eb40c5584f0496be3f3a48d0ddfd\"\nresponse.trace_number               # =\u003e \"88213481\"\nresponse.payer_name                 # =\u003e \"BLUE CROSS BLUE SHIELD OF MASSACHUSETTS\"\nresponse.active_coverage_for?(\"30\") # =\u003e true\n\n# Did the response have group number for the subscriber or dependent?\nresponse.subscriber\u0026.group_number || response.dependent\u0026.group_number  # =\u003e \"999999999A6AG999\"\n\n# What is the subscriber's member number?\nresponse.subscriber.id  # =\u003e \"XXP123456789\"\n\n# Was the response rejected? We got back an eligibility response, but probably the patient wasn't found\nresponse.success?                          # =\u003e true\nresponse.success_code                      # =\u003e \"Success\"\nresponse.active_coverage_for?(\"30\")        # =\u003e false\nresponse.rejected?                         # =\u003e true\nresponse.rejections.count                  # =\u003e 1\nresponse.rejections.first.reason           # =\u003e \"Patient Birth Date Does Not Match That for the Patient on the Database\"\nresponse.rejections.first.follow_up_action # =\u003e \"Please Correct and Resubmit\"\n\n# What active insurance coverages of service_type_code=30 does this patient have?\ncoverages = response.patient.benefits.select {|benefit| benefit.active_coverage? \u0026\u0026 benefit.service_type_codes.include?(\"30\")}\ncoverages.count                # =\u003e 2\ncoverages.first.insurance_type # =\u003e \"Preferred Provider Organization (PPO)\"\ncoverages.last.insurance_type  # =\u003e \"Medicare Part A\"\ncoverages.first.messages       # =\u003e nil\ncoverages.last.messages        # =\u003e [\"BCBSMA IS PRIME\"]\n\n# Find all the benefit information for service_type_code=30\nbenefits = response.patient.benefits.select {|benefit| benefit.service_type_codes.include?(\"30\")}\n\nbenefits.map(\u0026:info).uniq # =\u003e [\"Active Coverage\", \"Deductible\", \"Coverage Basis\", \"Out of Pocket (Stop Loss)\", \"Services Restricted to Following Provider\"]\n\n```\n\n### Use the CORE2 API with an X12 payload to check eligibility in realtime\n\nThis returns an X12/271 response.  You will need to understand how to build\nX12/270 requests and parse X12/271 responses.\n\n```ruby\n\nrequire 'trizetto/api'\n\nTrizetto::Api.configure do |config|\n  config.username = ENV['TRIZETTO_USERNAME']\n  config.password = ENV['TRIZETTO_PASSWORD']\nend\n\n\nclient = Trizetto::Api::Eligibility::Core2.new\nclient.check_eligibility(payload: x12_message)\n```\n\n### Ping the Payer List endpoint to see if it is up\n\n```ruby\nrequire 'trizetto/api'\n\nTrizetto::Api.configure do |config|\n  config.username = ENV['TRIZETTO_USERNAME']\n  config.password = ENV['TRIZETTO_PASSWORD']\nend\n\nclient = Trizetto::Api::PayerList::WebService.new({\n  pretty_print_xml: true,\n  log: true,\n  log_level: :debug,\n})\n\nresponse = client.ping\n```\n\n### Fetch the Payer List\n\n**This API times out or errors out on the Trizetto server**.  But you may get it to work.\n\n```ruby\nrequire 'trizetto/api'\n\nTrizetto::Api.configure do |config|\n  config.username = ENV['TRIZETTO_USERNAME']\n  config.password = ENV['TRIZETTO_PASSWORD']\nend\n\nclient = Trizetto::Api::PayerList::WebService.new({\n  pretty_print_xml: true,\n  log: true,\n  log_level: :debug,\n  read_timeout: 60*5 # 5 minutes\n})\n\nresponse = client.payer_list\n\n```\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/GoodMeasuresLLC/trizetto-api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the Trizetto::Api project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/GoodMeasuresLLC/trizetto-api/blob/master/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodmeasuresllc%2Ftrizetto-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoodmeasuresllc%2Ftrizetto-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodmeasuresllc%2Ftrizetto-api/lists"}