Sandbox Simulations Coming Soon
Real-Time Payments are coming soon. This preview gives you an early look at the expected experience so you can begin planning your integration.
Unit exposes the following sandbox-specific endpoints, in addition to all other endpoints. They allow you to easily test and simulate real-world events - external activity, or internal activity that may normally take a long time to occur.
Simulation operations are subject to the same authentication scheme as the Live APIs, and therefore require a valid Authentication token.
Create Received Real-Time Payment
This API allows you to simulate Received Real-Time Payment for testing purposes.
The Received Real-Time Payment is created in Completed status, and a Received Realtime Payment Transaction with Credit direction is posted to the account.
The receivedRealtimePayment.created, receivedRealtimePayment.completed, and transaction.created webhook events will be fired.
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/received-realtime-payment |
| Data Type | realtimeReceivedPayment |
| Timeout (Seconds) | 5 |
Attributes
| Name | Type | Description |
|---|---|---|
| amount Required | integer | The amount (in cents). |
| idempotencyKey Required | string | See Idempotency. |
Relationships
| Name | Type | Description |
|---|---|---|
| account Required | JSON:API Relationship | The Deposit Account or Wallet Account receiving the payment. |
curl -X POST 'https://api.s.unit.sh/sandbox/received-realtime-payment'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "realTimePayment",
"attributes": {
"amount": 10000,
"idempotencyKey": "sandbox-simulate-incoming-rtp-1"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "2150353"
}
}
}
}
}'
Response
The response is a JSON:API document containing a Realtime Received Payment.
Type
| Name | Type | Description |
|---|---|---|
| type | string | Type of the received payment resource. The value is always realtimeReceivedPayment. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | RFC3339 Date string | The date the received payment was created. |
| status | string | The status of the Received Payment. For this simulation the value is Completed. See Received Payment Statuses. |
| amount | integer | The amount (cents) of the RTP received payment. |
| description | string | Payment description / remittance information. |
| counterparty | Real-Time Counterparty | The party on the other end of the transaction. For RTP received payments, this is always the originator. |
| tags | object | See Tags. |
Relationships
| Name | Type | Description |
|---|---|---|
| account | JSON:API Relationship | The Deposit Account or Wallet Account of the customer. |
| customer | JSON:API Relationship | The Customer the account belongs to, business or individual. |
| receivePaymentTransaction | JSON:API Relationship | The Received Realtime Payment Transaction created when the RTP is completed. |
{
"data": {
"type": "realtimeReceivedPayment",
"id": "30176752",
"attributes": {
"createdAt": "2026-07-10T22:43:34.385Z",
"status": "Completed",
"amount": 10000,
"description": "Sandbox Simulated Counterparty",
"counterparty": {
"name": "Sandbox Simulated Counterparty",
"routingNumber": "021000021",
"accountNumber": "000111222333"
}
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "2150353"
}
},
"customer": {
"data": {
"type": "customer",
"id": "1802611"
}
},
"receivePaymentTransaction": {
"data": {
"type": "transaction",
"id": "9547"
}
}
}
}
}
Return Received Real-Time Payment
This API allows you to simulate a return of a Realtime Received Payment. The received payment must be of type realtimeReceivedPayment type and must already be in Completed status. Returns of Received ACH or Wire cannot be simulated using this endpoint.
The simulated return is approved immediately. The received payment status changes to Returned with returnReason set to RequestedByCustomer. The receivedRealtimePayment.returned webhook event will be fired.
See Returns for more details.
| Verb | POST |
| URL | https://api.s.unit.sh/sandbox/received-realtime-payment/{receivedRealtimePaymentId}/return |
| Data Type | realtimeReceivedPayment |
| Timeout (Seconds) | 5 |
Attributes
| Name | Type | Description |
|---|---|---|
| idempotencyKey Required | string | See Idempotency. |
curl -X POST 'https://api.s.unit.sh/sandbox/received-realtime-payment/30176752/return'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "realTimePayment",
"attributes": {
"idempotencyKey": "sandbox-simulate-return-rtp-1"
}
}
}'
Response
The response is a JSON:API document containing the same Realtime Received Payment. The status is Returned and returnReason is set to RequestedByCustomer.
Type
| Name | Type | Description |
|---|---|---|
| type | string | Type of the received payment resource. The value is always realtimeReceivedPayment. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | RFC3339 Date string | The date the received payment was created. |
| status | string | The status of the Received Payment. For this simulation the value is Returned. See Received Payment Statuses. |
| amount | integer | The amount (cents) of the RTP received payment. |
| description | string | Payment description / remittance information. |
| counterparty | Real-Time Counterparty | The party on the other end of the transaction. For RTP received payments, this is always the originator. |
| returnReason | string | Present when status is Returned. For this simulation the value is RequestedByCustomer. See RTP return reasons. |
| tags | object | See Tags. |
Relationships
| Name | Type | Description |
|---|---|---|
| account | JSON:API Relationship | The Deposit Account or Wallet Account of the customer. |
| customer | JSON:API Relationship | The Customer the account belongs to, business or individual. |
| receivePaymentTransaction | JSON:API Relationship | The Received Realtime Payment Transaction created when the RTP is completed. |
{
"data": {
"type": "realtimeReceivedPayment",
"id": "30176752",
"attributes": {
"createdAt": "2026-07-10T22:43:34.385Z",
"status": "Returned",
"amount": 10000,
"description": "Sandbox Simulated Counterparty",
"counterparty": {
"name": "Sandbox Simulated Counterparty",
"routingNumber": "021000021",
"accountNumber": "000111222333"
},
"returnReason": "RequestedByCustomer"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "2150353"
}
},
"customer": {
"data": {
"type": "customer",
"id": "1802611"
}
},
"receivePaymentTransaction": {
"data": {
"type": "transaction",
"id": "9547"
}
}
}
}
}