{ "info": { "author": "SystemSpecs Limited", "author_email": "ipgtechnologyteam@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Office/Business :: Financial :: Point-Of-Sale", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# REMITA BILLER GATEWAY\nPython SDK for Remita Billing Gateway\n\n## Package \nTo install the `remita-billing-gateway` package, run the following command.\n\n```\npip install remita-billing-gateway\n```\n## Requirements\n* Python 3.4 or later\n\n## Dependency\n* requests 2.22.0 or later\n\n## Overview\nIntegrating to Remita for Biller payments SDK enables your customers make payments to billers on Remita through your platform. This provides you with the capability to offer your customers access to the vast array of billers and merchants, including schools, churches, service providers and the Federal Government ministries, departments and agencies (MDAs) available on Remita to purchase and subscribe to their various products and services.\n\nThe process involves your customers selecting a biller to pay via your platform. They will supply payment details and confirm the details so you can debit their account with AmountDue to credit a designated Funds Holding Account. Your customers will be emailed Remita receipts (which are FGN MDA-recognized for TSA-bound payments) for each transaction.\n\n## Prerequisites\nPrior to using the SDK, you need to set up an integration profile on [Remita](https://login.remita.net) if you are not already registered as a merchant/biller on the platform. Each method call will require you to pass the Public key/Secret key. Your public and secret keys are located at the Billing page on your profile. After you login, click \"Setup Billing\" at your dashboard >> click \"Proceed\" on the \"Yes\" option for the integration question that comes up >> to display the Public/Secret key.\n\n## Configuration\nAll biller credentials needed to use the SDK are being setup by instantiating the Credential Class and set properties in this class accordingly.\nProperties such as public_key, secret_key, and environment are mandatory while read_timeout and connection_timeout can be set to zero (0).\n\n|Field | Type | Required | Description | \n| --- | ------ | -----------| -------- | \n| public_key | str | Yes | Located at the Billing page of your Remita profile on www.remita.net.\n| secret_key | str | Yes | Located at the Billing page of your Remita profile on www.remita.net.\n|environment| str | Yes | SetEnvironment.DEMO for Demo environment, While SetEnvironment.LIVE for Production environment.\n| read_timeout | int | Yes| The timeout on waiting to read data.\n| connection_timeout | int | Yes| The timeout in making the initial connection.\n\n### Sample\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment,\n read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n\n\tremita_biling_gateway = RemitaBillingGateway(credentials);\n```\n\n\n## Methods\n#### Get Biller(s)\nThis returns a list of the billers, merchants and MDAs available on Remita.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n# getListOfBillers\n get_billers = RemitaBillingGateway(credentials=credentials)\n get_biller_payload = GetBillerPayload(request_id= \"345634543\")\n biller_list = get_billers.get_billers(get_biller_payload)\n\n```\n### biller_list attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n\n#### Get Service Types\nThis returns a list of products and services associated with specified billers on Remita.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n#getListOfServices\n get_service_list = RemitaBillingGateway(credentials=credentials)\n request_id = \"345634543\"\n billId = \"DEMOMDA\"\n get_servis_payload = GetServicePayload(request_id=request_id, billId=billId)\n service_list = get_service_list.get_service_types (get_servis_payload)\n```\n\n### service_list attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n\n\n#### Get Custom Fields\nCustom fields are additional information specific to a service/product offered for sale by a biller. A service/product may or may not have custom fields defined. This method returns a list of the custom fields associated with a specific product/service offered by a biller on the platform.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n# getCustomFields\n get_customfield = RemitaBillingGateway(credentials=credentials)\n request_id = \"345634543\"\n billId = \"41032457\"\n get_field_payload = GetCustomFieldPayload(request_id=request_id, billId=billId)\n custom_field_list = get_customfield.get_custom_field(get_field_payload)\n```\n### custom_field_list attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n| acceptPartPayment | bool |\n| fixedPrice | bool |\n| fixedAmount | float |\n| currency | str|\n\n\n#### Get RRR Details\nIf your customer already has a Remita Retrieval Reference (RRR) before logging on to your online platform, he/she can also still process payment to Remita billers. They can supply the RRR, verify the RRR to display payment details associated with it before completing the payment. This method makes the call to verify the RRR.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n# getRRRDetail\n rrr_detail = RemitaBillingGateway(credentials=credentials)\n request_id = \"345634543\"\n rrr = \"310007769676\"\n get_rrr_detail = GetRrrDetailPayload(request_id=request_id, rrr=rrr)\n rrr_detail_response = rrr_detail.get_rrr_details(get_rrr_detail)\n```\n### rrr_detail_response attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n\n\n#### Validate Request\nYou need to make a request for Remita to execute a validation operation on the details retrieved to check the validity of the data. This serves to ensure that the details being passed for payment are viable and will derive an amount payable to generate a Remita Retrieval Reference (RRR) successfully. This method enables you make this call towards generating an RRR for payment.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n# #getValidateRequest\n validate_request = RemitaBillingGateway(credentials)\n # values should be added to List here\n value1 = Values(value=\"4521589ed\", amount=0, quantity=0)\n value2 = Values(value=\"41032530\", amount=0, quantity=0)\n value3 = Values(value=\"41032536\", amount=5000, quantity=1)\n value4 = Values(value=\"41032538\", amount=1500, quantity=1)\n value5 = Values(value=\"41032537\", amount=4000, quantity=1)\n value_list = [value1, value2, value3, value4, value5]\n # custom field should be added to List here\n custom_field1 = CustomField(id=\"41032446\", values=[value1])\n custom_field2 = CustomField(id=\"41032451\", values=[value2])\n custom_field3 = CustomField(id=\"41032535\", values=[value3, value4, value5])\n\n validate_request_payload = ValidateRequestPayload( customFields=[custom_field1, custom_field2, custom_field3], amount=10500, billId=\"41032457\", payerPhone=\"08085519759\", payerEmail=\"t.omonubi@gmail.com\", payerName=\"Tokunbo Omonubi\", currency=\"NGN\", request_id=\"769876\")\n validate_request_response = validate_request.validate(validate_request_payload)\n\n```\n\n### validate_request_response attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n\n\n#### Generate RRR\nIn order to complete the transaction through the Remita Payment Gateway, a Remita Retrieval Reference or RRR is required. This is what uniquely identifies and embodies the payment details of a transaction on the platform ecosystem. Calling this method will generate an RRR for the biller payment.\n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n#generateRRR\n generate_rrr = RemitaBillingGateway(credentials)\n # values should be added to List here\n value1 = Values(value=\"4521589ed\", amount=0, quantity=0)\n value2 = Values(value=\"41032530\", amount=0, quantity=0)\n value3 = Values(value=\"41032536\", amount=5000, quantity=1)\n value4 = Values(value=\"41032538\", amount=1500, quantity=1)\n value5 = Values(value=\"41032537\", amount=4000, quantity=1)\n value_list = [value1, value2, value3, value4, value5]\n\n # custom_field_list = []\n custom_field1 = CustomField(id=\"41032446\", values=[value1])\n custom_field2 = CustomField(id=\"41032451\", values=[value2])\n custom_field3 = CustomField(id=\"41032535\", values=[value3, value4, value5])\n\n gen_rrr_payload = GenerateRrrPayload(customFields=[custom_field1, custom_field2, custom_field3], amount=10500, billId=\"41032457\", payerPhone=\"08085519759\", payerEmail=\"t.omonubi@gmail.com\", payerName=\"Tokunbo Omonubi\", currency=\"NGN\", request_id=\"769876\")\n gen_rrr_response = generate_rrr.generate_rrr(gen_rrr_payload)\n```\n### gen_rrr_response attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| responseData | List[ResponseDatum] |\n\n\n#### Bill Payment Notification\nAfter you have debit the customer with the RRR amount (amountDue) to process the payment, you are required to notify Remita with details of the transaction. Calling this method will send a payment notification for the transaction to Remita accordingly. \n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n # BillNotification\n remita_biling_gateway = RemitaBillingGateway(credentials);\n transactionId = \"65287658975762322\"\n amountDebitted = \"200000\"\n branchCode = \"Empty\"\n debittedAccount = \"2044863290\"\n fundingSource = \"TOKS\"\n incomeAccount = \"0001061499\"\n paymentAuthCode = \"546789096543545678990\"\n paymentChannel = \"INTERNETBANKING\"\n rrr = \"270007770767\"\n tellerName = \"INTERNETBANKING\"\n branchCode = \"Empty\"\n bill_notify = BillerNotificationPayload(transactionId=transactionId, rrr=rrr, amountDebitted=amountDebitted, paymentAuthCode=paymentAuthCode, paymentChannel=paymentChannel, tellerName=tellerName, branchCode=branchCode, fundingSource=fundingSource, incomeAccount=incomeAccount, debittedAccount=debittedAccount)\n notification = remita_biling_gateway.bill_notification(bill_notify)\n```\n### notification attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| iResponseCode | str | \n| iResponseMessage | str | \n| responseData | List[ResponseDatum] |\n\n\n#### Transaction Status\nYou may need to enquire that status of biller payments your customers have made via the Bill Payment Notification API. \n\n```python\n public_key = \"dC5vbW9udWJpQGdtYWlsLmNvbXxiM2RjMDhjZDRlZTc5ZDIxZDQwMjdjOWM3MmI5ZWY0ZDA3MTk2YTRkNGRkMjY3NjNkMGZkYzA4MjM1MzI4OWFhODE5OGM4MjM0NTI2YWI2ZjZkYzNhZmQzNDNkZmIzYmUwNTkxODlmMmNkOTkxNmM5MjVhNjYwZjk0ZTk1OTkwNw==\"\n secret_key = \"95ab7ab7b2dc3152e3ab776c8f4bbe0ec5fe87526ee129617f319fb9edf79263a6fd15f1efe78f38ad6f04634dff993ccf9f075bf91f37aa52b61a9bd61c881e\"\n environment = SetEnvironment.DEMO\n read_timeout = 0\n connection_timeout = 0\n credentials = Credentials(public_key=public_key, secret_key=secret_key, environment=environment, read_timeout=read_timeout, connection_timeout=connection_timeout)\n\n# getPaymentstatus\n transaction_id = \"1567417796927\"\n payment_status_payload = PaymentStatusPayload(transaction_id=transaction_id)\n payment_status = RemitaBillingGateway(credentials=credentials)\n payment_status_response = payment_status.payment_status(payment_status_payload)\n```\n### payment_status_response attributes\n| Name | Type | \n| --- | ------ | \n| responseCode | str |\n| responseMsg | str | \n| appVersionCode | str | \n| iResponseCode | str | \n| iResponseMessage | str | \n| responseData | List[ResponseDatum] |\n\n---\n## Exceptions\n\n```\nAttributeError: module 'RemitaBillingService.SetEnvironment' has no attribute 'DEMO' or 'LIVE'\n```\n\nThis might occur as a result of import SetEnvironment.py file instead of SetEnvironment class. Change 'from RemitaBillingService import SetEnvironment' to 'from RemitaBillingService.SetEnvironment import SetEnvironment' will fix it.\n\n## Support\n- For all other support needs, support@remita.net\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/RemitaNet/billing-gateway-sdk-python", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "remita-billing-gateway", "package_url": "https://pypi.org/project/remita-billing-gateway/", "platform": "", "project_url": "https://pypi.org/project/remita-billing-gateway/", "project_urls": { "Homepage": "https://github.com/RemitaNet/billing-gateway-sdk-python" }, "release_url": "https://pypi.org/project/remita-billing-gateway/1.0.1/", "requires_dist": null, "requires_python": ">=3.4", "summary": "Python SDK for Remita Billing Gateway Service simple APIs", "version": "1.0.1" }, "last_serial": 5922204, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "cd079066b5de88486eb7ec4efcd49b57", "sha256": "f9bb4b8547c4559b0dae811a47d8c070b8f4a8837e506d7bb4cf10f18a3ca3b2" }, "downloads": -1, "filename": "remita_billing_gateway-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cd079066b5de88486eb7ec4efcd49b57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21006, "upload_time": "2019-10-03T07:32:23", "url": "https://files.pythonhosted.org/packages/64/65/b4635dfc5ba042a616178f194b979e3b4143849b0c3aa1a548c594e63e42/remita_billing_gateway-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32b748852dbddf112556c9a15965faaa", "sha256": "88acc2199006b3c137da128fc5c92a2a89540341c30d5472e356048cdb16b84f" }, "downloads": -1, "filename": "remita-billing-gateway-1.0.0.tar.gz", "has_sig": false, "md5_digest": "32b748852dbddf112556c9a15965faaa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 14535, "upload_time": "2019-10-03T07:32:26", "url": "https://files.pythonhosted.org/packages/e4/52/0a3a870e2604c99dfa95cd3d5aca93484f2135e98deef571896e4b813bec/remita-billing-gateway-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "aa61c4a55edd4b053386051673a01d05", "sha256": "0d4f00847ba4e006bd5a7d75c3b63ec69e49076e711391b51fbc28467e853855" }, "downloads": -1, "filename": "remita_billing_gateway-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aa61c4a55edd4b053386051673a01d05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 20969, "upload_time": "2019-10-03T07:51:47", "url": "https://files.pythonhosted.org/packages/c8/7a/0381c9e05058f6059f972e409ebb83a5049a238a3f4fb747c618e50ff056/remita_billing_gateway-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a69bdd927885a038283d03cbdd12a70a", "sha256": "477071f729921f721d49eee478f9eb38153a39664b9e70ae38ec110a11d2af45" }, "downloads": -1, "filename": "remita-billing-gateway-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a69bdd927885a038283d03cbdd12a70a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 14452, "upload_time": "2019-10-03T07:51:49", "url": "https://files.pythonhosted.org/packages/ff/a1/0389b89b773ffe99fdabf2bbc6f90c575fe23877081f63ce190ac4f73c91/remita-billing-gateway-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa61c4a55edd4b053386051673a01d05", "sha256": "0d4f00847ba4e006bd5a7d75c3b63ec69e49076e711391b51fbc28467e853855" }, "downloads": -1, "filename": "remita_billing_gateway-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aa61c4a55edd4b053386051673a01d05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 20969, "upload_time": "2019-10-03T07:51:47", "url": "https://files.pythonhosted.org/packages/c8/7a/0381c9e05058f6059f972e409ebb83a5049a238a3f4fb747c618e50ff056/remita_billing_gateway-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a69bdd927885a038283d03cbdd12a70a", "sha256": "477071f729921f721d49eee478f9eb38153a39664b9e70ae38ec110a11d2af45" }, "downloads": -1, "filename": "remita-billing-gateway-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a69bdd927885a038283d03cbdd12a70a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 14452, "upload_time": "2019-10-03T07:51:49", "url": "https://files.pythonhosted.org/packages/ff/a1/0389b89b773ffe99fdabf2bbc6f90c575fe23877081f63ce190ac4f73c91/remita-billing-gateway-1.0.1.tar.gz" } ] }