{"id":13908562,"url":"https://github.com/nomad-cli/venice","last_synced_at":"2025-07-18T07:31:35.687Z","repository":{"id":7024937,"uuid":"8297490","full_name":"nomad-cli/venice","owner":"nomad-cli","description":"Ruby Gem for In-App Purchase Receipt Verification","archived":true,"fork":false,"pushed_at":"2021-06-20T11:07:33.000Z","size":133,"stargazers_count":581,"open_issues_count":0,"forks_count":155,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-05-27T08:49:30.817Z","etag":null,"topics":[],"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/nomad-cli.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}},"created_at":"2013-02-19T19:24:34.000Z","updated_at":"2025-02-18T13:15:38.000Z","dependencies_parsed_at":"2022-09-11T23:21:36.833Z","dependency_job_id":null,"html_url":"https://github.com/nomad-cli/venice","commit_stats":null,"previous_names":["nomad/venice","mattt/venice"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/nomad-cli/venice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomad-cli%2Fvenice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomad-cli%2Fvenice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomad-cli%2Fvenice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomad-cli%2Fvenice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nomad-cli","download_url":"https://codeload.github.com/nomad-cli/venice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomad-cli%2Fvenice/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265720592,"owners_count":23817267,"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":[],"created_at":"2024-08-06T23:02:49.807Z","updated_at":"2025-07-18T07:31:35.391Z","avatar_url":"https://github.com/nomad-cli.png","language":"Ruby","readme":"![Venice](https://raw.github.com/nomad/nomad.github.io/assets/venice-banner.png)\n\n[![Travis](https://img.shields.io/travis/nomad/venice.svg)](https://travis-ci.org/nomad/venice)\n\n\u003e **Note**: This project is no longer being maintained.\n\nVenice is a simple gem for verifying Apple In-App Purchase receipts, and retrieving the information associated with receipt data.\n\nThere are two reasons why you should verify in-app purchase receipts on the server: First, it allows you to keep your own records of past purchases, which is useful for up-to-the-minute metrics and historical analysis. Second, server-side verification over SSL is the most reliable way to determine the authenticity of purchasing records.\n\nSee Apple's [Receipt Validation Programming Guide](https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html) for additional information.\n\n\u003e Venice is named for [Venice, Italy](http://en.wikipedia.org/wiki/Venice,_Italy)—or more specifically, Shakespeare's [_The Merchant of Venice_](http://en.wikipedia.org/wiki/The_Merchant_of_Venice).\n\u003e It's part of a series of world-class command-line utilities for iOS development, which includes [Cupertino](https://github.com/mattt/cupertino) (Apple Dev Center management), [Shenzhen](https://github.com/mattt/shenzhen) (Building \u0026 Distribution), [Houston](https://github.com/mattt/houston) (Push Notifications), [Dubai](https://github.com/mattt/dubai) (Passbook pass generation), and [Nashville](https://github.com/nomad/nashville) (iTunes Store API).\n\n## Installation\n\n    $ gem install venice\n\n## Usage\n\n### Basic\n\n```ruby\nrequire 'venice'\n\ndata = '(Base64-Encoded Receipt Data)'\nif receipt = Venice::Receipt.verify(data)\n  p receipt.to_h\n\n  # You can refer an original JSON response via a Receipt instance.\n  case receipt.original_json_response['status'].to_i\n    when 0     then foo\n    when 21006 then bar\n  end\nend\n```\n\n### For Auto-Renewable\n\n```ruby\nrequire 'venice'\n\ndata = '(Base64-Encoded Receipt Data)'\n\n# You must pass shared secret when verification on Auto-Renewable\n# To generate a shared secret, go to App Store Connect -\u003e My Apps \u003e (Your app) \u003e In-App Purchases \u003e View or generate a shared secret\nopts = { shared_secret: 'your key' }\n\nif receipt = Venice::Receipt.verify(data, opts)\n  # Renewed receipts are added into `latest_receipt_info` array.\n  p receipt.latest_receipt_info.map(\u0026:expires_at)\n  # =\u003e [2016-05-19 20:35:59 +0000, 2016-06-18 20:35:59 +0000, 2016-07-18 20:35:59 +0000]\nend\n```\n\n## Command Line Interface\n\nVenice also comes with the `iap` binary, which provides a convenient way to verify receipts from the command line.\n\n\n    $ iap verify /path/to/receipt\n\n    +--------------------------------+------------------------------------+\n    |                               Receipt                               |\n    +--------------------------------+------------------------------------+\n    | adam_id                        | 664753504                          |\n    | application_version            | 123                                |\n    | bundle_id                      | com.example.product                |\n    | download_id                    | 30000000000005                     |\n    | expires_at                     |                                    |\n    | latest_receipt                 |                                    |\n    | original_application_version   | 123                                |\n    | original_purchase_date         | Fri, 07 Mar 2014 20:59:24 GMT      |\n    | receipt_type                   | Production                         |\n    | receipt_created_at             | Mon, 23 Jun 2014 17:59:38 GMT      |\n    | requested_at                   | Mon, 23 Jun 2014 17:59:38 GMT      |\n    +--------------------------------+------------------------------------+\n    | in_app                         | 1                                  |\n    |  - app_item_id                 |                                    |\n    |  - cancellation_at             |                                    |\n    |  - expires_at                  |                                    |\n    |  - original_purchase_date      |                                    |\n    |  - original_transaction_id     | 1000000000000001                   |\n    |  - product_id                  | com.example.product                |\n    |  - purchase_date               |                                    |\n    |  - quantity                    | 1                                  |\n    |  - transaction_id              | 1000000000000001                   |\n    |  - web_order_line_item_id      | 1000000000000001                   |\n    |  - version_external_identifier |                                    |\n    |  - is_trial_period             | true                               |\n    |  - is_in_intro_offer_period    | true                               |\n    +--------------------------------+------------------------------------+\n\n\n## License\n\nVenice is available under the MIT license. See the LICENSE file for more info.\n","funding_links":[],"categories":["HarmonyOS","Ruby"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomad-cli%2Fvenice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnomad-cli%2Fvenice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomad-cli%2Fvenice/lists"}