Skip to main content

Build & Customize Your Payments with ZenPay

Developer Documentation - Payment Solutions for Every Industry

Accept payments across cards, PayID, and bank transfers. Tokenize for recurring billing, process batch payouts, and manage customer relationshipsโ€”all with integrated sandbox testing and world-class Australian compliance.

/ to search ยท ? for shortcuts
Secure Payment
Card Number
MM/YY
CVV
๐Ÿ’ณ Card๐Ÿชช PayID๐ŸŽ Apple Pay
Pay $99.00
๐Ÿ”’PCI DSS Level 1
โšกInstant PayID

Quick Start

Get up and running in minutes with our hosted payment modal

// Initialize the ZenPay hosted payment modal
$.zpPayment({
apiKey: 'your_api_key',
fingerprint: generateFingerprint(), // SHA3-512 server-side
merchantCode: 'MERCHANT123',
mode: 0, // 0 = payment page, 1 = payment iframe
amount: 9900, // Amount in cents ($99.00)
currency: 'AUD',
description: 'Order #1234',
reference: 'ORDER-1234',

// Payment options
enableApplePay: true,
enableGooglePay: true,
enablePayID: true,

// Callbacks
redirectUrl: 'https://yoursite.com/payment/success',
callbackUrl: 'https://yoursite.com/api/payment/callback',

// Security
action: 'Authorise', // or 'Charge'
});
โš ๏ธ Important: Generate the SHA3-512 fingerprint server-side to prevent tampering. Migration from SHA512 is required in v5.

Sandbox Test Data

Use these test cards in your sandbox environment:

Card NumberTypeResult
4242 4242 4242 4242VisaSuccess
5555 5555 5555 4444MastercardSuccess
4000 0000 0000 0002VisaDeclined
Test Details:
  • Expiry: Any future date (e.g., 01/30)
  • โ€ข
  • CVV: Any 3 digits (e.g., 123)
  • โ€ข
  • Sample PayID: test@payme.io

Integration Pathways

Choose the integration method that best fits your use case

Recommended
๐Ÿ–ฅ๏ธ

Hosted Payment Page

Zero PCI scope integration with modal or redirect options.

  • โœ“No PCI compliance required
  • โœ“Support for cards, PayID, Apple Pay, Google Pay
  • โœ“Customizable branding
  • โœ“Mobile-responsive design
Learn more โ†’
โšก

Merchant & Customer APIs

Full control with RESTful APIs for payments and management.

  • โœ“One-off and pre-auth payments
  • โœ“Batch payments & refunds
  • โœ“Token management & subscriptions
  • โœ“Customer portal endpoints
Learn more โ†’
Popular
๐Ÿชช

PayID & Bank Transfers

Instant NPP payments with program, merchant, or customer PayIDs.

  • โœ“Real-time settlement
  • โœ“Lower fees than cards
  • โœ“Secure BSB/account lookup
  • โœ“Automated reconciliation
Learn more โ†’
๐Ÿ“Š

Batch & B2B Solutions

Process bulk payouts and request-to-pay jobs.

  • โœ“CSV upload for bulk payments
  • โœ“Payroll and supplier payouts
  • โœ“Request-to-pay workflows
  • โœ“Comprehensive reporting
Learn more โ†’

PayID Pattern Guide

Choose the right PayID type for your use caseโ€”program-wide, merchant-specific, or customer-level addresses

Program PayID

Example: pay@travelpay.com.au
Use Case: Single email for all merchants in a program
Reference Control: System-generated unique references

โœ“ Pros

  • Simple setupโ€”one PayID for entire program
  • Automatic payment routing
  • Lower admin overhead

โœ— Cons

  • No merchant-specific branding
  • Less control over references
  • Shared reconciliation process

Merchant PayID

Example: MERCHANT123@b2bpay.com.au
Use Case: Unique email per merchant for ad-hoc invoices
Reference Control: Merchant defines references

โœ“ Pros

  • Merchant-specific branding
  • Full reference control
  • Clear attribution in reports

โœ— Cons

  • Requires setup per merchant
  • Manual reconciliation
  • Higher admin overhead

Customer PayID

CML Required
Example: john_12345678@travelpay.com.au
Use Case: Unique email per customer for recurring/subscriptions
Reference Control: System-generated references

โœ“ Pros

  • Automatic customer matching
  • Perfect for subscriptions
  • No manual reconciliation needed

โœ— Cons

  • Requires Customer-Merchant Link (CML)
  • Setup per customer
  • More complex initial configuration

๐Ÿ“˜ Understanding Customer-Merchant Links (CML)

A CML connects a specific customer to a merchant for recurring payments. When using Customer PayIDs, the CML must exist before the customer can make a payment. This ensures accurate routing and automatic reconciliation for subscription services.