Sandbox Testing & Simulations
Updated over a week ago

Try out your happy paths and not-so happy paths; the sandbox is a great place to get started with PayTo without transferring actual funds. All transactions are simulated and no communication with any financial institutions are performed.

NOTE:

  • All Agreements and Agreement amendments will expire after 24 hours if no action is performed

  • All 6 digits BSBs are valid in the sandbox with the exception of the following:

    • 100000: simulates an invalid BSB

    • 100001: simulates a financial institution that does not have PayTo debtor capabilities

    • 100002: simulates a financial institution that is not able to receive an NPP payment

  • The debtor must have a BBAN with an account number of 9 digits or less


Debtor Response Simulations

A special Sandbox testing object has been made available when creating an Agreement, an Agreement modification, or a Payment to help simulate your customer interactions.

NOTE: The delay attribute allows you to simulate a delay:

  • if supplied, can be used to simulate when the action should be performed up to a maximum of 86400 seconds (24 hours)

  • if omitted, will cause the action to be performed immediately

Simulation Attribute Sample

 {
"simulation": {
"type": "debtor_accept",
"delay": 300,
}
}

Create Agreement & Create Amendment

Type

Description

debtor_accept

Simulates an Agreement/Amendment being Accepted by the debtor

debtor_decline

Simulates an Agreement/Amendment being Declined by the debtor

expire

Simulates an Agreement/Amendment auto-expiring after the specified delay.

In the real world, an expiry will occur if no action is performed against an Agreement after 6 business days

debtor_account_type_not_supported

Simulates a debtor account that does not support PayTo

debtor_alias_not_found

Simulates a debtor's PayID not being found (i.e. incorrect).

creditor_alias_not_found

Simulates a creditor's PayID not being found (i.e. incorrect).

alias_resolution_service_unavailable

Simulates the addressing service not being available. In other words, PayID cannot be used.

Create Payment

Type

Description

auto_settle

Simulates a PayTo Payment with an outcome of Settled

insufficient_funds

Simulates a PayTo Payment with an outcome of Failed due to insufficient funds

requires_investigation

creditor_account_type_not_supported

Simulates a creditor account that does not support PayTo

creditor_account_closed

Simulates a closed creditor account

debtor_account_closed

Simulates a closed debtor account

financial_infrastructure_unavailable

debtor_alias_not_found

Simulates a debtor's PayID not being found (i.e. incorrect).

creditor_alias_not_found

Simulates a creditor's PayID not being found (i.e. incorrect).

alias_resolution_service_unavailable

Simulates the addressing service not being available. In other words, PayID cannot be used.

Cancel/Suspend Mandate

Type

Description

already_cancelled

Simulates performing a mandate action against a mandate that has already been cancelled

Note: This would only occur if both merchant and customer initiate a mandate action at the same time


Debtor Initiated Agreement Simulations

The simulate debtor endpoint is available to help simulate debtor-initiated actions for an agreement.

Endpoint

POST /payto/agreements/{agreement_uid}/simulate_debtor_action

Request Payload

{
"debtor_action": "cancellation",
"reason": "customer_requested",
"narrative": "My custom description"
}

Debtor Action Types

Debtor Action Types

Description

cancellation

Simulates an Agreement cancellation triggered by the debtor

suspension

Simulates an Agreement suspension triggered by the debtor

reactivation

Simulates an Agreement reactivation triggered by the debtor

amendment

Simulates a unilateral Agreement amendment triggered by the debtor

Cancellation Sample Webhook

{
"data": {
"id": "0188b7fb-8bc9-befd-4652-d3f5e7c4f4bd",
"body": {
"reason": {
"code": "MD16",
"title": "Requested By Customer",
"detail": "Agreement/Amendment action requested by the Payer Customer",
"narrative": "My custom description"
},
"caused_by": "debtor"
},
"type": "payto_agreement.cancelled",
"published_at": "2023-06-14T13:38:15.881+10:00",
"resource_uid": "biz_20221231_G7MQWwkQZIP8vbfH",
"resource_type": "payto_agreement"
},
"links": {
"resource": "https://api.sandbox.split.cash/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH"
}
}

Notable Webhook Fields

resource_uid

uid will vary per agreement

(eg. biz_agreement_G7MQWwkQZIP8vbfH)

type

payto_agreement.cancelled

caused_by

debtor

resource_type

payto_agreement

Suspension Sample Webhook

{
"data": {
"id": "0188b7fd-099e-cb2f-23a9-b7bfac0682e1",
"body": {
"reason": {
"code": "MD16",
"title": "Requested By Customer",
"detail": "Agreement/Amendment action requested by the Payer Customer",
"narrative": "My custom description"
},
"caused_by": "debtor"
},
"type": "payto_agreement.suspended",
"published_at": "2023-06-14T13:39:53.630+10:00",
"resource_uid": "biz_agreement_G7MQWwkQZIP8vbfH",
"resource_type": "payto_agreement"
},
"links": {
"resource": "https://api.sandbox.split.cash/payto/agreements/biz_agreement_G7MQWwkQZIP8vbfH"
}
}

Notable Webhook Fields

resource_uid

uid will vary per agreement

(eg. biz_agreement_G7MQWwkQZIP8vbfH)

type

payto_agreement.suspended

caused_by

debtor

resource_type

payto_agreement

Reactivation Sample Webhook

{
"data": {
"id": "0188b7ff-1263-bdac-74c9-42ada1a70ad4",
"body": {
"caused_by": "debtor"
},
"type": "payto_agreement.reactivated",
"published_at": "2023-06-14T13:42:06.947+10:00",
"resource_uid": "biz_agreement_G7MQWwkQZIP8vbfH",
"resource_type": "payto_agreement"
},
"links": {
"resource": "https://api.sandbox.split.cash/payto/agreements/biz_agreement_G7MQWwkQZIP8vbfH"
}
}

Notable Webhook Fields

resource_uid

uid will vary per agreement

(eg. biz_agreement_G7MQWwkQZIP8vbfH)

type

payto_agreement.reactivated

caused_by

debtor

resource_type

payto_agreement

Amendment Sample Webhook

{
"data": {
"id": "0188b7a9-a401-545f-ed83-7361a4b91295",
"body": {
"changes": {
"debtor": {
"party_name": "Ben McPearson",
"ultimate_party_name": "Tanya McPearson"
}
},
"caused_by": "debtor"
},
"type": "payto_agreement.amended",
"published_at": "2023-06-14T12:08:48.129+10:00",
"resource_uid": "biz_20221231_G7MQWwkQZIP8vbfH",
"resource_type": "payto_agreement"
},
"links": {
"resource": "https://api.sandbox.split.cash/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH"
}
}

Notable Webhook Fields

resource_uid

uid will vary per agreement

(eg. biz_agreement_G7MQWwkQZIP8vbfH)

type

payto_agreement.amended

debtor:

ultimate_party_name

party_name

Information will vary depending on the debtor’s amendments

caused_by

debtor

resource_type

payto_agreement

Did this answer your question?