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.
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
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" Manage Companies
Creates a new company with a designated company representative. The company representative will be created as a user if they don't already exist.
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
}"
{
"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"
}
}
Updates an existing company. Only provided fields will be updated.
The company UUID (36-character internal identifier)
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
}"
{
"data": {
"id": "comp_123",
"name": "Acme Corp Pty Ltd",
"company_representative_id": "9d2e5c8a-1234-5678-9abc-def012345678",
"company_representative_reference": "ABC123"
}
}
Manage Users
Creates a new user. Email and phone must be unique. The user will be automatically associated with the authenticated partner.
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\"
}
}"
{
"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"
}
}
}
Updates an existing user for the authenticated partner. Email and phone must remain unique.
The user UUID (36-character internal identifier)
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\"
}
}"
{
"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"
}
}
}
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.
The user's email address to search for (OR phone required).
The user's phone number to search for (OR email required). Can be in various formats (0412345678, +61412345678, 61412345678).
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" {
"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"
}
}
}
Sends a verification code via SMS to the user's registered phone number. The code will be valid for a limited time.
The user UUID (36-character internal identifier)
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" [Empty response]
Verifies the mobile phone number using the code sent via SMS. Upon successful verification, the user's phone will be marked as verified.
The user UUID (36-character internal identifier)
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\"
}"
[Empty response]
Sends a verification code via email to the user's registered email address. The code will be valid for a limited time.
The user UUID (36-character internal identifier)
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" [Empty response]
Verifies the email address using the code sent via email. Upon successful verification, the user's email will be marked as verified.
The user UUID (36-character internal identifier)
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\"
}"
[Empty response]
Generates and returns a PDF bank statement for the specified user. The statement includes transaction history and account details.
The user UUID (36-character internal identifier)
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" []
Generates a 24-hour password reset link for the user.
The user UUID (36-character internal identifier)
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
}"
{
"reset_url": "https://app.goescrow.com.au/auth/forgot-password/abc123",
"expires_in": "24 hours"
}
Create and manage transaction disputes
Creates a dispute for a transaction. This will mark the transaction as disputed and create a compliance note for the CS team to review.
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.\"
}"
{
"message": "Dispute created successfully.",
"dispute_reference": "DISP-2024-001234",
"transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
"status": "disputed"
}
Manage Transaction Cancellations
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.
The transaction UUID (36-character internal identifier)
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\"
}"
{
"message": "Cancellation requested. 2FA verification required.",
"requires_2fa": true,
"transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
"status": "accepted"
}
Completes a funded transaction cancellation by verifying the 2FA codes sent to the requester.
The transaction UUID (36-character internal identifier)
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\"
}"
{
"message": "Transaction cancelled successfully. Refund initiated.",
"transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
"status": "canceled"
}
Manage Transactions
Creates a new escrow transaction with disbursements. Partner API transactions are auto-accepted (skip pending status).
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\"
]
}"
{
"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"
}
}
Returns full transaction details including funding information. Requires party_id to verify access.
The transaction UUID (36-character internal identifier)
The ID of the buyer or seller to verify access
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" {
"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"
}
}
}
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.
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\"
]
}"
{
"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
}
}
Triggers settlement for a marketplace escrow transaction. Only the marketplace operator can trigger settlement.
The transaction UUID (36-character internal identifier)
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
}"
{
"message": "Settlement initiated successfully.",
"transaction_id": "9d2e5c8a-1234-5678-9abc-def012345678",
"status": "settlement_in_progress"
}
Initiate PayTo Payments for Transactions
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.
The transaction UUID (36-character internal identifier)
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\"
}"
{
"code": "accepted",
"message": "Payment initiation queued. Use the tracking_id to poll for status.",
"tracking_id": "payto_9d2e5c8a"
}
Checks the status of a PayTo payment using either a tracking_id (from async initiation) or a payment_initiation_id (from Azupay).
The transaction UUID (36-character internal identifier)
Either a tracking_id (e.g., payto_abc123) or an Azupay payment_initiation_id (e.g., PI-123456789)
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" {
"code": "settled",
"message": "Payment settled successfully. Transaction is now funded.",
"status": "settled"
}
Manage User Bank Accounts
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.
The user UUID (36-character internal identifier)
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\"
}"
{
"message": "Bank account updated. Verification code sent via $0.01 payout.",
"is_verified": false
}
Verifies the bank account using the 6-digit code received in the $0.01 verification payout.
The user UUID (36-character internal identifier)
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\"
}"
{
"message": "Bank account verified successfully.",
"is_verified": true
}
Manage User Identification Documents
Creates a new passport record for the user or updates an existing one. Only one passport per user is allowed.
The user UUID (36-character internal identifier)
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\"
}"
{
"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"
}
}
Retrieves the passport information for the specified user.
The user UUID (36-character internal identifier)
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" {
"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"
}
}
Deletes the passport record for the specified user.
The user UUID (36-character internal identifier)
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" [Empty response]
Creates a new Medicare card record for the user or updates an existing one. Only one Medicare card per user is allowed.
The user UUID (36-character internal identifier)
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\"
}"
{
"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"
}
}
Retrieves the Medicare card information for the specified user.
The user UUID (36-character internal identifier)
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" {
"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"
}
}
Deletes the Medicare card record for the specified user.
The user UUID (36-character internal identifier)
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" [Empty response]
Creates a new driver license record for the user or updates an existing one. Only one driver license per user is allowed.
The user UUID (36-character internal identifier)
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\"
}"
{
"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"
}
}
Retrieves the driver license information for the specified user.
The user UUID (36-character internal identifier)
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" {
"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"
}
}
Deletes the driver license record for the specified user.
The user UUID (36-character internal identifier)
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" [Empty response]
Creates a new immigration card record for the user or updates an existing one. Only one immigration card per user is allowed.
The user UUID (36-character internal identifier)
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\"
}"
{
"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"
}
}
Retrieves the immigration card information for the specified user.
The user UUID (36-character internal identifier)
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" {
"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"
}
}
Deletes the immigration card record for the specified user.
The user UUID (36-character internal identifier)
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" [Empty response]
Creates a new Centrelink card record for the user or updates an existing one. Only one Centrelink card per user is allowed.
The user UUID (36-character internal identifier)
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\"
}"
{
"data": {
"id": "9d2e5c8a-1234-5678-9abc-def012345678",
"crn": "123456789A",
"name_on_card": "John Doe",
"expiration_date": "2030-01-15",
"card_type": "hcc",
"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"
}
}
Retrieves the Centrelink card information for the specified user.
The user UUID (36-character internal identifier)
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" {
"data": {
"id": "9d2e5c8a-1234-5678-9abc-def012345678",
"crn": "123456789A",
"name_on_card": "John Doe",
"expiration_date": "2030-01-15",
"card_type": "hcc",
"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"
}
}
Deletes the Centrelink card record for the specified user.
The user UUID (36-character internal identifier)
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" [Empty response]
Manage User PayTo Agreements
Returns the current PayTo agreement status and details for a user.
The user UUID (36-character internal identifier)
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" {
"has_agreement": true,
"agreement_id": "PA-123456",
"maximum_amount": 10000,
"status": "ACTIVE"
}
Creates a new PayTo agreement for the user. The user must authorize the agreement in their banking app.
The user UUID (36-character internal identifier)
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\"
}"
{
"agreement_id": "PA-123456",
"status": "CREATED",
"message": "PayTo agreement created. User must authorize in their banking app."
}
Manage webhook subscriptions for transaction events
Returns all registered webhooks for the authenticated partner.
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" {
"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"
}
]
}
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).
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\"
]
}"
{
"message": "Webhook registered successfully.",
"id": "9d2e5c8a-1234-5678-9abc-def012345678",
"url": "https://partner.com/webhooks/goescrow",
"secret": "whsec_abc123xyz789...",
"events": [
"transaction.created",
"transaction.funded"
]
}
Unregisters a webhook.
The webhook ID
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" {
"message": "Webhook deleted successfully."
}