List registered IPN URLs
GET
/URLSetup/GetIpnList
const url = 'https://cybqa.pesapal.com/pesapalv3/api/URLSetup/GetIpnList';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://cybqa.pesapal.com/pesapalv3/api/URLSetup/GetIpnList \ --header 'Authorization: Bearer <token>'Returns every IPN URL registered against the account, as a bare JSON
array with no envelope. There is no status or message field.
On the sandbox this returns an empty array even immediately after a
registration that succeeded, so it cannot be used to read an ipn_id
back. Store the value returned by registerIpn instead.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”A list of registrations, possibly empty.
Media typeapplication/json
Array<object>
object
url
string
created_date
UTC. A newly created registration returns seven fractional-second
digits and a Z. Reading an existing registration back returns the
same instant with trailing zeros trimmed and no Z, so the format is
not fixed.
string
ipn_id
required
Pass as notification_id when creating an order.
string format: uuid
notification_type
0 is GET, 1 is POST.
integer
ipn_notification_type_description
string
ipn_status
1 is Active. No other value has been observed.
integer
ipn_status_decription
Misspelled in the API. Spelling it correctly yields no value.
string
status
string
message
string
Example
[ { "created_date": "2026-09-04T12:46:57.2509054Z", "notification_type": 0, "ipn_notification_type_description": "GET" }]