Paynow Developer Documentation
website·Indexed 34 days ago
https://developers.paynow.co.zwDeveloper resources for Paynow's payment gateway and BillPay platform. Includes integration guides for the Paynow API, Express Checkout, and BillPay Vendor and Biller APIs, with SDK support for PHP, Python, Java (Spring Boot), and C#. Covers transaction initiation, status updates, hash generation, and integrations with Shopify and Gravity Forms.
What's inside Paynow
- The Biller API is intended for offline billers (service providers) to manage members and receive payment notifications. It enables billers to create, update, and delete members (including bulk operations), download payment reports, and receive payment notifications via webhooks. Note: Online billers should contact Paynow support for direct integration options rather than using this API.
Overview of Paynow BillPay Vendor API
The Vendor API is designed for resellers who facilitate bill payments and provision services for their customers. It allows vendors to list available billers and products, process payments using an Auth/Pay flow, query payment status and history, manage vendor balances, handle reversals/refunds, and receive webhook notifications regarding biller configuration changes.Biller API access requirements
The Biller API is designed for offline billers (where Paynow accepts payment and notifies the biller). To use the API, the user account must be assigned the role of either 'Biller Admin' or 'Biller User'. Online billers should contact Paynow support for alternative integration options.Initiate an air ticket transaction with Paynow
To allow customers to pay for air tickets, merchants must send an HTTP POST request to theinitiatetickettransactionendpoint. This request initializes the payment process and requires detailed information about the passenger, the flight itinerary, and the transaction amount.Use official Paynow brand assets and badges
Paynow provides a collection of official artwork (badges and buttons) to help applications associate with the Paynow brand. Assets are supplied in .AI (Adobe Illustrator) and .SVG (Scalable Vector Graphics) formats. It is recommended to use SVG images in responsive web applications to ensure clarity across different screen resolutions.Understand Paynow API communication and security
The Paynow interface uses HTTP POST requests to exchange data between the merchant site and the Paynow server, and HTTP GET requests to redirect customers. To maintain security, Integration Keys and Hashes must never be exposed on client-visible pages or URLs. Integration Keys should be stored securely, either encrypted or in a database separate from the main site.Retrieve fiscal device information using ZIMRA device ID
Use theGET /api/device/{zimraDeviceId}endpoint to retrieve detailed information about a fiscal device, including its current status, receipt counters, taxpayer details, and available tax types. This endpoint requires thezimraDeviceIdas a path parameter.GET /api/device/{zimraDeviceId}Create an advanced payment request button
An advanced payment request button allows customers to enter additional details about a product or service during the payment process. To implement this, you must first create a "Custom Button Template" in the Paynow merchant account and obtain its Integration ID.
The payment link follows this structure:
https://www.paynow.co.zw/payment/billpaymentlink/{customer-email}?q={arguments}{customer-email}: (Optional) If provided, Paynow logs the customer in anonymously using this address.{arguments}: A string of parameters that must be URL-encoded and then Base64-encoded (using URL Safe Base64 Encoding).
Understand the Paynow BillPay Vendor API payment lifecycle
The Vendor API allows vendors to authorize, pay, and query BillPay payments. The typical workflow consists of the following stages:
- List Billers: Retrieve all available billers on the account to update the application's biller/product database, including artwork and meta descriptions.
- Auth: Send product information and customer identifiers to the biller. The response provides payment details for confirmation.
- Pay: Complete the transaction after a successful Auth. Successful responses provision the service or return vouchers.
- Webhook: Paynow uses the configured webhook URL to notify the application of biller configuration changes, which should be used in conjunction with the List Billers endpoint to maintain database synchronization.
Initialize the Paynow SDK
Create an instance of thePaynowclass using your unique integration ID and integration key provided by Paynow.Paynow paynow = new Paynow("INTEGRATION_ID", "INTEGRATION_KEY");Use Paynow Airtime products
To purchase airtime, use any valid mobile number (Econet, NetOne, Telecel, or Africom) as the
member number.Available airtime product codes:
AIRTIME: Credits a ZWG monetary value to the subscriber's prepaid balance.AIRTIME_USD: Credits a USD monetary value (currently only supported for Econet).
Other mobile bundle products are available, with the applicable network specified in the product name.
Initialize the Paynow client
To start using Paynow, import thePaynowclass and instantiate it using your unique Integration ID and Integration Key provided by Paynow.const { Paynow } = require("paynow"); let paynow = new Paynow("INTEGRATION_ID", "INTEGRATION_KEY");