Introduction

Welcome to the GoEscrow Partner API Documentation for E-Commerce Retailers and Marketplace operators.

This documentation aims to provide all the information you need to work with our API.

You may find the partner application, additional support documentation and whitepaper for the GoEscrow Partner API here.

Idempotency

State-changing requests can be safely retried without performing the operation twice by sending an Idempotency-Key header. We strongly recommend using it on every money-movement request, so that a network timeout or a retry never results in a duplicate transaction.

How to use it

  • Generate a unique value for each distinct operation (a UUID v4 is ideal) and send it as the Idempotency-Key request header.
  • If you repeat a request with the same key and the same body, the API returns the original response instead of performing the operation again. Replayed responses carry an Idempotent-Replayed: true header.
  • Keys are scoped to your partner account and remembered for 24 hours. After that window the same value may be reused for a new operation.

Status codes you may receive

  • 409 Conflict — a request with the same key is still being processed. Wait a moment and retry.
  • 422 Unprocessable Entity — the key was already used with a different request body. Use a new key for a different operation.

Notes

  • Only successful (2xx) responses are remembered. If a request fails, the key is released so you can safely retry it with the same key.
  • Reuse the same key only when retrying the same operation; use a fresh key for every new operation.

Idempotency keys are honoured on: create transaction, settle transaction, request cancellation, PayTo payment, and create dispute.

Authenticating requests

To authenticate requests, include a X-API-Key header with the value "{YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

To connect via API authentication is required.

Contact your GoEscrow account manager for a one time use URL token to create your X-API-Key. Send that specific X-API-Key in a custom header (replacing '123456789abcdef') as follows:

POST /v1/transactions HTTP/1.1
Host: partners.goescrow.net
X-API-Key: 123456789abcdef
Content-Type: application/json
Accept: application/json

System

GET api/v1/healthcheck

GET
https://partners.staging.goescrow.net
/api/v1/healthcheck
requires authentication

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/healthcheck" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:

Company Management

Manage Companies

Lookup a company by ABN

GET
https://partners.staging.goescrow.net
/api/v1/companies/lookup
requires authentication

Looks up an existing company by Australian Business Number. Access is limited to companies represented by a user belonging to the authenticated partner, unless using an internal API key.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

abn
string
required

The Australian Business Number. Formatting spaces are accepted.

Example:
40 650 703 736

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/companies/lookup?abn=40+650+703+736" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "ABC123",
        "name": "Acme Corp Pty Ltd",
        "abn": "40650703736",
        "acn": "004085616",
        "kyb_verified": true,
        "aml_verified": true,
        "aml_verified_at": "2026-06-25T00:00:00.000000Z",
        "bank_verified": true,
        "abr_status": "Active",
        "representatives": [
            {
                "id": "9d2e5c8a-1234-5678-9abc-def012345679",
                "reference": "ABC123",
                "name": "Jane Doe"
            }
        ]
    }
}
{
    "message": "Company not found or access denied."
}

Create a new company

POST
https://partners.staging.goescrow.net
/api/v1/companies
requires authentication

Creates a new company and attaches one or more existing users as its representatives.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/companies" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Acme Corp Pty Ltd\",
    \"abn\": \"40650703736\",
    \"acn\": \"004085616\",
    \"email\": \"info@acmecorp.com.au\",
    \"phone\": \"+61298765432\",
    \"website\": \"https:\\/\\/www.acmecorp.com.au\",
    \"type\": \"Proprietary Limited\",
    \"majority_owned_by_another_australian_company\": false,
    \"majority_owned_by_overseas_person_or_company\": false,
    \"majority_owned_by_listed_australian_company\": false,
    \"acting_as_trustee_for_a_trust\": false,
    \"representatives\": [
        \"9d2e5c8a-1234-5678-9abc-def012345678\"
    ],
    \"address\": {
        \"unit_number\": \"3\",
        \"street_number\": \"20\",
        \"street\": \"Company Street\",
        \"suburb\": \"Melbourne\",
        \"state\": \"VIC\",
        \"postcode\": \"3000\",
        \"country\": \"Australia\"
    }
}"
Example response:
{
    "data": {
        "id": "comp_123",
        "reference": "ABC123",
        "name": "Acme Corp Pty Ltd",
        "abn": "40650703736",
        "acn": "004085616",
        "kyb_verified": true,
        "aml_verified": true,
        "aml_verified_at": "2026-06-25T00:00:00.000000Z",
        "bank_verified": true,
        "abr_status": "Active",
        "representatives": [
            {
                "id": "9d2e5c8a-1234-5678-9abc-def012345678",
                "reference": "ABC123",
                "name": "Jane Doe"
            }
        ]
    }
}

Update a company

PUT
PATCH
https://partners.staging.goescrow.net
/api/v1/companies/{id}
requires authentication

Updates an existing company. Only provided fields will be updated. ABN must be omitted, even when unchanged; create a new company for a different ABN.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

company_id
string
required

The company UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://partners.staging.goescrow.net/api/v1/companies/1" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Acme Corp Pty Ltd\",
    \"acn\": \"004085616\",
    \"email\": \"info@acmecorp.com.au\",
    \"phone\": \"+61298765432\",
    \"website\": \"https:\\/\\/www.acmecorp.com.au\",
    \"type\": \"Proprietary Limited\",
    \"majority_owned_by_another_australian_company\": false,
    \"majority_owned_by_overseas_person_or_company\": false,
    \"majority_owned_by_listed_australian_company\": false,
    \"acting_as_trustee_for_a_trust\": false,
    \"add_representatives\": [
        \"9d2e5c8a-1234-5678-9abc-def012345678\"
    ],
    \"remove_representatives\": [
        \"9d2e5c8a-1234-5678-9abc-def012345679\"
    ],
    \"address\": {
        \"unit_number\": \"3\",
        \"street_number\": \"20\",
        \"street\": \"Company Street\",
        \"suburb\": \"Melbourne\",
        \"state\": \"VIC\",
        \"postcode\": \"3000\",
        \"country\": \"Australia\"
    }
}"
Example response:
{
    "data": {
        "id": "comp_123",
        "reference": "ABC123",
        "name": "Acme Corp Pty Ltd",
        "abn": "40650703736",
        "acn": "004085616",
        "kyb_verified": true,
        "aml_verified": true,
        "aml_verified_at": "2026-06-25T00:00:00.000000Z",
        "bank_verified": true,
        "abr_status": "Active",
        "representatives": [
            {
                "id": "9d2e5c8a-1234-5678-9abc-def012345678",
                "reference": "ABC123",
                "name": "Jane Doe"
            }
        ]
    }
}

Upload company files

POST
https://partners.staging.goescrow.net
/api/v1/companies/{company_id}/files
requires authentication

Uploads one or more files to a company filing cabinet. The authenticated partner must represent the company.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

company_id
string
required

The company UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/companies/9d2e5c8a-1234-5678-9abc-def012345678/files" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "files[]=@/tmp/phpm2l9dna0pvk41egCpca" 
Example response:
{
    "data": [
        {
            "id": "9d2e5c8a-1234-5678-9abc-def012345678",
            "file": "a1b2c3d4/document.pdf",
            "filename": "document.pdf",
            "created_at": "2024-01-15T10:30:00Z"
        }
    ]
}
{
    "message": "Company not found or access denied."
}

User Management

Manage Users

Create a new user

POST
https://partners.staging.goescrow.net
/api/v1/users
requires authentication

Creates a new user. Email and phone must be unique. The user will be automatically associated with the authenticated partner. If the authenticated Partner has welcome emails enabled, newly created API users receive a GoEscrow Welcome By Partner email with a 24-hour, single-use password setup link.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"john.doe@example.com\",
    \"phone\": \"+61412345678\",
    \"birth_date\": \"1990-01-15\",
    \"initiate_mobile_verification_flow\": \"yes\",
    \"address\": {
        \"unit_number\": \"10B\",
        \"street_number\": \"123\",
        \"street\": \"Smith St\",
        \"suburb\": \"Sydney\",
        \"state\": \"NSW\",
        \"postcode\": \"2000\"
    }
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "ABC123",
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@example.com",
        "phone": "+61412345678",
        "birth_date": "1990-01-15",
        "kyc_verified": false,
        "aml_verified": false,
        "aml_verified_at": null,
        "email_verified": false,
        "mobile_verified": false,
        "mobilekyc_verified": false,
        "bank_verified": false,
        "suspended": false,
        "address": {
            "unit_number": "10B",
            "street_number": "123",
            "street": "Smith St",
            "suburb": "Sydney",
            "state": "NSW",
            "postcode": "2000",
            "country": "Australia"
        }
    }
}

Update a user

PUT
PATCH
https://partners.staging.goescrow.net
/api/v1/users/{id}
requires authentication

Updates an existing user for the authenticated partner. Email and phone must remain unique.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request PUT \
    "https://partners.staging.goescrow.net/api/v1/users/1" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"john.doe@example.com\",
    \"phone\": \"+61412345678\",
    \"birth_date\": \"1990-01-15\",
    \"address\": {
        \"unit_number\": \"10B\",
        \"street_number\": \"123\",
        \"street\": \"Smith St\",
        \"suburb\": \"Sydney\",
        \"state\": \"NSW\",
        \"postcode\": \"2000\"
    }
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "ABC123",
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@example.com",
        "phone": "+61412345678",
        "birth_date": "1990-01-15",
        "kyc_verified": false,
        "aml_verified": false,
        "aml_verified_at": null,
        "email_verified": false,
        "mobile_verified": false,
        "mobilekyc_verified": false,
        "bank_verified": false,
        "suspended": false,
        "address": {
            "unit_number": "10B",
            "street_number": "123",
            "street": "Smith St",
            "suburb": "Sydney",
            "state": "NSW",
            "postcode": "2000",
            "country": "Australia"
        }
    }
}

Lookup user or company

GET
https://partners.staging.goescrow.net
/api/v1/users/lookup
requires authentication

Look up an existing user by email, phone, or GoEscrow reference. Company reference matches return only the company name and reference. Exactly one parameter must be provided.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

email
string

The user's email address. Supply exactly one of email, phone, or reference.

Example:
john.doe@example.com
phone
string

The user's phone number. Supply exactly one of email, phone, or reference. Accepts 0412345678, +61412345678, or 61412345678.

Example:
+61412345678
reference
string

A user or company GoEscrow reference. Supply exactly one of email, phone, or reference.

Example:
ABC123

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/lookup?email=john.doe%40example.com&phone=%2B61412345678&reference=ABC123" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "ABC123",
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@example.com",
        "phone": "+61412345678",
        "birth_date": "1990-01-15",
        "kyc_verified": true,
        "aml_verified": true,
        "aml_verified_at": "2026-06-25T00:00:00.000000Z",
        "email_verified": true,
        "mobile_verified": true,
        "mobilekyc_verified": true,
        "bank_verified": true,
        "suspended": false,
        "address": {
            "unit_number": "1",
            "street_number": "123",
            "street": "Main Street",
            "suburb": "Sydney",
            "state": "NSW",
            "postcode": "2000",
            "country": "Australia"
        }
    }
}
{
    "data": {
        "name": "Acme Corp Pty Ltd",
        "reference": "XYZ789"
    }
}
{
    "message": "User or company not found."
}
{
    "message": "At least one of email or phone is required."
}
{
    "message": "Please provide either email or phone, not both."
}
{
    "message": "Please provide only one of email, phone, or reference."
}

Send mobile verification code

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/verify-mobile
requires authentication

Sends a verification code via SMS to the user's registered phone number. The code will be valid for a limited time.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/verify-mobile" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Verify mobile phone

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/verify-mobile
requires authentication

Verifies the mobile phone number using the code sent via SMS. Upon successful verification, the user's phone will be marked as verified.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/verify-mobile" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"123456\"
}"
Example response:
[Empty response]

Send email verification code

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/verify-email
requires authentication

Sends a verification code via email to the user's registered email address. The code will be valid for a limited time.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/verify-email" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Verify email address

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/verify-email
requires authentication

Verifies the email address using the code sent via email. Upon successful verification, the user's email will be marked as verified.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/verify-email" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"123456\"
}"
Example response:
[Empty response]

Generate user bank statement

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/bank-statement
requires authentication

Generates and returns a PDF bank statement for the specified user. The statement includes transaction history and account details.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/bank-statement" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[]

Upload user files

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/files
requires authentication

Uploads one or more files to a user filing cabinet. The authenticated partner must own the user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/files" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "files[]=@/tmp/phpi471fdopvaa75JePigk" 
Example response:
{
    "data": [
        {
            "id": "9d2e5c8a-1234-5678-9abc-def012345678",
            "file": "a1b2c3d4/document.pdf",
            "filename": "document.pdf",
            "created_at": "2024-01-15T10:30:00Z"
        }
    ]
}
{
    "message": "User not found or access denied."
}
POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/password-reset-link
requires authentication

Generates a 24-hour password reset link for the user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/password-reset-link" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"send_email\": true
}"
Example response:

Dispute Management

Create and manage transaction disputes

Create a dispute

POST
https://partners.staging.goescrow.net
/api/v1/disputes
requires authentication

Creates a dispute for a transaction. This will mark the transaction as disputed and create a compliance note for the CS team to review.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Idempotency-Key
Example:
6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/disputes" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Idempotency-Key: 6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"requester_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"requester_role\": \"buyer\",
    \"transaction_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"request_type\": \"pause\",
    \"issue_description\": \"The goods were not delivered as described.\"
}"
Example response:
{
    "message": "Dispute created successfully.",
    "dispute_reference": "DISP-2024-001234",
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "disputed"
}
{
    "message": "Transaction status does not allow disputes."
}

Transaction Cancellation

Manage Transaction Cancellations

Request transaction cancellation

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/cancellation-request
requires authentication

Initiates a cancellation request for a transaction. Pending transactions are cancelled immediately. Accepted funded transactions require requester 2FA before the request is created. Accepted unfunded transactions move to cancellation_requested for counterparty response.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Idempotency-Key
Example:
6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/cancellation-request" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Idempotency-Key: 6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"requester_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\"
}"
Example response:
{
    "message": "Cancellation requested. 2FA verification required. Codes sent to requester's email and phone.",
    "requires_2fa": true,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "accepted"
}
{
    "message": "Cancellation requested. Waiting for counterparty response.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "cancellation_requested"
}
{
    "message": "Transaction cancelled successfully.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "canceled"
}

Verify cancellation request 2FA codes

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/verify-cancellation
requires authentication

Verifies requester 2FA for a funded accepted transaction and creates the cancellation request for counterparty response.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/verify-cancellation" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"requester_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"email_code\": \"123456\",
    \"phone_code\": \"654321\"
}"
Example response:
{
    "message": "Cancellation requested. Waiting for counterparty response.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "cancellation_requested"
}
{
    "message": "Invalid or expired verification codes."
}

Accept transaction cancellation

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/cancellation-accept
requires authentication

Accepts a pending cancellation request. Funded transactions require counterparty 2FA before cancellation is completed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/cancellation-accept" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"accepter_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\"
}"
Example response:
{
    "message": "Cancellation acceptance requires 2FA verification. Codes sent to accepter's email and phone.",
    "requires_2fa": true,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "cancellation_requested"
}
{
    "message": "Cancellation accepted. Transaction cancelled successfully.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "canceled"
}

Verify cancellation acceptance 2FA codes

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/verify-cancellation-accept
requires authentication

Verifies counterparty 2FA and completes cancellation for a funded transaction.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/verify-cancellation-accept" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"accepter_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"email_code\": \"123456\",
    \"phone_code\": \"654321\"
}"
Example response:
{
    "message": "Cancellation accepted. Transaction cancelled successfully.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "canceled"
}
{
    "message": "Invalid or expired verification codes."
}

Deny transaction cancellation

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/cancellation-deny
requires authentication

Denies a pending cancellation request and reverts the transaction to accepted unless the timed-escrow safety check applies.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/cancellation-deny" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"denier_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\"
}"
Example response:
{
    "message": "Cancellation denied. Transaction reverted to active status.",
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "accepted"
}

Transaction Management

Manage Transactions

Create transaction

POST
https://partners.staging.goescrow.net
/api/v1/transactions
requires authentication

Creates a new escrow transaction with disbursements. Partner API transactions are auto-accepted (skip pending status).

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Idempotency-Key
Example:
6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Idempotency-Key: 6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"buy\",
    \"type\": \"anytime_escrow\",
    \"amount_type\": \"escrow\",
    \"other_user\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"other_company_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"sub_type\": \"marketplace\",
    \"user_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"company_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"marketplace_operator_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"release_at\": \"2024-12-31T23:59:59Z\",
    \"details\": \"Dental Surgery\",
    \"amount\": 15000050,
    \"disbursements\": [
        \"eligendi\"
    ]
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "TXN-2024-001234",
        "type": "anytime_escrow",
        "sub_type": "marketplace",
        "status": "accepted",
        "funding_status": "pending",
        "amount": 150000.5,
        "details": "Property settlement for 123 Main St",
        "created_at": "2024-01-15T10:30:00Z"
    }
}
{
    "message": "This company is not currently eligible to transact.",
    "errors": {
        "company_id": [
            "This company is not currently eligible to transact."
        ]
    }
}

Get transaction status by identifier

GET
https://partners.staging.goescrow.net
/api/v1/transactions/status
requires authentication

Returns full transaction details including funding information. Provide exactly one of transaction_id or reference_id. Requires party_id to verify access.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

transaction_id
string

The transaction UUID (36-character internal identifier). Required when reference_id is not provided. Must not be provided with reference_id.

Example:
9d2e5c8a-1234-5678-9abc-def012345678
reference_id
string

The transaction reference number. Required when transaction_id is not provided. Must not be provided with transaction_id.

Example:
TXN-2024-001234
party_id
string
required

The ID of the buyer, seller, or disbursement recipient to verify access

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/transactions/status?transaction_id=9d2e5c8a-1234-5678-9abc-def012345678&reference_id=TXN-2024-001234&party_id=9d2e5c8a-1234-5678-9abc-def012345678" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transaction_id\": \"de17da62-a600-3a0d-8799-a28536037458\",
    \"reference_id\": \"ea\",
    \"party_id\": \"8270e4ea-b05c-3440-a56d-57234a59f063\"
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "TXN-2024-001234",
        "type": "anytime_escrow",
        "sub_type": "marketplace",
        "status": "accepted",
        "funding_status": "pending",
        "amount": 150000.5,
        "fee": 1500,
        "amount_with_fee": 151500.5,
        "details": "Property settlement",
        "release_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "buyer_id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "buyer_reference": "ABC123",
        "seller_id": "9d2e5c8a-1234-5678-9abc-def012345679",
        "seller_reference": "XYZ789",
        "other_party_hint": "J*** D***",
        "funding_details": {
            "bsb": "123456",
            "account_number": "12345678",
            "account_name": "GoEscrow Trust",
            "pay_id": "pay@goescrow.com.au",
            "reference": "TXN-2024-001234",
            "rail": "azupay",
            "account_scope": "transaction",
            "payment_reference": "TXN-2024-001234",
            "reference_required": false,
            "provisioning_status": "ready",
            "amount_received": "0.00",
            "amount_outstanding": "151500.50"
        }
    }
}

Get transaction status

GET
https://partners.staging.goescrow.net
/api/v1/transactions/{id}
requires authentication

Returns full transaction details including funding information. Requires party_id to verify access.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Query Parameters

party_id
string
required

The ID of the buyer or seller to verify access

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/transactions/1?party_id=9d2e5c8a-1234-5678-9abc-def012345678" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "reference": "TXN-2024-001234",
        "type": "anytime_escrow",
        "sub_type": "marketplace",
        "status": "accepted",
        "funding_status": "pending",
        "amount": 150000.5,
        "fee": 1500,
        "amount_with_fee": 151500.5,
        "details": "Property settlement",
        "release_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "buyer_id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "buyer_reference": "ABC123",
        "seller_id": "9d2e5c8a-1234-5678-9abc-def012345679",
        "seller_reference": "XYZ789",
        "other_party_hint": "J*** D***",
        "funding_details": {
            "bsb": "123456",
            "account_number": "12345678",
            "account_name": "GoEscrow Trust",
            "pay_id": "pay@goescrow.com.au",
            "reference": "TXN-2024-001234",
            "rail": "azupay",
            "account_scope": "transaction",
            "payment_reference": "TXN-2024-001234",
            "reference_required": false,
            "provisioning_status": "ready",
            "amount_received": "0.00",
            "amount_outstanding": "151500.50"
        }
    }
}

Get transaction quote

POST
https://partners.staging.goescrow.net
/api/v1/transactions/quote
requires authentication

Calculates fees and provides a quote for a transaction without creating it. Uses the same request structure as transaction creation. This allows partners to show pricing to their customers before committing to a transaction.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/quote" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"buy\",
    \"type\": \"anytime_escrow\",
    \"amount_type\": \"escrow\",
    \"other_user\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"other_company_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"sub_type\": \"super_disbursement\",
    \"user_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"company_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"release_at\": \"2024-12-31T23:59:59Z\",
    \"details\": \"Dental Surgery\",
    \"amount\": 15000050,
    \"disbursements\": [
        \"voluptatem\"
    ]
}"
Example response:
{
    "data": {
        "sub_type": "super_disbursement",
        "amount": 150000.5,
        "partner_fee": 750,
        "partner_fee_percentage": 0.5,
        "goescrow_fee": 300,
        "goescrow_fee_percentage": 0.2,
        "total_fees": 1050,
        "net_amount": 149950.5,
        "disbursements_count": 2,
        "disbursements": [
            {
                "user_id": "9d2e5c8a-1234-5678-9abc-def012345679",
                "amount": 75000.25
            },
            {
                "company_id": "9d2e5c8a-1234-5678-9abc-def012345680",
                "amount": 74950.25
            }
        ]
    }
}

Upload transaction files

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/files
requires authentication

Uploads one or more files to a transaction filing cabinet. The authenticated partner must own the transaction or be its marketplace operator.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/files" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "files[]=@/tmp/phpp5ieuie8tio0bNkBFIH" 
Example response:
{
    "data": [
        {
            "id": "9d2e5c8a-1234-5678-9abc-def012345678",
            "file": "a1b2c3d4/document.pdf",
            "filename": "document.pdf",
            "created_at": "2024-01-15T10:30:00Z"
        }
    ]
}
{
    "message": "Transaction not found or access denied."
}

Trigger marketplace settlement

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/settle
requires authentication

Triggers settlement for a marketplace escrow transaction. Only the marketplace operator can trigger settlement.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Idempotency-Key
Example:
6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/settle" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Idempotency-Key: 6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"buyer_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\",
    \"seller_id\": \"9d2e5c8a-1234-5678-9abc-def012345679\",
    \"settlement_amount\": 150000.5
}"
Example response:
{
    "message": "Settlement initiated successfully.",
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "settlement_in_progress"
}
{
    "message": "Only the marketplace operator can trigger settlement."
}
{
    "message": "Only marketplace escrow transactions can be settled via API."
}

Transaction PayTo Payment

Initiate PayTo Payments for Transactions

Initiate PayTo payment

POST
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/payto-payment
requires authentication

Initiates a PayTo debit payment from the specified user's bank account to fund the transaction. The user must have an active PayTo agreement. This endpoint dispatches an async job and returns immediately with a tracking ID.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Idempotency-Key
Example:
6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/payto-payment" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Idempotency-Key: 6f3a8e1c-9b2d-4f5a-8c1e-2a7b9d0e1f23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"9d2e5c8a-1234-5678-9abc-def012345678\"
}"
Example response:
{
    "code": "accepted",
    "message": "Payment initiation queued. Use the tracking_id to poll for status.",
    "tracking_id": "payto_9d2e5c8a"
}
{
    "code": "transaction_already_funded",
    "message": "This transaction is already funded."
}
{
    "code": "no_payment_agreement",
    "message": "User does not have a PayTo agreement set up."
}

Check PayTo payment status

GET
https://partners.staging.goescrow.net
/api/v1/transactions/{transaction_id}/payto-payment/{id}
requires authentication

Checks the status of a PayTo payment using either a tracking_id (from async initiation) or a payment_initiation_id (from Azupay).

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

transaction_id
string
required

The transaction UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
id
string
required

Either a tracking_id (e.g., payto_abc123) or an Azupay payment_initiation_id (e.g., PI-123456789)

Example:
payto_abc123

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/transactions/9d2e5c8a-1234-5678-9abc-def012345678/payto-payment/payto_abc123" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "code": "settled",
    "message": "Payment settled successfully. Transaction is now funded.",
    "status": "settled"
}
{
    "code": "pending",
    "message": "Payment is still processing.",
    "status": "pending"
}
{
    "code": "failed",
    "message": "Payment was rejected.",
    "status": "failed"
}
{
    "code": "queued",
    "message": "Payment initiation is queued for processing.",
    "status": "queued"
}

User Bank Account Management

Manage User Bank Accounts

Update user bank account

PUT
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/bank-account
requires authentication

Updates the bank account details for a user. This will automatically trigger a verification payout of $0.01 to the new account with a 6-digit verification code in the transaction description.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/bank-account" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bsb_number\": \"123456\",
    \"account_number\": \"12345678\",
    \"account_name\": \"John Doe\"
}"
Example response:

Verify user bank account

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/bank-account/verify
requires authentication

Verifies the bank account using the 6-digit code received in the $0.01 verification payout.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/bank-account/verify" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"123456\"
}"
Example response:

User Identification Management

Manage User Identification Documents

Create or update user passport

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/passport
requires authentication

Creates a new passport record for the user or updates an existing one. Only one passport per user is allowed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/passport" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"document_number\": \"N1234567\",
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"middle_name\": \"Michael\",
    \"issuing_country\": \"United Kingdom\",
    \"nationality\": \"British\",
    \"date_of_birth\": \"1990-01-15\",
    \"date_of_issue\": \"2020-01-15\",
    \"date_of_expiration\": \"2030-01-15\",
    \"place_of_birth\": \"Sydney, Australia\",
    \"gender\": \"M\"
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "document_number": "N1234567",
        "first_name": "John",
        "last_name": "Doe",
        "middle_name": "Michael",
        "nationality": "United Kingdom",
        "issuing_country": "United Kingdom",
        "date_of_birth": "1990-01-15",
        "date_of_issue": "2020-01-15",
        "date_of_expiration": "2030-01-15",
        "place_of_birth": "Sydney, Australia",
        "gender": "M",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}

Get user passport

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/passport
requires authentication

Retrieves the passport information for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/passport" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "document_number": "N1234567",
        "first_name": "John",
        "last_name": "Doe",
        "middle_name": "Michael",
        "nationality": "United Kingdom",
        "issuing_country": "United Kingdom",
        "date_of_birth": "1990-01-15",
        "date_of_issue": "2020-01-15",
        "date_of_expiration": "2030-01-15",
        "place_of_birth": "Sydney, Australia",
        "gender": "M",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}
{
    "error": "Passport not found for this user."
}

Delete user passport

DELETE
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/passport
requires authentication

Deletes the passport record for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/passport" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "error": "Passport not found for this user."
}

Create or update user Medicare card

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/medicare
requires authentication

Creates a new Medicare card record for the user or updates an existing one. Only one Medicare card per user is allowed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/medicare" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"document_number\": \"1234567890\",
    \"name_on_card\": \"John Michael Doe\",
    \"card_color\": \"green\",
    \"individual_reference_number\": \"1\",
    \"expiration_date\": \"2025-12\"
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "document_number": "1234567890",
        "name_on_card": "John Michael Doe",
        "card_color": "green",
        "individual_reference_number": "1",
        "expiration_date": "2025-12",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}

Get user Medicare card

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/medicare
requires authentication

Retrieves the Medicare card information for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/medicare" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "document_number": "1234567890",
        "name_on_card": "John Michael Doe",
        "card_color": "green",
        "individual_reference_number": "1",
        "expiration_date": "2025-12",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}
{
    "error": "Medicare card not found for this user."
}

Delete user Medicare card

DELETE
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/medicare
requires authentication

Deletes the Medicare card record for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/medicare" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "error": "Medicare card not found for this user."
}

Create or update user driver license

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/driver-license
requires authentication

Creates a new driver license record for the user or updates an existing one. Only one driver license per user is allowed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/driver-license" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"state_issued\": \"NSW\",
    \"license_number\": \"12345678\",
    \"card_number\": \"1234567890\",
    \"expiration_date\": \"2030-01-15\",
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"middle_name\": \"Michael\",
    \"date_of_birth\": \"1990-01-15\"
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "state_issued": "NSW",
        "license_number": "12345678",
        "card_number": "1234567890",
        "expiration_date": "2030-01-15",
        "first_name": "John",
        "last_name": "Doe",
        "middle_name": "Michael",
        "date_of_birth": "1990-01-15",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}

Get user driver license

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/driver-license
requires authentication

Retrieves the driver license information for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/driver-license" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "state_issued": "NSW",
        "license_number": "12345678",
        "card_number": "1234567890",
        "expiration_date": "2030-01-15",
        "first_name": "John",
        "last_name": "Doe",
        "middle_name": "Michael",
        "date_of_birth": "1990-01-15",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}
{
    "error": "Driver license not found for this user."
}

Delete user driver license

DELETE
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/driver-license
requires authentication

Deletes the driver license record for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/driver-license" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "error": "Driver license not found for this user."
}

Create or update user immigration card

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/immigration-card
requires authentication

Creates a new immigration card record for the user or updates an existing one. Only one immigration card per user is allowed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/immigration-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"given_name\": \"John\",
    \"family_name\": \"Doe\",
    \"card_number\": \"IMM123456\",
    \"expiration_date\": \"2030-01-15\",
    \"card_type\": \"ams\",
    \"vevo_check_given_name\": \"John\",
    \"vevo_check_family_name\": \"Doe\",
    \"vevo_check_passport_number\": \"N1234567\",
    \"vevo_check_country_of_issue\": \"Australia\"
}"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "given_name": "John",
        "family_name": "Doe",
        "card_number": "IMM123456",
        "expiration_date": "2030-01-15",
        "card_type": "ams",
        "vevo_check_given_name": "John",
        "vevo_check_family_name": "Doe",
        "vevo_check_passport_number": "N1234567",
        "vevo_check_country_of_issue": "Australia",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}

Get user immigration card

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/immigration-card
requires authentication

Retrieves the immigration card information for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/immigration-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "given_name": "John",
        "family_name": "Doe",
        "card_number": "IMM123456",
        "expiration_date": "2030-01-15",
        "card_type": "ams",
        "vevo_check_given_name": "John",
        "vevo_check_family_name": "Doe",
        "vevo_check_passport_number": "N1234567",
        "vevo_check_country_of_issue": "Australia",
        "rapidid_verification_requested_at": null,
        "rapidid_verified_at": null,
        "rapidid_failed_at": null,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
    }
}
{
    "error": "Immigration card not found for this user."
}

Delete user immigration card

DELETE
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/immigration-card
requires authentication

Deletes the immigration card record for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/immigration-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "error": "Immigration card not found for this user."
}
POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/centrelink-card
requires authentication

Creates a new Centrelink card record for the user or updates an existing one. Only one Centrelink card per user is allowed.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/centrelink-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"crn\": \"123456789A\",
    \"name_on_card\": \"John Doe\",
    \"expiration_date\": \"2030-01-15\",
    \"card_type\": \"hcc\"
}"
Example response:
GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/centrelink-card
requires authentication

Retrieves the Centrelink card information for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/centrelink-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
DELETE
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/centrelink-card
requires authentication

Deletes the Centrelink card record for the specified user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678
Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/centrelink-card" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:

User PayTo Agreement Management

Manage User PayTo Agreements

Get PayTo agreement status

GET
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/payto-agreement
requires authentication

Returns the current PayTo agreement status and details for a user.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/payto-agreement" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "has_agreement": true,
    "agreement_id": "PA-123456",
    "maximum_amount": 10000,
    "status": "ACTIVE"
}
{
    "has_agreement": false,
    "agreement_id": null,
    "maximum_amount": null,
    "status": null
}

Create PayTo agreement

POST
https://partners.staging.goescrow.net
/api/v1/users/{user_id}/payto-agreement
requires authentication

Creates a new PayTo agreement for the user. The user must authorize the agreement in their banking app.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The user UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/users/9d2e5c8a-1234-5678-9abc-def012345678/payto-agreement" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"maximum_amount\": 5000,
    \"pay_id\": \"john@example.com\",
    \"pay_id_type\": \"EMAIL\",
    \"account_name\": \"John Doe\",
    \"account_number\": \"12345678\",
    \"bsb\": \"123456\"
}"
Example response:
{
    "agreement_id": "PA-123456",
    "status": "CREATED",
    "message": "PayTo agreement created. User must authorize in their banking app."
}

Webhook Management

Manage webhook subscriptions for transaction events

List webhooks

GET
https://partners.staging.goescrow.net
/api/v1/webhooks
requires authentication

Returns all registered webhooks for the authenticated partner.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/webhooks" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "9d2e5c8a-1234-5678-9abc-def012345678",
            "url": "https://partner.com/webhooks/goescrow",
            "events": [
                "transaction.created",
                "transaction.clearance_pending",
                "transaction.funded",
                "transaction.status_changed",
                "transaction.funding_status_changed"
            ],
            "is_active": true,
            "last_triggered_at": "2024-01-15T10:30:00Z",
            "failure_count": 0,
            "created_at": "2024-01-01T00:00:00Z"
        }
    ]
}

Register webhook

POST
https://partners.staging.goescrow.net
/api/v1/webhooks
requires authentication

Registers a new webhook URL to receive transaction event notifications. Available events: transaction.created (when a transaction is created), transaction.clearance_pending (when inbound funding is held for clearance), transaction.funded (when a transaction is funded), transaction.status_changed (when transaction status changes), transaction.funding_status_changed (when transaction funding status changes), transaction.completed (when a transaction is completed/settled).

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/webhooks" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"https:\\/\\/partner.com\\/webhooks\\/goescrow\",
    \"events\": [
        \"transaction.created\",
        \"transaction.clearance_pending\"
    ]
}"
Example response:
{
    "message": "Webhook registered successfully.",
    "id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "url": "https://partner.com/webhooks/goescrow",
    "secret": "whsec_abc123xyz789...",
    "events": [
        "transaction.created",
        "transaction.clearance_pending"
    ]
}

Delete webhook

DELETE
https://partners.staging.goescrow.net
/api/v1/webhooks/{id}
requires authentication

Unregisters a webhook.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhook
string
required

The webhook ID

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Response Fields

Example request:
curl --request DELETE \
    "https://partners.staging.goescrow.net/api/v1/webhooks/1" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Webhook deleted successfully."
}
{
    "message": "Webhook not found."
}

List webhook deliveries

GET
https://partners.staging.goescrow.net
/api/v1/webhooks/{webhook_id}/deliveries
requires authentication

Returns the delivery history for a webhook (most recent first), so missed events can be inspected and replayed after an outage. Each delivery records the event, the exact payload that was (or will be) sent, the number of attempts, and the last response status.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhook
string
required

The webhook ID

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/webhooks/1/deliveries" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "9f1b2c3d-4567-89ab-cdef-0123456789ab",
            "event": "transaction.funded",
            "status": "failed",
            "attempts": 3,
            "response_status": 500,
            "last_attempted_at": "2024-01-15T10:32:00Z",
            "delivered_at": null,
            "created_at": "2024-01-15T10:30:00Z",
            "payload": {
                "transaction_id": "...",
                "status": "pending"
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 50,
        "total": 1
    }
}

Redeliver a webhook event

POST
https://partners.staging.goescrow.net
/api/v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver
requires authentication

Queues a fresh delivery attempt for a past event, using the original payload. Use this to backfill events your endpoint missed during an outage. A new delivery record is created (with a new id) so the original attempt history is preserved.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhook
string
required

The webhook ID

Example:
9d2e5c8a-1234-5678-9abc-def012345678
delivery
string
required

The delivery ID to redeliver

Example:
9f1b2c3d-4567-89ab-cdef-0123456789ab

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/webhooks/1/deliveries/1/redeliver" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Webhook delivery has been queued for redelivery.",
    "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
    "event": "transaction.funded",
    "status": "pending"
}
{
    "message": "Delivery not found."
}
{
    "message": "This delivery is still in progress; wait for it to finish before redelivering."
}

Company Bank Account Management

Manage company bank accounts using Confirmation of Payee

Update company bank account

PUT
https://partners.staging.goescrow.net
/api/v1/companies/{company_id}/bank-account
requires authentication

Updates company bank details and runs Confirmation of Payee checks against the company's active known names.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

company_id
string
required

The company UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://partners.staging.goescrow.net/api/v1/companies/9d2e5c8a-1234-5678-9abc-def012345678/bank-account" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bsb_number\": \"123456\",
    \"account_number\": \"12345678\",
    \"account_name\": \"Acme Corp Pty Ltd\"
}"
Example response:

Re-check company bank account

POST
https://partners.staging.goescrow.net
/api/v1/companies/{company_id}/bank-account/verify
requires authentication

Re-runs Confirmation of Payee against the company's existing bank details. This is not payout-code verification.

Headers

X-API-Key
Example:
{YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

company_id
string
required

The company UUID (36-character internal identifier)

Example:
9d2e5c8a-1234-5678-9abc-def012345678

Response Fields

Example request:
curl --request POST \
    "https://partners.staging.goescrow.net/api/v1/companies/9d2e5c8a-1234-5678-9abc-def012345678/bank-account/verify" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response: