Partner Lead API Integration Guide
This page contains the detailed, step-by-step integration reference for creating a lead, including the request and response shapes, a flow diagram, and error handling guidance.
Steps: Create a Lead
Step 1: Create a Lead
Submit the merchant’s business and contact details to create a lead against your partner configuration.
Endpoint: POST https://sandbox.api.gpaunz.com/leads
For complete field documentation, see Request Fields. For the interactive reference, see OpenAPI Reference.
Headers:
| Header | Required | Description |
|---|---|---|
x-api-key | Yes | Your unique API Key to authenticate against the API. |
x-idempotency-key | Yes | A unique value used to ensure idempotency and prevent retries of the same request. |
Example Request:
{ "reference": "HVolqMiv1kikVDL_pqtlMA", "externalReference": "INV001", "firstName": "John", "lastName": "Smith", "businessRegistration": { "value": "78406955710", "type": "abn" }, "website": "https://www.example.com/", "phoneNumber": "0412345678", "company": "Amazing Company", "email": "john.smith@example.com", "country": "australia", "postcode": "4321", "priceTierCode": "TIER1", "servicesRequested": [ "direct_debit", "ecommerce" ], "software": "ACME"}Note:
softwaremust match a partner configuration provisioned during onboarding, andpriceTierCodemust be a valid tier issued to you. AcsaUrlis only returned when the lead qualifies for self-serve onboarding.
Example Response:
{ "updatedDateTime": "2026-06-23T03:32:03Z", "result": { "status": "ok" }, "id": "e945e8vh0a9szsxig9pohvs9i3lrmw", "csaUrl": "https://ezidebit--ezifull.sandbox.my.site.com/application/quicksignup?id=00Q8r00000SuB5rEAF", "reference": "HVolqMiv1kikVDL_pqtlMA", "externalReference": "INV001", "createdDateTime": "2026-06-23T03:31:59Z"}Create Lead Flow (Diagram)
This diagram shows the flow from your application submitting the lead through to a referred merchant completing self-serve signup.
sequenceDiagram
autonumber
participant Partner as Partner Application
participant API as Single API
participant Merchant
Partner->>API: POST /leads (business + contact details)
API->>API: Validate fields against partner configuration
alt valid and not duplicate
API-->>Partner: 200 result.status = ok, id, csaUrl
opt self-serve
Partner-->>Merchant: Share csaUrl
Merchant->>API: Complete signup via csaUrl
end
else duplicate reference
API-->>Partner: result.status = validation_error (reference_duplicated)
else validation failure
API-->>Partner: result.status = validation_error (field codes)
end
Response Fields
| Field | Type | Notes |
|---|---|---|
id | string | The unique SAPI identifier returned by the gateway. |
csaUrl | string | Self-serve signup URL for the merchant. Only returned when the lead qualifies for self-serve onboarding. |
reference | string | The reference supplied in the request. |
externalReference | string | The external reference supplied in the request, if any. |
createdDateTime | string | When the lead was created (ISO 8601, UTC). |
updatedDateTime | string | When the lead was last updated (ISO 8601, UTC). |
result | object | The standard result object indicating the status of the request. |
Error Handling
When a request cannot be processed, the result.status is validation_error and result.codes lists each issue. Inspect every entry in codes — multiple validation failures are returned together.
Duplicate Reference
If the reference has already been used, the lead is rejected.
{ "result": { "mode": "sandbox", "status": "validation_error", "codes": [ { "id": "V10024", "message": "reference_duplicated" } ] }}Field Validation
Missing or invalid fields are returned together in result.codes.
{ "result": { "status": "validation_error", "codes": [ { "message": "lastname_required", "id": "V40001" }, { "message": "invalid_country", "id": "V40005" }, { "message": "phone_required", "id": "V40004" }, { "message": "price_tier_code_required", "id": "V40010" }, { "message": "software_required", "id": "V40014" } ] }}Validation Codes
| Code | Message | Trigger |
|---|---|---|
| V40001 | lastname_required | lastName is missing. |
| V40002 | email_required | email is missing. |
| V40003 | company_required | company is missing. |
| V40004 | phone_required | phoneNumber is missing. |
| V40005 | invalid_country | country is missing or not australia/new_zealand. |
| V40007 | invalid_phone_format | phoneNumber does not match the format for the supplied country. |
| V40008 | invalid_email_format | email is not a valid email address. |
| V40010 | price_tier_code_required | priceTierCode is missing. |
| V40011 | services_requested_required | servicesRequested is missing or empty. |
| V40012 | invalid_services_requested_value | A value in servicesRequested is not supported. |
| V40013 | reference_required | reference is missing. |
| V40014 | software_required | software is missing. |
| V40015 | invalid_software | software does not match a configured partner. |
| V40016 | firstname_too_long | firstName exceeds 40 characters. |
| V40017 | lastname_too_long | lastName exceeds 40 characters. |
| V40018 | company_too_long | company exceeds 255 characters. |
| V40019 | price_tier_code_too_long | priceTierCode exceeds 255 characters. |
| V40020 | phone_contains_alpha | phoneNumber contains alphabetic characters. |
| V40021 | invalid_business_registration_type | businessRegistration.type is missing or unsupported. |
| V40022 | invalid_abn | businessRegistration.value is not a valid ABN (11 digits). |
| V40023 | invalid_nzbn | businessRegistration.value is not a valid NZBN (13 digits). |
| V40024 | invalid_acn | businessRegistration.value is not a valid ACN (9 digits). |
| V10024 | reference_duplicated | reference has already been used. |
Quick links
- Overview: Partner Lead API
- Interactive reference: OpenAPI Reference
- Result object: Result Object