In the payments API response, you now receive information about the bills that a payment amount is applied to.
When you pay a bill with POST /v3/payments or when you pay multiple bills with one POST /v3/payments/bulk, you now see a billPayments object in the response. For each bill payment, the billPayment object includes the bill payment id, bill id, and amount applied to the bill.
BILL is introducing a more stable sandbox environment for you to continue testing with the BILL v2 API - https://api-stage.bill.com/api/v2/. In addition, we have migrated the developer keys of all current API customers to the new environment.
On August 31, 2024, BILL will sunset the current sandbox environment. To continue testing with the BILL v2 API, set up a test organization in the new environment and start making your v2 API calls with the new base URL. See the next set of sections in this email for more information.
📘
NOTE
August 31, 2024 onwards, after the current sandbox environment is sunset, your test data in the current sandbox environment will not be available.
This change does not affect any integrations in the BILL production environment.
URL changes
The API base URL and web app URL is changing as part of introducing the new sandbox environment.
Now that the developer key migration is complete, you can take advantage of testing with the new sandbox environment.
Complete the provided set of recommended steps.
Sign up and create a new BILL developer account at https://www-test.bill.com/signup?env=stage. Make sure that you enter the email address you use for your current sandbox developer account.
Select Accounts Payable & Receivable and click Get Started to complete your BILL account activation flow. This includes adding a valid phone number for the two-step verification process.
When your sign-up is complete, you land on the Get started section. You can continue testing with BILL features. For example, adding a vendor, bill, customer, and invoice.
After signing in, you can continue testing with BILL v2 API operations, including adding a vendor, creating a bill, and submitting a payment. For questions or concerns, email us at [email protected].
We have added pagination in the get list of event notifications (GET /v3/events/subscription/{subscriptionId}) and get list of subscriptions (GET /v3/subscriptions) endpoints.
We have made a set of improvements in the BILL webhook notification payloads for consistency with other BILL v3 API responses.
The createdTime and updatedTime value format is now consistent with the format in other BILL v3 API responses. The format is yyyy-MM-dd'T'HH:mm:ss.SSSX. For example, 2024-12-15T22:53:15.127+00:00.
In the notification payloads for bills, the invoiceNumber and invoiceDate information is now in the invoice object. This matches the format of the /v3/bills API response.
We have introduced a new API endpoint for getting organization price plan details. A BILL price plan for an organization provides a range of information, including monthly subscription fees and the terms and conditions for additional charges in the price plan.
In the Guides section documentation for creating an international vendor, we have added more examples for working with regulatoryFields. We now have examples for Brazil and Australia with instructions for working with regulatoryFields and payment information.
We have introduced a set of API endpoints for adding a phone for a user. You can also check whether a phone number has been added for the user. BILL requires users to have a linked phone number for initiating risk verification for an organization.
We are excited to announce a customer-focused redesign for the Spend & Expense API endpoints. The core of the changes are about further simplifying the /v3/spend/budgets API endpoints. In addition, we have introduced many quality of life updates and simplifications in other Spend & Expense API endpoints.
Our expectations with the redesign are that the terminology and experience will now be closer for customers who are familiar with the web app experience.
Budgets operation updates
New endpoints
Endpoint
Description
PUT /v3/spend/budgets/{budgetId}/members/bulk
Update a list of budget members in a budget. For more than 5 users, the request will be processed asynchronously.
GET /v3/spend/budgets/{budgetId}/userAllocations/{userAllocationId}
PATCH /v3/spend/budgets/{budgetId}/users
General updates
Change
Description
Renamed
The periodInterval field is renamed to recurringInternal
The limitless field is renamed to limitlessOverspend
Added
recurringInterval: Budget funds reset interval overspendBuffer: Amount over the budget limit before transactions are declined
Removed
The type field is removed. Use recurringInterval instead.
GET /v3/spend/budgets
Change
Description
Added
Sorting and filtering operations are now consistent with other BILL v3 API list operations
Removed
The type field is removed. You can continue filtering with this field.
GET /v3/spend/budgets/{budgetId}/members
Change
Description
Renamed
The GET /v3/spend/budgets/{budgetId}/userAllocations endpoint is renamed to GET /v3/spend/budgets/{budgetId}/members
Added
Sorting and filtering operations are now consistent with other BILL v3 API list operations
Removed
The retired field is removed. You can continue filtering with this field.
Cards operation updates
New endpoint
Endpoint
Description
GET /v3/spend/cards/{cardId}/pan-jwt
Get a JWT token for retrieving a card's PAN (full account number).
The JWT token contains all the information required for retrieving details about a virtual card (16-digit PAN, CVV, and expiration date). The JWT token lifespan is 5 minutes.
Deleted endpoint
Endpoint
GET /v3/spend/cards/getPanToken/{token} (See GET /v3/spend/cards/{cardId}/pan-jwt)
General updates
Change
Description
Renamed
The amount field is renamed to limit
Added
The limit, shareBudgetFunds, and recurringLimit fields are moved from the user allocation logic
Removed
The budgetAllocation field is removed. You can use budgetId for this information.
The isPhysical field is removed. You can use type for this information.
The token field is removed. See GET /v3/spend/cards/{cardId}/pan-jwt for more information.
GET /v3/spend/cards
Change
Description
Added
Sorting and filtering operations are now consistent with other BILL v3 API list operations
Removed
The userIds field is removed as a body parameter. You can continue filtering with this field.
PATCH /v3/spend/cards/{cardId}
Change
Description
Added
The user allocation update logic is now a part of PATCH /v3/spend/cards/{cardId}
Transactions operation updates
General updates
Change
Description
Renamed
The receiptSyncStatusType field is renamed to receiptSyncStatus.
The receiptStatusType field is renamed to receiptStatus.
The companyProgramNetworkName field is renamed to network.
The hasAllRequiredFieldsCompleted field is renamed to complete.
Removed
The cleanedMerchantName field is removed. You can use merchantName for this information.
The declineDetails field is removed. You can use declineReason for this information.
Other updates
All date-time fields are consistent across all BILL v3 API endpoints. For example, deletedAt is renamed to deletedTime.
In the Guides section documentation for creating an international vendor, we learned that there was a need for further explaining the use of paymentPurpose and regulatoryFields. These objects are required in your request for enabling payments to international vendors.
We have updated the documentation with examples of international vendor locations like Brazil and Austria with instructions for setting paymentPurpose and regulatoryFields.
In the payment webhook notification payload, you now receive descriptive status and type names instead of a numeric code. The payment status, funding account type, and disbursement type values have been updated.