Skip to main content
Pay ID

Persistent PayIDs: How They Work and How to Test Them

How persistent PayIDs work, how they differ from standard PayIDs, which webhooks fire, and how to test payments to them in the sandbox.

Last updated About 1 hour ago

Persistent PayIDs: How They Work and How to Test Them

A persistent PayID is a PayID address that stays assigned to one customer, for example p-001-a6zesa@pad.live. Your customer can save it in their banking app as a payee and pay into it whenever they like, for any amount, as many times as they like. Payments into it are automatically matched to that customer.

Persistent PayIDs suit:

  • Customers you invoice regularly

  • Subscriptions and memberships

  • Account top-ups and wallets

  • Ongoing service payments

Persistent PayIDs don't expire. Standard PayIDs are created for one payment request and expire.

Persistent and standard PayIDs

Persistent PayID

Standard PayID

Address

Starts with p- and stays the same for the customer

Created for each payment request. If your account names PayIDs from the customer's reference or external ID, the customer gets the same address each time.

Accepts a payment when…

At any time

Only while the payment request is open. A request closes once it's paid, or expires after 25 hours.

Amount

Any amount

Must match the payment request exactly

How to get it

On request. Email support@payadvantage.com.au

Available on all accounts with PayID enabled

Cost

Additional fees apply. See pricing or ask our team

Standard PayID transaction fees

The monthly fee is billed for whole calendar months, starting with the first full month after persistent PayIDs are turned on for your account. If you're not sure whether your account has persistent PayIDs, contact support@payadvantage.com.au.

Creating a persistent PayID

Persistent PayIDs must be turned on for your account first. Until then, the Create PayID option doesn't appear on your customers.

In the Pay Advantage portal

  1. Go to Customers in the side menu.

  2. Select the customer.

  3. Click Create PayID.

Each customer can have one persistent PayID.

Using the API

  • When creating a customer, call POST /customers?with=payidref. A persistent PayID with a p- prefix is created for the customer. The address is based on the customer's customRef or externalID, or a generated code if neither is set.

  • For an existing customer, call POST /customers/{code}/createpayidref. If the customer already has a persistent PayID, it's returned instead.

  • Or call POST /pay_ids with "persistent": true and no amount.

See PayID Payments in our developer docs.

What happens when a customer pays

Webhook

When it fires

payment.created

The incoming PayID payment is received.

payment.settled

The funds are settled to your account.

payment.failed

The payment can't be accepted because the wrong amount was paid against a standard PayID. The funds are returned to the payer.

  • Persistent PayIDs: each payment, of any amount, is recorded as a new payment against the customer. It fires payment.created, then payment.settled. A persistent PayID doesn't fire payment.failed for the amount paid, because every amount is accepted.

  • Standard PayIDs: if the customer pays the wrong amount, the money is returned to them and a failed payment is recorded, which fires payment.failed. The payment request stays open, so they can pay again with the right amount. See Why Was My Customer's PayID Payment Refunded?

Testing persistent PayIDs in the sandbox

PayID must be enabled on your sandbox account first. Contact support to arrange this.

In the sandbox, you send PayID payments from the PayID Test Bank. It stands in for your customer's banking app.

To simulate a customer sending money to a persistent PayID:

  1. Create a test customer with a persistent PayID (POST /customers?with=payidref, or Create PayID in the sandbox portal). Copy the PayID address.

  2. Open the PayID Test Bank.

  3. Under Make a Payment, enter the PayID address, any amount (e.g. $85.00) and a payment description.

  4. Click Pay Now.

  5. The payment is recorded against the customer. Your webhook endpoint receives payment.created, and then payment.settled once the payment settles.

Repeat with different amounts to test several payments into the same PayID.

Test amounts: for standard PayIDs, the sandbox uses the payment request amount to trigger scenarios. See Sandbox Testing. Requests up to $4,000.00 are paid automatically within a few seconds. The underpayment ($4,006.00) and overpayment ($4,104.00) amounts fire payment.failed. These test amounts don't apply to persistent PayIDs: every amount paid into a persistent PayID is accepted.

Common questions

Can a customer pay the same persistent PayID more than once?
Yes. Persistent PayIDs are reusable, accept any amount and don't expire.

Can I change a customer's persistent PayID address?
The address is generated from the customer's reference. To change the naming rules, contact support.

How do I delete a persistent PayID?
Deleting a persistent PayID deactivates it permanently. Your customer can no longer pay to it, and you stop being charged for it. This can't be undone.

In the Pay Advantage portal:

  1. Go to Customers in the side menu.

  2. Select the customer.

  3. Next to the customer's PayID, click the delete (bin) icon.

  4. Click Delete PayID to confirm.

Using the API, call either:

  • POST /customers/{code}/deletepayidref with the customer's code, or

  • DELETE /pay_ids/{code} with the PayID's code.

Only persistent PayIDs can be deleted.

Once it's deleted, Create PayID appears on the customer again if you need to give them a new one. If your PayIDs are named from the customer's reference or external ID, the new PayID normally gets the same address as before. If your PayIDs use generated codes, it gets a new address.

Will my customer see my business name when they add the PayID?
Yes. When your customer enters the PayID in their banking app, it shows your business's trading name.

When a persistent PayID is deleted, what happens when my customer pays into that PayID address?

If a payment is received after a payid has been deleted, We automatically initiate a return to the customer. You do not need to manually trigger a refund for this scenario.

Need help? Email support@payadvantage.com.au or call 1300 641 310.