Bill Switch / Deposit Switch
Important
Bill Switch and Deposit Switch are only available to Credit Builder Card users.
Upward has partnered with Atomic to automatically Switch Bill Pay and deposit functionality to your Consumer’s Payment Cards. In this updated flow, you will first request either a Bill Switch or Deposit Switch token from the Upward API platform, and then use that Token to initialize the Atomic SDK. Once a connection is successful, you will receive regular updates/webhooks directly from Atomic as per their documentation.
Requesting a Bill Switch Token
Request a Bill Switch Token by calling POST /v2/payment-cards/{payment_card_id}/bill-switch/token. You will use this token to initialize the Atomic client-side SDK.
Response:
You can view more details about the Deposit Switch endpoint here
Requesting a Deposit Switch Token
Request a Deposit Switch Token by calling POST /v2/payment-cards/{payment_card_id}/deposit-switch/token. You will use this token to initialize the Atomic client-side SDK.
Response:
You can view more details about the Deposit Switch endpoint here
Atomic Financial
For more on the Atomic Switch Product, view the documentation here.
Integration Steps
Once you have obtained the token from Upwardli’s bill-switch or deposit-switch endpoint, follow these steps to complete the integration:
Step 1: Initialize the Atomic Transact SDK
Use the public_token received from Upwardli to initialize the Atomic Transact SDK. This will create a session and validate the token.
Important: Configuration Differences
Bill Switch requires:
scope: "pay-link"tasks: [{ operation: "switch" }]
Direct Deposit Switch requires:
scope: "user-link"tasks: [{ operation: "deposit" }]
Bill Switch - Web Implementation Example:
Direct Deposit Switch - Web Implementation Example:
Bill Switch - React Native Example:
Direct Deposit Switch - React Native Example:
Step 2: Confirm Event Delivery
Atomic will send webhook events for transaction updates. Ensure your webhook endpoint is configured to receive these events.
Key Events to Monitor:
- task-status-update - Fired when a task status changes (processing, completed, failed)
- auth-status-update - Fired when authentication status changes
- task-completed - Fired when a switch task completes successfully
- task-failed - Fired when a task fails
Webhook Configuration:
Configure your webhook endpoint in the Atomic Console. Your endpoint should accept POST requests with the following structure:
Example Webhook Handler:
Testing Your Integration
Atomic provides test credentials to simulate various scenarios. You can use these in development:
Successful Flow:
- Username:
test-good - Password: Any password
- Description: Tests a successful operation
MFA Flow:
- Username:
test-code-mfa - Password: Any password
- Description: Tests authentication with device code MFA
Failure Scenarios:
- Username:
test-bad- Tests unsuccessful authentication - Username:
test-system-unavailable- Tests third-party system outage - Username:
test-failure- Tests post-authentication failure
For a complete list of test credentials and scenarios, refer to the Atomic SDK Testing Documentation.
Complete Integration Checklist
- Request token from Upwardli’s
/bill-switch/tokenor/deposit-switch/tokenendpoint - Initialize Atomic Transact SDK with the received
public_token - Implement
onDataRequestcallback to provide card details via SDK or API - Configure webhook endpoint in Atomic Console
- Verify webhook events are being received for task status updates
- Test with Atomic’s test credentials
- Handle error scenarios appropriately

