hps 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/Gemfile.lock +59 -0
  4. data/LICENSE.md +264 -264
  5. data/PRIVACY.txt +65 -65
  6. data/README.md +213 -213
  7. data/Rakefile +15 -15
  8. data/examples/sinatra-verify-only/Gemfile +4 -4
  9. data/examples/sinatra-verify-only/app.rb +32 -32
  10. data/examples/sinatra-verify-only/views/index.erb +478 -478
  11. data/examples/sinatra-verify-only/views/result.erb +39 -39
  12. data/hps.gemspec +28 -27
  13. data/lib/hps/configuration.rb +17 -17
  14. data/lib/hps/entities/hps_account_verify.rb +8 -8
  15. data/lib/hps/entities/hps_address.rb +6 -6
  16. data/lib/hps/entities/hps_authorization.rb +12 -12
  17. data/lib/hps/entities/hps_batch.rb +6 -6
  18. data/lib/hps/entities/hps_cardholder.rb +6 -6
  19. data/lib/hps/entities/hps_charge.rb +8 -8
  20. data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
  21. data/lib/hps/entities/hps_check.rb +18 -18
  22. data/lib/hps/entities/hps_check_holder.rb +10 -10
  23. data/lib/hps/entities/hps_check_response.rb +45 -45
  24. data/lib/hps/entities/hps_check_response_details.rb +9 -9
  25. data/lib/hps/entities/hps_credit_card.rb +34 -34
  26. data/lib/hps/entities/hps_direct_market_data.rb +5 -5
  27. data/lib/hps/entities/hps_encryption_data.rb +6 -6
  28. data/lib/hps/entities/hps_gift_card.rb +133 -133
  29. data/lib/hps/entities/hps_manage_tokens.rb +8 -8
  30. data/lib/hps/entities/hps_refund.rb +8 -8
  31. data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
  32. data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
  33. data/lib/hps/entities/hps_reversal.rb +10 -10
  34. data/lib/hps/entities/hps_token_data.rb +10 -10
  35. data/lib/hps/entities/hps_track_data.rb +5 -5
  36. data/lib/hps/entities/hps_transaction.rb +161 -161
  37. data/lib/hps/entities/hps_transaction_details.rb +6 -6
  38. data/lib/hps/entities/hps_transaction_header.rb +8 -8
  39. data/lib/hps/entities/hps_transaction_type.rb +16 -16
  40. data/lib/hps/entities/hps_void.rb +8 -8
  41. data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
  42. data/lib/hps/infrastructure/authentication_exception.rb +11 -11
  43. data/lib/hps/infrastructure/card_exception.rb +15 -15
  44. data/lib/hps/infrastructure/exceptions.json +547 -547
  45. data/lib/hps/infrastructure/hps_account_type.rb +11 -11
  46. data/lib/hps/infrastructure/hps_check_exception.rb +13 -13
  47. data/lib/hps/infrastructure/hps_check_type.rb +11 -11
  48. data/lib/hps/infrastructure/hps_data_entry_mode.rb +11 -11
  49. data/lib/hps/infrastructure/hps_exception.rb +25 -25
  50. data/lib/hps/infrastructure/hps_exception_mapper.rb +145 -145
  51. data/lib/hps/infrastructure/hps_gateway_response_validation.rb +20 -20
  52. data/lib/hps/infrastructure/hps_input_validation.rb +13 -13
  53. data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
  54. data/lib/hps/infrastructure/hps_sec_code.rb +27 -27
  55. data/lib/hps/infrastructure/hps_track_data_method.rb +6 -6
  56. data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
  57. data/lib/hps/services/hps_batch_service.rb +29 -29
  58. data/lib/hps/services/hps_charge_service.rb +773 -773
  59. data/lib/hps/services/hps_check_service.rb +110 -110
  60. data/lib/hps/services/hps_gift_card_service.rb +301 -301
  61. data/lib/hps/services/hps_service.rb +141 -136
  62. data/lib/hps/version.rb +3 -3
  63. data/lib/hps.rb +63 -63
  64. data/tests/amex_tests.rb +292 -292
  65. data/tests/cert_tests.rb +80 -80
  66. data/tests/certification/card_present_spec.rb +320 -320
  67. data/tests/certification/gift_card_certification_test.rb +106 -106
  68. data/tests/certification/gift_card_certification_tests.rb +107 -107
  69. data/tests/check_tests.rb +50 -50
  70. data/tests/discover_tests.rb +386 -386
  71. data/tests/exception_mapper_tests.rb +311 -311
  72. data/tests/general_tests.rb +140 -140
  73. data/tests/giftcard_tests.rb +212 -212
  74. data/tests/hps_token_service.rb +56 -56
  75. data/tests/mastercard_tests.rb +387 -387
  76. data/tests/secret_key.rb +11 -11
  77. data/tests/test_check.rb +77 -77
  78. data/tests/test_data.rb +138 -138
  79. data/tests/test_helper.rb +179 -179
  80. data/tests/token_tests.rb +512 -512
  81. data/tests/visa_tests.rb +445 -445
  82. metadata +31 -11
data/PRIVACY.txt CHANGED
@@ -1,66 +1,66 @@
1
- Online Privacy & Cookie Policy Statement ("Privacy Policy")
2
-
3
- Last modified on June 21, 2012
4
-
5
- Heartland Payment Systems, Inc. (�Heartland,� �we,� �us,� �our�) recognizes the importance of maintaining effective privacy practices. This Privacy & Cookie Policy explains the online data collection and use policies that apply to the websites, mobile applications and online services (collectively �Services�) that are owned or controlled by Heartland and are linked to this Policy page.
6
- Click below to jump to a particular topic:
7
-
8
- 1. Information Collection and Use
9
- 2. Sharing of Information
10
- 3. Children�s Privacy
11
- 4. Your Choices
12
- 5. Data Protection and Storage
13
- 6. Third-Party Websites and Services
14
- 7. Changes to Our Privacy Policy
15
- 8. Contact Us
16
-
17
- 1. Information Collection and Use
18
-
19
- We collect information from various sources to provide our Services to you, to analyze and improve our Services, and to communicate with you (e.g., to send you updates or notices about our organization, or emails about products or services that we believe may be of interest to you).
20
- Information that you provide to us: We collect information that you provide to us when you set up an account with us, use our Services, or communicate with us. For example, if you register for an online account with us, then we may request your personal information (e.g., name, postal address, email address, DOB, telephone number, credit/debit card number, security code) or as applicable your business information, to complete the registration process, to process transactions, to send you information about our products, to send you promotional offers from third parties that we think may be of interest to you, or to otherwise provide our Services to you. Similarly, if you request information from us through an online contact form (or if you email us), we collect the information you provide (e.g., name, telephone number, email address) so that we can respond to you.
21
-
22
- Information collected from third parties: We may collect information about you or your business from third parties in the course of providing our Services to you. For example, we may obtain information from our merchant customersor we may collect information from a school or university about consumer/students to provide services to those consumer/student. For some services,we may also collect information from third parties, such as credit reporting agencies or financial institutions, or other entities with information pertaining to the Services that we are providing to you.
23
-
24
- Information collected through technology: When you visit our websites or mobile applications (or when you use any of our online services) we may collect certain information about your computer or device through technology such as cookies, web beacons, or other tracking/recording tools. The information collected may include, but is not limited to, IP addresses, referring URLs, access times, browser types, device types, mobile device identifiers, or information about your interactions with our websites, applications or services. (Note that a �cookie� is a text file placed on a computer�s hard drive or stored on a mobile device; a �web beacon,� also known as an Internet tag, pixel tag or clear GIF, is used to transmit information back to a web server.) We may use the information described in this paragraph to, among other things, (i) operate our Services, including by remembering information so that you will not have to re-enter it during your visit or the next time you sign in to your account, (ii) identify and protect our customers, (iii) control unauthorized use or abuse of our Services, (iv) provide custom, personalized content and information, which could include advertising, (v) monitor aggregate traffic patterns on our websites and services, and (vi) analyze and improve our Services.
25
-
26
- 2. Sharing of Information
27
-
28
- We do not sell or share your information with third parties outside Heartland and our group of companies (which include any parents, subsidiaries and affiliates), without your consent, except as described below and in this Policy:
29
- We may share your information with our service providers and business partners (e.g., financial institutions or card brands that issue payment cards or are involved in transaction processing; entities that assist with fraud prevention or collections; merchants that sell gift cards managed through our websites or services; schools), who assist us in providing our Services. We may also share information with our service providers and business partners to help us monitor usage and other analytics regarding our Services, and to help us improve these offerings. When we share your information with our service providers and business partners, we only provide the information that these third parties reasonably need to perform their functions.
30
- We may aggregate, or strip information of personally identifying characteristics, and may share that aggregated or anonymized information with third parties.
31
- We may share or disclose your information if we determine, in our sole discretion, that we are required to do so under applicable law or regulatory requirements, or if we reasonably believe disclosure is necessary to prevent harm or financial loss, or in connection with preventing fraud or illegal activity, and/or to enforce our Terms of Use.
32
- We reserve the right to transfer any information we collect in the event we sell or transfer all or a portion of our business or assets (including any shares in the company) or any portion or combination of our products, services, businesses and/or assets. Should such a transaction occur (whether a divestiture, merger, acquisition, bankruptcy, dissolution, reorganization, liquidation, or similar transaction or proceeding), we will use reasonable efforts to ensure that any transferred information is treated in a manner consistent with this Privacy Policy.
33
- 3. Children�s Privacy
34
-
35
- Heartland�s websites, mobile applications and services are intended for use strictly by adults. Heartland does not knowingly solicit or collect personal information from children under the age of 13. If Heartland obtains knowledge that it has collected personal information from a child under 13 in retrievable form in its files, Heartland will delete that information.
36
-
37
- 4. Your Choices
38
-
39
- Email Communications. From time to time, we may send you emails regarding updates to our websites, mobile applications or products/services, notices about our organization, or information about products/services we offer (or promotional offers from third parties) that we think may be of interest to you. If you wish to unsubscribe from such emails, simply click the �unsubscribe link� provided at the bottom of the email communication. Note that you cannot unsubscribe from certain Services-related email communications (e.g., account verification, confirmations of transactions, technical or legal notices).
40
-
41
- Modifying Account Information. If you have an online account with us, you may have the ability to modify certain information in your account (e.g., your contact information) through �profile,� �account,� �settings,� or �preferences� options provided on the website or service. If you have any questions about modifying or updating any information in your account, please contact us at the email address, postal address, or telephone number provided below.
42
-
43
- Cookie Controls. You may be able to set your Internet browser or mobile device to block cookies or other tracking/recording tools, including cookies associated with our websites or Services, or to indicate when a cookie is being set by us. However, it is important to remember that many of our websites or Services may not function properly if your cookies are disabled. For information and instructions about how to manage your cookies, refer to your Internet browser�s or mobile device�s technical information. Further information on how to adjust your cookie preferences through your browser is available at the external, third-party informational website www.allaboutcookies.org.
44
-
45
- 5. Data Protection and Storage
46
-
47
- Heartland maintains reasonable administrative, technical and physical safeguards to protect the confidentiality of information transmitted online, including but not limited to encryption, firewalls and SSL (Secure Sockets Layer). Heartland has implemented policies and practices pursuant to various security rules and regulations relating to the security and safeguarding of payment cardholder data, including the Payment Card Industry Data Security Standards (PCI-DSS). Heartland is not liable for loss of passwords due to user negligence. If you believe your password has been lost or compromised, we recommend that you immediately change your password.
48
-
49
- We may store and process information in the United States or any other country in which Heartland or its parents, subsidiaries, affiliates or service providers maintain facilities. Heartland may transfer information that we collect about you, including personal information, to parents, subsidiaries, affiliates, or service providers across borders and from your country or jurisdiction to other countries or jurisdictions around the world. If you are located in the European Union or other regions with laws governing data collection and use that may differ from U.S. law, please note that we may transfer information, including personal information, to a country and jurisdiction that does not have the same data protection laws as your jurisdiction, and you consent to the transfer of information to the U.S. or any other country in which Heartland or its parent, subsidiaries, affiliates or service providers maintain facilities and to the use and disclosure of information as described in this Privacy Policy.
50
-
51
- 6. Third-Party Websites and Services
52
-
53
- Our websites or Services may provide links to (or links from) third-party websites or services � none of which are governed by this Privacy Policy. To the extent that any linked third-party websites or services you visit are not owned or controlled by Heartland, we are not responsible for those websites� or services� content or information practices. We strongly encourage you to review the privacy policies of any site or service before providing any personal information.
54
-
55
- 7. Changes to Privacy Policy
56
-
57
- We reserve the right to change this Privacy Policy from time to time in our sole discretion. We will post changes on this page and indicate the �last modified� date at the top of this page. Please check back often for any updates. Your continued use of our website, mobile application or services after any change in this Privacy Policy will constitute your acceptance of such change.
58
-
59
- 8. Contact Us
60
-
61
- For additional inquiries about this Privacy Policy, please contact Heartland at 1-888-798-3131 to speak to a legal representative, or send us an email at PrivacyPolicy@e-hps.com, or letter.
62
-
63
- General Counsel Office
64
- Heartland Payment Systems, Inc.
65
- 90 Nassau Street
1
+ Online Privacy & Cookie Policy Statement ("Privacy Policy")
2
+
3
+ Last modified on June 21, 2012
4
+
5
+ Heartland Payment Systems, Inc. (�Heartland,� �we,� �us,� �our�) recognizes the importance of maintaining effective privacy practices. This Privacy & Cookie Policy explains the online data collection and use policies that apply to the websites, mobile applications and online services (collectively �Services�) that are owned or controlled by Heartland and are linked to this Policy page.
6
+ Click below to jump to a particular topic:
7
+
8
+ 1. Information Collection and Use
9
+ 2. Sharing of Information
10
+ 3. Children�s Privacy
11
+ 4. Your Choices
12
+ 5. Data Protection and Storage
13
+ 6. Third-Party Websites and Services
14
+ 7. Changes to Our Privacy Policy
15
+ 8. Contact Us
16
+
17
+ 1. Information Collection and Use
18
+
19
+ We collect information from various sources to provide our Services to you, to analyze and improve our Services, and to communicate with you (e.g., to send you updates or notices about our organization, or emails about products or services that we believe may be of interest to you).
20
+ Information that you provide to us: We collect information that you provide to us when you set up an account with us, use our Services, or communicate with us. For example, if you register for an online account with us, then we may request your personal information (e.g., name, postal address, email address, DOB, telephone number, credit/debit card number, security code) or as applicable your business information, to complete the registration process, to process transactions, to send you information about our products, to send you promotional offers from third parties that we think may be of interest to you, or to otherwise provide our Services to you. Similarly, if you request information from us through an online contact form (or if you email us), we collect the information you provide (e.g., name, telephone number, email address) so that we can respond to you.
21
+
22
+ Information collected from third parties: We may collect information about you or your business from third parties in the course of providing our Services to you. For example, we may obtain information from our merchant customersor we may collect information from a school or university about consumer/students to provide services to those consumer/student. For some services,we may also collect information from third parties, such as credit reporting agencies or financial institutions, or other entities with information pertaining to the Services that we are providing to you.
23
+
24
+ Information collected through technology: When you visit our websites or mobile applications (or when you use any of our online services) we may collect certain information about your computer or device through technology such as cookies, web beacons, or other tracking/recording tools. The information collected may include, but is not limited to, IP addresses, referring URLs, access times, browser types, device types, mobile device identifiers, or information about your interactions with our websites, applications or services. (Note that a �cookie� is a text file placed on a computer�s hard drive or stored on a mobile device; a �web beacon,� also known as an Internet tag, pixel tag or clear GIF, is used to transmit information back to a web server.) We may use the information described in this paragraph to, among other things, (i) operate our Services, including by remembering information so that you will not have to re-enter it during your visit or the next time you sign in to your account, (ii) identify and protect our customers, (iii) control unauthorized use or abuse of our Services, (iv) provide custom, personalized content and information, which could include advertising, (v) monitor aggregate traffic patterns on our websites and services, and (vi) analyze and improve our Services.
25
+
26
+ 2. Sharing of Information
27
+
28
+ We do not sell or share your information with third parties outside Heartland and our group of companies (which include any parents, subsidiaries and affiliates), without your consent, except as described below and in this Policy:
29
+ We may share your information with our service providers and business partners (e.g., financial institutions or card brands that issue payment cards or are involved in transaction processing; entities that assist with fraud prevention or collections; merchants that sell gift cards managed through our websites or services; schools), who assist us in providing our Services. We may also share information with our service providers and business partners to help us monitor usage and other analytics regarding our Services, and to help us improve these offerings. When we share your information with our service providers and business partners, we only provide the information that these third parties reasonably need to perform their functions.
30
+ We may aggregate, or strip information of personally identifying characteristics, and may share that aggregated or anonymized information with third parties.
31
+ We may share or disclose your information if we determine, in our sole discretion, that we are required to do so under applicable law or regulatory requirements, or if we reasonably believe disclosure is necessary to prevent harm or financial loss, or in connection with preventing fraud or illegal activity, and/or to enforce our Terms of Use.
32
+ We reserve the right to transfer any information we collect in the event we sell or transfer all or a portion of our business or assets (including any shares in the company) or any portion or combination of our products, services, businesses and/or assets. Should such a transaction occur (whether a divestiture, merger, acquisition, bankruptcy, dissolution, reorganization, liquidation, or similar transaction or proceeding), we will use reasonable efforts to ensure that any transferred information is treated in a manner consistent with this Privacy Policy.
33
+ 3. Children�s Privacy
34
+
35
+ Heartland�s websites, mobile applications and services are intended for use strictly by adults. Heartland does not knowingly solicit or collect personal information from children under the age of 13. If Heartland obtains knowledge that it has collected personal information from a child under 13 in retrievable form in its files, Heartland will delete that information.
36
+
37
+ 4. Your Choices
38
+
39
+ Email Communications. From time to time, we may send you emails regarding updates to our websites, mobile applications or products/services, notices about our organization, or information about products/services we offer (or promotional offers from third parties) that we think may be of interest to you. If you wish to unsubscribe from such emails, simply click the �unsubscribe link� provided at the bottom of the email communication. Note that you cannot unsubscribe from certain Services-related email communications (e.g., account verification, confirmations of transactions, technical or legal notices).
40
+
41
+ Modifying Account Information. If you have an online account with us, you may have the ability to modify certain information in your account (e.g., your contact information) through �profile,� �account,� �settings,� or �preferences� options provided on the website or service. If you have any questions about modifying or updating any information in your account, please contact us at the email address, postal address, or telephone number provided below.
42
+
43
+ Cookie Controls. You may be able to set your Internet browser or mobile device to block cookies or other tracking/recording tools, including cookies associated with our websites or Services, or to indicate when a cookie is being set by us. However, it is important to remember that many of our websites or Services may not function properly if your cookies are disabled. For information and instructions about how to manage your cookies, refer to your Internet browser�s or mobile device�s technical information. Further information on how to adjust your cookie preferences through your browser is available at the external, third-party informational website www.allaboutcookies.org.
44
+
45
+ 5. Data Protection and Storage
46
+
47
+ Heartland maintains reasonable administrative, technical and physical safeguards to protect the confidentiality of information transmitted online, including but not limited to encryption, firewalls and SSL (Secure Sockets Layer). Heartland has implemented policies and practices pursuant to various security rules and regulations relating to the security and safeguarding of payment cardholder data, including the Payment Card Industry Data Security Standards (PCI-DSS). Heartland is not liable for loss of passwords due to user negligence. If you believe your password has been lost or compromised, we recommend that you immediately change your password.
48
+
49
+ We may store and process information in the United States or any other country in which Heartland or its parents, subsidiaries, affiliates or service providers maintain facilities. Heartland may transfer information that we collect about you, including personal information, to parents, subsidiaries, affiliates, or service providers across borders and from your country or jurisdiction to other countries or jurisdictions around the world. If you are located in the European Union or other regions with laws governing data collection and use that may differ from U.S. law, please note that we may transfer information, including personal information, to a country and jurisdiction that does not have the same data protection laws as your jurisdiction, and you consent to the transfer of information to the U.S. or any other country in which Heartland or its parent, subsidiaries, affiliates or service providers maintain facilities and to the use and disclosure of information as described in this Privacy Policy.
50
+
51
+ 6. Third-Party Websites and Services
52
+
53
+ Our websites or Services may provide links to (or links from) third-party websites or services � none of which are governed by this Privacy Policy. To the extent that any linked third-party websites or services you visit are not owned or controlled by Heartland, we are not responsible for those websites� or services� content or information practices. We strongly encourage you to review the privacy policies of any site or service before providing any personal information.
54
+
55
+ 7. Changes to Privacy Policy
56
+
57
+ We reserve the right to change this Privacy Policy from time to time in our sole discretion. We will post changes on this page and indicate the �last modified� date at the top of this page. Please check back often for any updates. Your continued use of our website, mobile application or services after any change in this Privacy Policy will constitute your acceptance of such change.
58
+
59
+ 8. Contact Us
60
+
61
+ For additional inquiries about this Privacy Policy, please contact Heartland at 1-888-798-3131 to speak to a legal representative, or send us an email at PrivacyPolicy@e-hps.com, or letter.
62
+
63
+ General Counsel Office
64
+ Heartland Payment Systems, Inc.
65
+ 90 Nassau Street
66
66
  Princeton, NJ 08542
data/README.md CHANGED
@@ -1,213 +1,213 @@
1
- <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit" target="_blank">
2
- <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-heartland-logo" alt="Heartland logo" title="Heartland" align="right" />
3
- </a>
4
-
5
- # Heartland Ruby SDK
6
-
7
- This SDK makes it easy to integrate your Ruby application with Heartland's [**Portico Gateway API**](http://developer.heartlandpaymentsystems.com/Portico). Supported features include:
8
-
9
- * Card Not Present (eCommerce and mobile)
10
- * Card Present (Retail and Restaurant)
11
- * <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit" target="_blank">Secure Submit</a> single-use tokenization and multi-use tokenization
12
- * <a href="https://www.heartlandpaymentsystems.com/about-heartland-secure/" target="_blank">Heartland Secure</a> End-to-End Encryption (E3)
13
- * [Credit](http://developer.heartlandpaymentsystems.com/Documentation/credit-card-payments/), [Gift & Loyalty](http://developer.heartlandpaymentsystems.com/Documentation/gift-card-payments/)</a>,and eCheck/ACH
14
- * [Recurring Payments](http://developer.heartlandpaymentsystems.com/Documentation/recurring-payments/)
15
-
16
- Supported Gateway Calls
17
-
18
- * BatchClose
19
- * CheckSale
20
- * CheckVoid
21
- * CreditAccountVerify
22
- * CreditAddToBatch
23
- * CreditAuth
24
- * CreditReturn
25
- * CreditReversal
26
- * CreditSale
27
- * GiftCardActivate
28
- * GiftCardAddValue
29
- * GiftCardAlias
30
- * GiftCardBalance
31
- * GiftCardDeactivate
32
- * GiftCardReplace
33
- * GiftCardReward
34
- * GiftCardSale
35
- * GiftCardVoid
36
- * GiftCardReversal
37
- * ReportActivity
38
- * ReportTxnDetail
39
-
40
- | <a href="#data-security"><b>Data Security</b></a> | <a href="#api-reference"><b>API Reference</b></a> | <a href="#testing--certification"><b>Testing & Certification</b></a> | <a href="#api-keys">API Keys</a> | Links |
41
- |:--:|:--:|:--:|:--:|:--|
42
- | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-secure)](#data-security) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-resources)](#documentation-and-examples) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-tools)](#certification--testing) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-keys)](#api-keys) | <a href="http://developer.heartlandpaymentsystems.com/Account/Register" target="_blank">Register an Account</a> <br> <a href="http://www.heartlandpaymentsystems.com/partners/" target="_blank">Partner with Heartland</a> <br> <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit/Support" target="_blank">Developer Support</a> |
43
-
44
- #### Developer Support
45
-
46
- You are not alone! If you have any questions while you are working through your development process, please feel free to <a href="mailto:entapp_devportal@e-hps.com?Subject=Developer Support Request">reach out to our team for assistance</a>.
47
-
48
- ## Requirements
49
-
50
- Ruby 2.3+
51
-
52
- ## Installation
53
-
54
- The SDK can be added into your application via a Ruby [Gem](http://guides.rubygems.org/rubygems-basics/) command:
55
-
56
- > gem install 'hps'
57
-
58
- You can also use [Bundler Gemfiles](http://bundler.io/v1.5/gemfile.html) to have it automatically installed. Add the following to your gemfile:
59
-
60
- > gem 'hps'
61
-
62
- And then run Bundler :
63
-
64
- > Bundler
65
-
66
- ## API Keys
67
-
68
- <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-keys" align="right"/>
69
- To begin creating test transactions you will need to obtain a set of public and private keys. These are easily obtained by creating an account on our [developer portal](http://developer.heartlandpaymentsystems.com/).
70
- Your keys are located under your profile information.
71
-
72
- [![Developer Keys](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-devportal-keys)](http://developer.heartlandpaymentsystems.com/Account/KeysAndCredentials)
73
-
74
- You will use your public key when implementing card tokenization and your private key will be used when communicating with our Portico Gateway. More details can be found in our [documentation](http://developer.heartlandpaymentsystems.com/SecureSubmit).
75
-
76
- Note: Multi-Use tokenization is not enabled by default when creating an account. You can contact <a href="mailto:SecureSubmitCert@e-hps.com?subject=Multi-use Token Request&body=Please enable multi-use tokens on my developer portal account which was signed up under the following email : ">Heartland's Specialty Products Team</a> to have this enabled. This is also true if you wish to use Gift & Loyalty, ACH, and Debit.
77
-
78
-
79
- ## Data Security
80
-
81
- <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-secure" align="right"/>
82
- If your app stores, processes, or transmits cardholder data in cleartext then it is in-scope for PA-DSS. If your app is hosted, or the data in question otherwise comes into your organization, then the app and your entire company are in-scope for PCI DSS (either as a merchant or a service provider). Heartland offers a suite of solutions to help keep integrators' applications and/or environments shielded from cardholder data, whether at motion or at rest.
83
-
84
- - **Secure Submit** for eCommerce web or mobile applications ("card-not-present"), which leverages single-use tokenization to prevent card data from passing through the merchant or integrator's webserver. It only requires a simple JavaScript inclusion and provides two options for payment field hosting:
85
- - **Self-Hosted Fields** - this approach relies upon the standard, appropriately named, HTML form controls on the integrator's served web page.
86
- - **Heartland Hosted Fields** - this approach combines the Secure Submit service with iframes to handle presentation of the form fields and collection of sensitive data on Heartland servers. Since PCI version 3.1 the PCI Council and many QSAs advocate the iframe-based approach as enabling a merchant to more readily achieve PCI compliance via the simplified SAQ-A form. Check out the CoalFire's [whitepaper](http://developer.heartlandpaymentsystems.com/Resource/Download/coalfire-white-paper) for more information.
87
- - **Heartland Secure** for card-present retailers, hospitality, and other "POS" applications, comprises three distinct security technologies working in concert:
88
- - **End-to-End Encryption** (E3) - combines symmetric and asymmetric cryptography to form an "Identity-Based Encryption" methodology which keeps cardholder data encrypted from the moment of the swipe.
89
- - **Tokenization** - replaces sensitive data values with non-sensitive representations which may be stored for recurring billing, future orders, etc.
90
- - **EMV** - though less about data security and more about fraud prevention, EMV or chip card technology guarantees the authenticity of the payment card and is thus an important concern for retailers.
91
-
92
- Depending on your (or your customers') payment acceptance environment, you may need to support one or more of these technologies in addition to this SDK. This SDK also supports the ability to submit cleartext card numbers as input, but any developer who does so will be expected to demonstrate compliance with PA-DSS. Likewise any third party integrator who is planning on handling cleartext card data on behalf of other merchants will be expected to demonstrate their PCI DSS compliance as a Service Provider prior to completing certification with Heartland.
93
-
94
- If you implement Secure Submit tokenization for your web or mobile application you will never have to deal with handling a card number - Heartland will take care of it for you and return a token to initiate the charge from your servers.
95
-
96
- Similarly, if you implement Heartland Secure with E3 (for both swiped and keyed entry methods) then your POS application will be out-of-scope for PA-DSS. Heartland Secure certified devices will only ever return E3 encrypted data which can safely be passed through your systems as input to this SDK. Heartland Secure devices include many popular models manufactured by PAX and Ingenico.
97
-
98
- To summarize, when you create a payment method using this SDK you have the following options for securely avoiding interaction with sensitive cardholder data:
99
-
100
- - Card data (track or PAN) may be sent directly from a web browser to Heartland, returning a SecureSubmit single use token that is then sent to your server.
101
- - Encrypted card data (track or PAN) may be obtained directly from a Heartland Secure device and passed to the SDK
102
-
103
- ## Documentation and Examples
104
-
105
- <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-resources" align="right"/>
106
- You can find the latest SDK documentation along with code examples on our [Developer Portal](http://developer.heartlandpaymentsystems.com/documentation).
107
- In addition the included [test suite](http://github.hps.com/DevPortal/Ruby-SDK/tree/master/tests) can be a great source of code samples for using the SDK!
108
-
109
- ## Testing & Certification
110
-
111
- <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-tools" align="right"/>
112
- Testing your implementation in our Certification/Sandbox environment helps to identify and squash bugs before you begin processing transactions in the production environment. While you are encouraged to run as many test transactions as you can, Heartland provides a specific series of tests that you are required to complete before receiving Certification. Please <a href="mailto:SecureSubmitCert@e-hps.com?Subject=Certification Request&Body=I am ready to start certifying my integration! ">contact</a> Heartland in order to initiate a certification project.
113
-
114
- *Quick Tip*: You can get a head start on your certification by reviewing the [certification tests](https://github.com/hps/heartland-ruby/tree/master/tests) in the included test suite.
115
-
116
- #### Test Card Data
117
-
118
- The following card numbers are used by our Certification environment to verify that your tests worked. Note that while variations (such as 4111111111111111) will work for general testing the cards listed below are required to complete certification.
119
-
120
- <table align="center">
121
- <thead>
122
- <tr>
123
- <th scope="col">Name</th>
124
- <th scope="col">Number</th>
125
- <th scope="col">Exp Month</th>
126
- <th scope="col">Exp Year</th>
127
- <th scope="col">CVV</th>
128
- <th scope="col">Address</th>
129
- <th scope="col">Zip</th>
130
- </tr>
131
- </thead>
132
- <tbody>
133
- <tr>
134
- <td>Visa</td>
135
- <td>4012002000060016</td>
136
- <td>12</td>
137
- <td>2025</td>
138
- <td>123</td>
139
- <td>6860 Dallas Pkwy</td>
140
- <td>750241234</td>
141
- </tr>
142
- <tr>
143
- <td>MasterCard</td>
144
- <td>5473500000000014</td>
145
- <td>12</td>
146
- <td>2025</td>
147
- <td>123</td>
148
- <td>6860 Dallas Pkwy</td>
149
- <td>75024</td>
150
- </tr>
151
- <tr>
152
- <td>Discover</td>
153
- <td>6011000990156527</td>
154
- <td>12</td>
155
- <td>2025</td>
156
- <td>123</td>
157
- <td>6860</td>
158
- <td>750241234</td>
159
- </tr>
160
- <tr>
161
- <td>Amex</td>
162
- <td>372700699251018</td>
163
- <td>12</td>
164
- <td>2025</td>
165
- <td>1234</td>
166
- <td>6860</td>
167
- <td>75024</td>
168
- </tr>
169
- <tr>
170
- <td>JCB</td>
171
- <td>3566007770007321</td>
172
- <td>12</td>
173
- <td>2025</td>
174
- <td>123</td>
175
- <td>6860</td>
176
- <td>75024</td>
177
- </tr>
178
- </tbody>
179
- </table>
180
-
181
- #### Testing Exceptions
182
-
183
- During your integration you will want to test for specific issuer responses such as 'Card Declined'. Because our sandbox does not actually reach out to issuers we have devised specific transaction amounts that will trigger [issuer response codes](https://cert.api2.heartlandportico.com/Gateway/PorticoDevGuide/build/PorticoDeveloperGuide/Issuer%20Response%20Codes.html) and [gateway response codes](https://cert.api2.heartlandportico.com/Gateway/PorticoDevGuide/build/PorticoDeveloperGuide/Gateway%20Response%20Codes.html). Please <a href="mailto:SecureSubmitCert@e-hps.com?subject=Hard Coded Values Spreadsheet Request">contact</a> Heartland for a complete listing of values you can charge to simulate AVS, CVV and Transaction declines, errors, and other responses that you can catch in your code:
184
-
185
- ```ruby
186
- begin
187
- credit_service.charge(-5, 'usd', credit_card, card_holder)
188
- rescue HpsInvalidRequestException => e
189
- # handle error for amount less than zero dollars
190
- rescue HpsAuthenticationException => e
191
- # handle errors related to your HpsServiceConfig
192
- rescue HpsCreditException => e
193
- # handle card-related exceptions: card declined, processing error, etc
194
- end
195
- ````
196
-
197
- More exceptions can be found [here](https://github.com/hps/heartland-ruby/tree/master/lib/hps/infrastructure).
198
-
199
- ## Contributing
200
-
201
- All our code is open sourced and we encourage fellow developers to contribute and help improve it!
202
-
203
- 1. Fork it
204
- 2. Create your feature branch (`git checkout -b my-new-feature`)
205
- 3. Ensure SDK tests are passing
206
- 4. Commit your changes (`git commit -am 'Add some feature'`)
207
- 5. Push to the branch (`git push origin my-new-feature`)
208
- 6. Create new Pull Request
209
-
210
-
211
- #### Included Test Suite
212
-
213
- The included test suite can help ensure your contribution doesn't cause unexpected errors and is a terrific resource of working examples that you can reference. As mentioned earlier, the [certification folder](http://github.hps.com/DevPortal/Ruby-SDK/blob/master/tests/cert_tests.rb) contains tests that mirror the types of requirements you will encounter when you certify your integration for production.
1
+ <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit" target="_blank">
2
+ <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-heartland-logo" alt="Heartland logo" title="Heartland" align="right" />
3
+ </a>
4
+
5
+ # Heartland Ruby SDK
6
+
7
+ This SDK makes it easy to integrate your Ruby application with Heartland's [**Portico Gateway API**](http://developer.heartlandpaymentsystems.com/Portico). Supported features include:
8
+
9
+ * Card Not Present (eCommerce and mobile)
10
+ * Card Present (Retail and Restaurant)
11
+ * <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit" target="_blank">Secure Submit</a> single-use tokenization and multi-use tokenization
12
+ * <a href="https://www.heartlandpaymentsystems.com/about-heartland-secure/" target="_blank">Heartland Secure</a> End-to-End Encryption (E3)
13
+ * [Credit](http://developer.heartlandpaymentsystems.com/Documentation/credit-card-payments/), [Gift & Loyalty](http://developer.heartlandpaymentsystems.com/Documentation/gift-card-payments/)</a>,and eCheck/ACH
14
+ * [Recurring Payments](http://developer.heartlandpaymentsystems.com/Documentation/recurring-payments/)
15
+
16
+ Supported Gateway Calls
17
+
18
+ * BatchClose
19
+ * CheckSale
20
+ * CheckVoid
21
+ * CreditAccountVerify
22
+ * CreditAddToBatch
23
+ * CreditAuth
24
+ * CreditReturn
25
+ * CreditReversal
26
+ * CreditSale
27
+ * GiftCardActivate
28
+ * GiftCardAddValue
29
+ * GiftCardAlias
30
+ * GiftCardBalance
31
+ * GiftCardDeactivate
32
+ * GiftCardReplace
33
+ * GiftCardReward
34
+ * GiftCardSale
35
+ * GiftCardVoid
36
+ * GiftCardReversal
37
+ * ReportActivity
38
+ * ReportTxnDetail
39
+
40
+ | <a href="#data-security"><b>Data Security</b></a> | <a href="#api-reference"><b>API Reference</b></a> | <a href="#testing--certification"><b>Testing & Certification</b></a> | <a href="#api-keys">API Keys</a> | Links |
41
+ |:--:|:--:|:--:|:--:|:--|
42
+ | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-secure)](#data-security) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-resources)](#documentation-and-examples) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-tools)](#certification--testing) | [![](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-keys)](#api-keys) | <a href="http://developer.heartlandpaymentsystems.com/Account/Register" target="_blank">Register an Account</a> <br> <a href="http://www.heartlandpaymentsystems.com/partners/" target="_blank">Partner with Heartland</a> <br> <a href="http://developer.heartlandpaymentsystems.com/SecureSubmit/Support" target="_blank">Developer Support</a> |
43
+
44
+ #### Developer Support
45
+
46
+ You are not alone! If you have any questions while you are working through your development process, please feel free to <a href="mailto:entapp_devportal@e-hps.com?Subject=Developer Support Request">reach out to our team for assistance</a>.
47
+
48
+ ## Requirements
49
+
50
+ Ruby 2.3+
51
+
52
+ ## Installation
53
+
54
+ The SDK can be added into your application via a Ruby [Gem](http://guides.rubygems.org/rubygems-basics/) command:
55
+
56
+ > gem install 'hps'
57
+
58
+ You can also use [Bundler Gemfiles](http://bundler.io/v1.5/gemfile.html) to have it automatically installed. Add the following to your gemfile:
59
+
60
+ > gem 'hps'
61
+
62
+ And then run Bundler :
63
+
64
+ > Bundler
65
+
66
+ ## API Keys
67
+
68
+ <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-keys" align="right"/>
69
+ To begin creating test transactions you will need to obtain a set of public and private keys. These are easily obtained by creating an account on our [developer portal](http://developer.heartlandpaymentsystems.com/).
70
+ Your keys are located under your profile information.
71
+
72
+ [![Developer Keys](http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-devportal-keys)](http://developer.heartlandpaymentsystems.com/Account/KeysAndCredentials)
73
+
74
+ You will use your public key when implementing card tokenization and your private key will be used when communicating with our Portico Gateway. More details can be found in our [documentation](http://developer.heartlandpaymentsystems.com/SecureSubmit).
75
+
76
+ Note: Multi-Use tokenization is not enabled by default when creating an account. You can contact <a href="mailto:SecureSubmitCert@e-hps.com?subject=Multi-use Token Request&body=Please enable multi-use tokens on my developer portal account which was signed up under the following email : ">Heartland's Specialty Products Team</a> to have this enabled. This is also true if you wish to use Gift & Loyalty, ACH, and Debit.
77
+
78
+
79
+ ## Data Security
80
+
81
+ <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-secure" align="right"/>
82
+ If your app stores, processes, or transmits cardholder data in cleartext then it is in-scope for PA-DSS. If your app is hosted, or the data in question otherwise comes into your organization, then the app and your entire company are in-scope for PCI DSS (either as a merchant or a service provider). Heartland offers a suite of solutions to help keep integrators' applications and/or environments shielded from cardholder data, whether at motion or at rest.
83
+
84
+ - **Secure Submit** for eCommerce web or mobile applications ("card-not-present"), which leverages single-use tokenization to prevent card data from passing through the merchant or integrator's webserver. It only requires a simple JavaScript inclusion and provides two options for payment field hosting:
85
+ - **Self-Hosted Fields** - this approach relies upon the standard, appropriately named, HTML form controls on the integrator's served web page.
86
+ - **Heartland Hosted Fields** - this approach combines the Secure Submit service with iframes to handle presentation of the form fields and collection of sensitive data on Heartland servers. Since PCI version 3.1 the PCI Council and many QSAs advocate the iframe-based approach as enabling a merchant to more readily achieve PCI compliance via the simplified SAQ-A form. Check out the CoalFire's [whitepaper](http://developer.heartlandpaymentsystems.com/Resource/Download/coalfire-white-paper) for more information.
87
+ - **Heartland Secure** for card-present retailers, hospitality, and other "POS" applications, comprises three distinct security technologies working in concert:
88
+ - **End-to-End Encryption** (E3) - combines symmetric and asymmetric cryptography to form an "Identity-Based Encryption" methodology which keeps cardholder data encrypted from the moment of the swipe.
89
+ - **Tokenization** - replaces sensitive data values with non-sensitive representations which may be stored for recurring billing, future orders, etc.
90
+ - **EMV** - though less about data security and more about fraud prevention, EMV or chip card technology guarantees the authenticity of the payment card and is thus an important concern for retailers.
91
+
92
+ Depending on your (or your customers') payment acceptance environment, you may need to support one or more of these technologies in addition to this SDK. This SDK also supports the ability to submit cleartext card numbers as input, but any developer who does so will be expected to demonstrate compliance with PA-DSS. Likewise any third party integrator who is planning on handling cleartext card data on behalf of other merchants will be expected to demonstrate their PCI DSS compliance as a Service Provider prior to completing certification with Heartland.
93
+
94
+ If you implement Secure Submit tokenization for your web or mobile application you will never have to deal with handling a card number - Heartland will take care of it for you and return a token to initiate the charge from your servers.
95
+
96
+ Similarly, if you implement Heartland Secure with E3 (for both swiped and keyed entry methods) then your POS application will be out-of-scope for PA-DSS. Heartland Secure certified devices will only ever return E3 encrypted data which can safely be passed through your systems as input to this SDK. Heartland Secure devices include many popular models manufactured by PAX and Ingenico.
97
+
98
+ To summarize, when you create a payment method using this SDK you have the following options for securely avoiding interaction with sensitive cardholder data:
99
+
100
+ - Card data (track or PAN) may be sent directly from a web browser to Heartland, returning a SecureSubmit single use token that is then sent to your server.
101
+ - Encrypted card data (track or PAN) may be obtained directly from a Heartland Secure device and passed to the SDK
102
+
103
+ ## Documentation and Examples
104
+
105
+ <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-resources" align="right"/>
106
+ You can find the latest SDK documentation along with code examples on our [Developer Portal](http://developer.heartlandpaymentsystems.com/documentation).
107
+ In addition the included [test suite](http://github.hps.com/DevPortal/Ruby-SDK/tree/master/tests) can be a great source of code samples for using the SDK!
108
+
109
+ ## Testing & Certification
110
+
111
+ <img src="http://developer.heartlandpaymentsystems.com/Resource/Download/sdk-readme-icon-tools" align="right"/>
112
+ Testing your implementation in our Certification/Sandbox environment helps to identify and squash bugs before you begin processing transactions in the production environment. While you are encouraged to run as many test transactions as you can, Heartland provides a specific series of tests that you are required to complete before receiving Certification. Please <a href="mailto:SecureSubmitCert@e-hps.com?Subject=Certification Request&Body=I am ready to start certifying my integration! ">contact</a> Heartland in order to initiate a certification project.
113
+
114
+ *Quick Tip*: You can get a head start on your certification by reviewing the [certification tests](https://github.com/hps/heartland-ruby/tree/master/tests) in the included test suite.
115
+
116
+ #### Test Card Data
117
+
118
+ The following card numbers are used by our Certification environment to verify that your tests worked. Note that while variations (such as 4111111111111111) will work for general testing the cards listed below are required to complete certification.
119
+
120
+ <table align="center">
121
+ <thead>
122
+ <tr>
123
+ <th scope="col">Name</th>
124
+ <th scope="col">Number</th>
125
+ <th scope="col">Exp Month</th>
126
+ <th scope="col">Exp Year</th>
127
+ <th scope="col">CVV</th>
128
+ <th scope="col">Address</th>
129
+ <th scope="col">Zip</th>
130
+ </tr>
131
+ </thead>
132
+ <tbody>
133
+ <tr>
134
+ <td>Visa</td>
135
+ <td>4012002000060016</td>
136
+ <td>12</td>
137
+ <td>2025</td>
138
+ <td>123</td>
139
+ <td>6860 Dallas Pkwy</td>
140
+ <td>750241234</td>
141
+ </tr>
142
+ <tr>
143
+ <td>MasterCard</td>
144
+ <td>5473500000000014</td>
145
+ <td>12</td>
146
+ <td>2025</td>
147
+ <td>123</td>
148
+ <td>6860 Dallas Pkwy</td>
149
+ <td>75024</td>
150
+ </tr>
151
+ <tr>
152
+ <td>Discover</td>
153
+ <td>6011000990156527</td>
154
+ <td>12</td>
155
+ <td>2025</td>
156
+ <td>123</td>
157
+ <td>6860</td>
158
+ <td>750241234</td>
159
+ </tr>
160
+ <tr>
161
+ <td>Amex</td>
162
+ <td>372700699251018</td>
163
+ <td>12</td>
164
+ <td>2025</td>
165
+ <td>1234</td>
166
+ <td>6860</td>
167
+ <td>75024</td>
168
+ </tr>
169
+ <tr>
170
+ <td>JCB</td>
171
+ <td>3566007770007321</td>
172
+ <td>12</td>
173
+ <td>2025</td>
174
+ <td>123</td>
175
+ <td>6860</td>
176
+ <td>75024</td>
177
+ </tr>
178
+ </tbody>
179
+ </table>
180
+
181
+ #### Testing Exceptions
182
+
183
+ During your integration you will want to test for specific issuer responses such as 'Card Declined'. Because our sandbox does not actually reach out to issuers we have devised specific transaction amounts that will trigger [issuer response codes](https://cert.api2.heartlandportico.com/Gateway/PorticoDevGuide/build/PorticoDeveloperGuide/Issuer%20Response%20Codes.html) and [gateway response codes](https://cert.api2.heartlandportico.com/Gateway/PorticoDevGuide/build/PorticoDeveloperGuide/Gateway%20Response%20Codes.html). Please <a href="mailto:SecureSubmitCert@e-hps.com?subject=Hard Coded Values Spreadsheet Request">contact</a> Heartland for a complete listing of values you can charge to simulate AVS, CVV and Transaction declines, errors, and other responses that you can catch in your code:
184
+
185
+ ```ruby
186
+ begin
187
+ credit_service.charge(-5, 'usd', credit_card, card_holder)
188
+ rescue HpsInvalidRequestException => e
189
+ # handle error for amount less than zero dollars
190
+ rescue HpsAuthenticationException => e
191
+ # handle errors related to your HpsServiceConfig
192
+ rescue HpsCreditException => e
193
+ # handle card-related exceptions: card declined, processing error, etc
194
+ end
195
+ ````
196
+
197
+ More exceptions can be found [here](https://github.com/hps/heartland-ruby/tree/master/lib/hps/infrastructure).
198
+
199
+ ## Contributing
200
+
201
+ All our code is open sourced and we encourage fellow developers to contribute and help improve it!
202
+
203
+ 1. Fork it
204
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
205
+ 3. Ensure SDK tests are passing
206
+ 4. Commit your changes (`git commit -am 'Add some feature'`)
207
+ 5. Push to the branch (`git push origin my-new-feature`)
208
+ 6. Create new Pull Request
209
+
210
+
211
+ #### Included Test Suite
212
+
213
+ The included test suite can help ensure your contribution doesn't cause unexpected errors and is a terrific resource of working examples that you can reference. As mentioned earlier, the [certification folder](http://github.hps.com/DevPortal/Ruby-SDK/blob/master/tests/cert_tests.rb) contains tests that mirror the types of requirements you will encounter when you certify your integration for production.