Simulations
These sandbox-only APIs allow you to test receiving ACH payment scenarios.
Simulation operations are subject to the same authentication scheme as the Live APIs, and therefore require a valid Authentication token.
Receive ACH payment
This API allows you to simulate an incoming ACH payment with the specified amount (in cents) for testing purposes. The transaction.created webhook event will be fired.
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/payments |
| Data Type | achPayment |
| Timeout (Seconds) | 5 |
Attributes
Credit is supported).Relationships
curl -X POST 'https://api.s.unit.sh/sandbox/payments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achPayment",
"attributes": {
"amount": 10000,
"direction": "Credit",
"description": "Payment from Sandbox"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "1000"
}
}
}
}
}'
Note: the status for the sandbox payment requests is always Sent. Please refer to Received Payment Statuses for more information about the status codes.
{
"data": {
"type": "achPayment",
"id": "3",
"attributes": {
"createdAt": "2020-06-29T13:17:59.816Z",
"amount": 10000,
"direction": "Credit",
"description": "Payment from Sandbox",
"status": "Sent",
"reason": null
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "1000"
}
},
"customer": {
"data": {
"type": "individualCustomer",
"id": "1"
}
}
}
}
}
Create ACH Received Payment Transaction
This API allows you to simulate the creation of an ACH received payment for testing purposes. The receivedPayment.created webhook event will be fired.
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/received-payments |
| Data Type | achReceivedPayment |
| Timeout (Seconds) | 5 |
Attributes
WEB, CCD, PPD, etc.). Default will be WEB.Relationships
curl -X POST 'https://api.s.unit.sh/sandbox/received-payments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achReceivedPayment",
"attributes": {
"amount": 10000,
"description": "paycheck simulation Sandbox",
"companyName": "UBER LTD",
"completionDate": "2020-07-30",
"secCode": "PPD"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "1000"
}
}
}
}
}'
Note: the status for the created sandbox received payment will be Pending. You may advance and/or complete it. Unlike in production, the received payment will never be completed unless the simulate completion is used.
{
"data": {
"type": "achReceivedPayment",
"id": "1337",
"attributes": {
"createdAt": "2022-02-01T12:03:14.406Z",
"status": "Pending",
"wasAdvanced": false,
"amount": 500000,
"completionDate": "2020-07-30",
"companyName": "UBER LTD",
"counterpartyRoutingNumber": "051402372",
"description": "Sandbox",
"traceNumber": "123456789123456",
"secCode": "PPD"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "163555"
}
},
"customer": {
"data": {
"type": "customer",
"id": "129522"
}
}
}
}
}
Complete Received Payment
This API allows you to complete a Received Payment with Pending or Advanced status.
The receivedPayment.completed and the transaction.created for the received payment transaction (and repay advance transaction if the received payment was advanced) webhook events will be fired.
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/received-payments/{receivedPaymentId}/complete |
| Timeout (Seconds) | 5 |
curl -X POST 'https://api.s.unit.sh/sandbox/received-payments/101/complete' \
-H "Authorization: Bearer ${TOKEN}"
{
"data": {
"type": "achReceivedPayment",
"id": "1337",
"attributes": {
"createdAt": "2022-02-01T12:03:14.406Z",
"status": "Completed",
"wasAdvanced": true,
"amount": 500000,
"completionDate": "2020-07-30",
"companyName": "UBER LTD",
"counterpartyRoutingNumber": "051402372",
"description": "Sandbox",
"traceNumber": "123456789123456",
"secCode": "PPD"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "163555"
}
},
"customer": {
"data": {
"type": "customer",
"id": "129522"
}
},
"receivePaymentTransaction": {
"data": {
"type": "transaction",
"id": "101"
}
},
"paymentAdvanceTransaction": {
"data": {
"type": "transaction",
"id": "202"
}
},
"repayPaymentAdvanceTransaction": {
"data": {
"type": "transaction",
"id": "890"
}
}
}
}
}
Create Incoming ACH Payment
This API allows you to simulate the creation of an Incoming ACH payment for testing purposes. The simulated Incoming ACH payment will undergo the standard processing flow for incoming ACH payments. This includes checks for name matching, name overrides, stop payments, and other validation steps. The receivedPayment.created webhook event will be fired. In addition a status changed webhook event will be fired as well (Pending/PendingReview/MarkedForReturn).
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/received-ach-payment |
| Data Type | achReceivedPayment |
| Timeout (Seconds) | 5 |
Attributes
WEB, CCD, PPD, etc.). Currently only WEB is allowed.Relationships
curl -X POST 'https://api.s.unit.sh/sandbox/received-ach-payment'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achReceivedPayment",
"attributes": {
"amount": 900,
"companyName": "Pied Piper",
"settlementDate": "2025-07-30",
"secCode": "WEB",
"receivingEntityName": "Erlich Blachman"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "3336527"
}
}
}
}
}'
{
"data": {
"type": "achReceivedPayment",
"id": "7477",
"attributes": {
"createdAt": "2024-05-15T07:21:28.399Z",
"status": "Pending",
"direction": "Debit",
"wasAdvanced": false,
"isAdvanceable": false,
"amount": 90,
"tags": {},
"completionDate": "2025-07-30",
"companyName": "Pied Piper",
"counterpartyRoutingNumber": "091302966",
"description": "P2P",
"addenda": null,
"traceNumber": "091302964218074",
"secCode": "WEB",
"receivingEntityName": "Erlich Blachman"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "3336527"
}
},
"customer": {
"data": {
"type": "customer",
"id": "1704127"
}
}
}
}
}