Sandbox vs Production
The BILL API Platform capabilities (BILL v3 API and BILL Elements) are available in two distinct development environments: Sandbox and Production.
Each environment is purpose-built to support different phases of your application development, from early testing to live operations. In this section, we explain the operational, security, and functional differences between these environments.
Development environments
The BILL sandbox and production environments provide consistent interfaces for core BILL operations (such as creating a vendor and paying a vendor), but each environment serves different purposes.
Optimized for iterative testing without financial impact (no money movement). Uses simulated data & mock workflows.
Optimized for reliability, security, & transaction finality. Enforces strict data integrity & supports real money movement.
Platform services URLs
- API base URL:
https://gateway.stage.bill.com/connect - Webhooks API base URL:
https://gateway.stage.bill.com/connect-events - Web app URL: https://login.stage.us.bill.com/neo/login
- API base URL:
https://gateway.prod.bill.com/connect - Webhooks API base URL:
https://gateway.prod.bill.com/connect-events - Web app URL: https://login.us.bill.com/neo/login
Service levels & reliability
- No SLAs: Availability & performance may vary.
- Disruptions: You may experience occasional errors or downtime.
- Updates: Deployments occur at least 2 times a day (typically morning or afternoon PT).
Supports live financial workflows with real money movement.
This environment is backed by SLAs that guarantee stability, uptime, & responsiveness.
Operational capabilities
Most BILL core capabilities work identically in both environments. BILL excludes specific capabilities from sandbox to preserve security and platform integrity.
Sandbox limitations
- Money movement: You cannot process real transactions involving actual bank accounts.
- Accounting system integrations: Connections to accounting system platforms (such as QuickBooks & NetSuite) are not supported.
Payment processing
System timers drive status changes to simulate the lifecycle. Status change timing may not exactly match the experience in production.
Payment statuses are driven by real-world banking workflows, cutoffs, & clearing logic.
Webhook events
Webhooks use synthetic values & are not tied to real transactions.
- Dynamic allowlisting is not supported.
- You can use public testing tools (such as webhook.site or Pipedream) for local testing.
Webhooks deliver live event notifications directly to your secure infrastructure. BILL coordinates an allowlist setup to ensure traffic is securely routed to your verified endpoints.
Verification workflows
The BILL verification workflows differ significantly between environments to enable rapid testing without the need to submit sensitive real-world data.
Sandbox
Risk decisions (APPROVED, REVIEW, or DECLINED) are simulated based on specific test inputs.
Production
BILL compliance infrastructure reviews organizations based on actual user data.
BILL Network vendor auto-connection
BILL Network vendor auto-connection behavior differs between environments.
In sandbox, BILL uses a smaller set of test vendors to simulate the connection process.
In production, BILL uses the full BILL Network for real-time vendor matching.
NOTE: Use vendor connections in sandbox to test your integration logic, and not to replicate exact production behavior.
In both environments, vendor connections follow a specific timeline.
- First connection: When a new organization attempts to connect with a vendor for the first time, the connection status is
Pendingfor 3-days with an expected connection date. - Subsequent connections: After the first connection is established, future eligible vendors connect almost instantly.
Test data for sandbox integrations
In this section, we list test data that you can use for testing your integrations in sandbox.
Organization risk status (KYC/KYB)
Use specific inputs to trigger organization KYC/KYB risk outcomes.
KYC/KYB workflow | Field requirement | SSN/EIN range (within the Onboarding Element) and status |
|---|---|---|
KYC Flow (Individual/Sole Proprietorship) | User name: Prefix the user’s first name with City: Prefix with MOCK user’s city followed by the status (for example, NOTE: These prefixes are case-insensitive. | SSN Ranges: From 676543100 To 676543200 ( From 676544100 To 676544200 ( From 676545100 To 676545200 ( |
KYB Flow (All other business types) | Business name: Prefix with City: Prefix with NOTE: These prefixes are case-insensitive. | EIN Ranges: From 676543300 To 676543400 (Approved) From 676544300 To 676544400 (Review) From 676545300 To 676545400 (Declined) |
Vendor network test scenarios
Use specific inputs to simulate connection types. The endpoint POST /connect/v3/vendors is the same, but the input values determine the behavior in Sandbox.
Auto-connected vendor
Validate automatic vendor connection via address-based matching.
curl --location 'https://gateway.stage.bill.com/connect/v3/vendors' \
--header 'sessionId: {{sessionId}}' \
--header 'devKey: {{devKey}} \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data-raw '{
"name": "BPBRstage1 new",
"address": {
"line1": "113 Salinas Court",
"city": "Palo Alto",
"stateOrProvince": "TX",
"zipOrPostalCode": "75013",
"country": "US"
}
}'Bill Recipient (BR) vendor
Validate search and connection behavior for vendors set up to receive bills. Search this vendor’s name in the BILL network search widget or via the API.
vendorName: BPBRstage1 new
addressCity: "Antonetteport"
addressCountry: "United States"
addressLine1: "74006 Jaylen Hill"
addressLine2: null
addressState: "CO"
addressZip: "60406-7362"Validate search and connection for vendors set up to issue invoices or receive payments. Search this vendor’s name in the BILL network search widget or via the API.
vendorName:BPBRstage1 new
addressCity: "Erichside"
addressCountry: "United States"
addressLine1: "96412 Pollich Centers"
addressLine2: null
addressState: "WV"
addressZip: "02958-7168"RPPS vendor (Mastercard Bill Pay Network)
Simulate vendor matching through Mastercard RPPS; RPPS in Sandbox is mocked and does not represent true Mastercard routing behavior. Search this vendor’s name in the BILL network search widget or via the API.
Name: A T C Communications
Account Number: 123456Virtual card (VCard) vendor
Validate payment routing to a virtual card-enabled vendor. Search this vendor’s name in the BILL network search widget or via the API.
vendorName = vdbr5
AddressLine1: vdbr5
AddressLine2: test vdbr5
addressCity: santa clara
addressState: California [CA]
addressZip: 94087Updated about 3 hours ago
