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.

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

Create a new company

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

Creates a new company with a designated company representative. The company representative will be created as a user if they don't already exist.

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\": \"12345678901\",
    \"acn\": \"123456789\",
    \"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
}"
Example response:
{
    "data": {
        "id": "comp_123",
        "name": "Acme Corp Pty Ltd",
        "abn": "12345678901",
        "acn": "123456789",
        "company_representative_id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "company_representative_reference": "ABC123"
    }
}

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.

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\",
    \"abn\": \"12345678901\",
    \"acn\": \"123456789\",
    \"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
}"
Example response:
{
    "data": {
        "id": "comp_123",
        "name": "Acme Corp Pty Ltd",
        "company_representative_id": "9d2e5c8a-1234-5678-9abc-def012345678",
        "company_representative_reference": "ABC123"
    }
}

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.

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\",
    \"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,
        "email_verified": false,
        "mobile_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,
        "email_verified": false,
        "mobile_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

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

Look up an existing user by email OR phone without creating. At least one parameter must be provided. Returns user details if found, 404 if not found.

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 to search for (OR phone required).

Example:
john.doe@example.com
phone
string

The user's phone number to search for (OR email required). Can be in various formats (0412345678, +61412345678, 61412345678).

Example:
+61412345678

Response Fields

Example request:
curl --request GET \
    --get "https://partners.staging.goescrow.net/api/v1/users/lookup?email=john.doe%40example.com&phone=%2B61412345678" \
    --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,
        "email_verified": true,
        "mobile_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"
        }
    }
}
{
    "message": "User not found."
}
{
    "message": "At least one of email or phone is required."
}

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:
[]
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}
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 "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. For pending/unfunded transactions, cancellation is immediate. For funded transactions, 2FA codes will be sent to the requester.

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/cancellation-request" \
    --header "X-API-Key: {YOUR_AUTH_KEY}" \
    --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.",
    "requires_2fa": true,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "accepted"
}
{
    "message": "Transaction cancelled successfully.",
    "requires_2fa": false,
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "canceled"
}

Verify cancellation 2FA codes

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

Completes a funded transaction cancellation by verifying the 2FA codes sent to the requester.

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": "Transaction cancelled successfully. Refund initiated.",
    "transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
    "status": "canceled"
}
{
    "message": "Invalid or expired verification codes."
}

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}
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 "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"buy\",
    \"type\": \"anytime_escrow\",
    \"amount_type\": \"escrow\",
    \"other_user\": \"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\": [
        \"dignissimos\"
    ]
}"
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"
    }
}

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"
        }
    }
}

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

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\",
    \"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\": [
        \"repellendus\"
    ]
}"
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
    }
}

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}
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 "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}
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 "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\",
    \"nationality\": \"Australian\",
    \"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": "Australian",
        "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": "Australian",
        "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.funded",
                "transaction.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.funded (when a transaction is funded), transaction.status_changed (when transaction 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.funded\"
    ]
}"
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.funded"
    ]
}

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."
}