Features

Onboarding widget improvements

  • In the sign-up flow, we have made theming improvements in the UI elements.
  • On the KYC/KYB screen, we have removed the empty list items in the Business type list.

MFA widget improvements

On the MFA setup screen, when the user enters and international (not US) phone number and selects Voice call to receive a verification code, we have ensured that the correct information banner is displayed on the screen.

Manage funding widget improvements

  • When the user clicks Close in the user verification flow, we have ensured that the user is correctly navigated to the manage funding list screen.
  • On the manage funding list and funding method details screens, we have made UX enhancements on how a funding method is displayed as default.
  • On the funding method details screen, we have further simplified the bank account status values.

User verification widget improvements

  • We have made UX enhancements on the identity questionnaire screen
  • We have improved error handling in the user verification widget

In February 2025, BILL introduced UUIDs in the Spend & Expense API for further improving its security standards. All API responses include both id and uuid values.

As of July 9, 2025, the Spend & Expense id values are being deprecated. Both id and uuid values will continue to be available in all API responses. We strongly recommend that you use uuid instead of id in all your Spend & Expense API operations.

Webhooks Time To Live (TTL)

BILL maintains an event history for each subscription. We have now upgraded the webhooks TTL from 90 days to 180 days. You can get the list of event notifications sent to you for a subscription with GET /v3/events/subscription/{subscription_id}. You can now get the list of events for the last 180 days.

See Webhook API notification rules for more information about the complete set of rules.

Get list of event notifications improvements

We have added the capability for filtering event notifications by an entity ID. For example, to get notifications for a specific bill, you can now filter with the ID of the bill.

In the Get list of event notifications (GET /v3/events/subscription/{subscription_id}) request, you can now filter event notifications with the entityId field.

FieldDescription
entityIdBILL-generated ID of the entity, such as bill or vendor. For example, to filter notifications by a specific bill, set this value as the ID of the bill.

See GET /v3/events/subscription/{subscriptionId} in the API reference for more information.

We have introduced a set of API endpoints for getting billing statement information for an organization. BILL generates a monthly billing invoice statement for all the billing activities in the organization.

OperationAPI endpoint
Get list of billing statementsGET /v3/organizations/{organizationId}/billing-statements
Get billing statement detailsGET /v3/organizations/{organizationId}/billing-statements/{billingStatementId}

See Organization billing statements for more information.

We have introduced a new API endpoint for getting the current BILL foreign exchange rate.

You can now get the current BILL foreign exchange rate for a payment made to an international vendor. The BILL foreign exchange rate changes periodically. Use this endpoint to get the current exchange rate based on the payment amount and vendor payment currency.

OperationAPI endpoint
Get BILL foreign exchange rateGET /v3/payments/exchange-rate

Features

MFA widget improvements

The mfaSuccess event is emitted when the MFA setup or MFA challenge is submitted successfully. We have added rememberMeId and deviceId in the event payload.

{
  setup: boolean;
  required: boolean;
  rememberMe?: boolean;
  rememberMeId: string;
  deviceId: string;
}
FieldDescription
rememberMeIdMFA ID generated when the remembeMe is set as true for the user.
deviceIdMobile device name. This is a nickname for the mobile device used to receive the validation token to the registered phone number.

Note that rememberMeId is available in the payload only when MFA rememberMe is set as true for the user.

We have introduced a set of API endpoints for recurring invoice operations. A recurring invoice is a template for creating identical invoices for accepting recurring payments from a customer. Each invoice represents an amount that you are owed by a customer for goods and services that your organization provides.

OperationAPI endpoint
Create a recurring invoicePOST /v3/recurring-invoices
Get list of recurring invoicesGET /v3/recurring-invoices
Get recurring invoice detailsPOST /v3/recurring-invoices/{recurringInvoiceId}
Update a recurring invoicePATCH /v3/recurring-invoices/{recurringInvoiceId}
Replace a recurring invoicePUT /v3/recurring-invoices/{recurringInvoiceId}
Archive a recurring invoicePOST /v3/recurring-invoices/{recurringInvoiceId}/archive
Restore a recurring invoicePOST /v3/recurring-invoices/{recurringInvoiceId}/restore

See Recurring invoices for more information.

In the Bills API response, we have introduced the paidAmount field. This value is the sum of all cleared payments and any credit amount applied to the bill.

See POST /v3/bills in the API reference for more information.

Features

KYC/KYB widget improvements

Under Business details, we have improved how the company address information is displayed.

MFA widget improvements

We have improved the screen design of the 2-step verification success screen.

Manage funding widget improvements

  • On the manage funding method screen, we have added a spinner for BILL to correctly determine whether the user verification banner must be displayed at the top of the screen.
  • When the user clicks Cancel in the user verification flow, we have ensured that the user is correctly navigated to the manage funding list screen.
  • On the add funding method screen, we have ensured that the elements follow the chosen color theme.
  • We have improved messaging on the delete funding account modal.

Bug fixes

KYC/KYB widget

We learned that the correct icon would not be displayed on the successful submission screen. We have now fixed this issue.

Manage funding widget improvements

When the user clicks Add to add a new funding method, we learned that the funding method CTAs would intermittently appear and then be greyed out. We have now fixed this issue.