Payments
Volt provides a dedicated Sandbox environment that mirrors the production environment's configuration and contract structure. This allows developers to conduct comprehensive testing without affecting live accounts or processing real funds.
Key capabilities
- Full Payment Lifecycle Testing: You can test the entire lifecycle of payments, from initiation through to the final status notifications.
- Production Parity: The Sandbox environment is configured to reflect the production contract setup, ensuring that your integration logic remains consistent when migrating to live operations.
- Failure Scenario Simulation: The environment allows you to simulate and test various failure scenarios, ensuring your application handles expected and unexpected payment statuses robustly. To trigger specific outcomes (like rejection), use the
X-Volt-Testing-Scenarioheader in your request.
Simulating incoming funds (Pay-Ins)
To accurately simulate the flow of incoming money to your account, Volt provides a Sandbox-only endpoint for triggering simulated pay-ins. This allows you to test the full processing and notification cycle for funds entering your system.
Sandbox transaction flow testing guide
1. Fuzebox configuration
Before interacting with the API, configure two essential components within your Fuzebox environment:
- API access credentials:
- Navigate to the Customer tab in Fuzebox.
- Configure and retrieve your API access credentials (e.g., Client ID, Client Secret).
- Configure and retrieve your Signature keys.
- Webhooks notification URL:
- Navigate to the Accounts Configuration tab.
- Set up your preferred notifications webhook URL. This URL will receive real-time updates for transaction events.
- In scenarios where notifications must be sent to a specific, non-default endpoint, the
notificationUrlcan be overwritten within the request body.
2. API authentication
- Authentication Method: You must authenticate to obtain an access token before making any API calls.
- Endpoint: Begin by authenticating using the standard Volt OAuth endpoint.
3. Account interaction
- List Accounts: Retrieve the list of available accounts using the appropriate endpoint. These accounts will be pre-defined for testing purposes in the sandbox environment.
4. Testing transactions and webhooks
A. Simulate incoming transaction
This endpoint exists only on the sandbox environment. Use it only via Postman or Swagger to simulate the transaction. Use it to add funds to Volt Account.
- Requirement: Ensure that the same currency is used for the transaction as your account.
- Expected outcome:
- A webhook notification is sent to your configured URL.
- A new record appears in the Transactions List.
- The full transaction payload is retrievable via the Transaction Details
B. Trigger successful outgoing payout transaction
- Endpoint: Initiate an outgoing transaction using the specific endpoint:
accounts/{accountId}/transactions. - Requirement: The request must include the required
X-JWS-Signatureheader with the correct value (refer to ). - Requirement 2: For Close Loop Payout beneficiary must be registered in Volt’s system. Beneficiaries are listed under
accounts/{accountId}/beneficiares - Expected outcome:
- A webhook notification is sent to your configured or overwritten URL.
- A new record appears in the transactions list.
- The full transaction payload is retrievable via the transaction details
C. Trigger successful outgoing settlement transaction
- Endpoint: Initiate an outgoing transaction using the specific endpoint:
accounts/{accountId}/transactions. - Requirement 1: Use a currency-matching
trustedAccountIdretrieved from your API/trusted-accounts - Requirement 2: The request must include the required
X-JWS-Signatureheader with the correct value. - Expected outcome:
- A webhook notification is sent to your configured or overwritten URL.
- A new record appears in the Transactions List.
- The full transaction payload is retrievable via the Transaction Details
D. Trigger successful outgoing internal transaction
- Endpoint: Initiate an outgoing transaction using the specific endpoint:
accounts/{accountId}/transactions. - Requirement 1: Use a currency-matching accountId retrieved from your API
/accounts - Requirement 2: The request must include the required
X-JWS-Signatureheader with the correct value. - Expected outcome:
- A webhook notification is sent to your configured or overwritten URL.
- A new records appears in the transactions list (incoming & outgoing internal).
- The full transaction payload is retrievable via the transaction details
E. Trigger rejected outgoing transaction (settlement/payout)
- Endpoint: Use the same outgoing transaction endpoint:
accounts/{accountId}/transactions. - Requirement 1: The request must include the required
X-JWS-Signatureheader with the correct value. - Requirement 2: To intentionally trigger a rejected outgoing transaction, include the following testing header in your request:
- Header:
X-Volt-Testing-Scenario - Value:
PAYOUT_REJECTED
- Header:
- Expected outcome:
- A webhook notification is sent to your configured or overwritten URL.
- A new record appears in the transactions list.
- The full transaction payload is retrievable via the transaction details
F. Trigger account holder verification check
- Endpoint: Use the same outgoing transaction endpoint:
accounts/{accountId}/transactions. - Requirement 1: The request must include the required
X-JWS-Signatureheader with the correct value. - Requirement 2: To intentionally trigger an Account Holder Verification Close Match or No Match scenario, include the following testing header in your request:
- Header:
X-Volt-Testing-Scenario - Value:
- ACCOUNT_HOLDER_VERIFICATION_CLOSE_MATCH
- ACCOUNT_HOLDER_VERIFICATION_NO_MATCH
- Expected outcome:
- A webhook notification is sent to your configured or overridden URL
- A new record appears in the transactions list.
- The full transaction payload is retrievable via transaction details, with the verification field populated
- Account holder verification details are retrievable via account holder verification details
- Expected actions:
- You can interact with account holder verification using the approve or reject endpoints
How is this guide?
Last updated on