Authenticate the challenge ID (generated with /v2/MFAChallenge.json) and token that was sent to your mobile device registered with BILL. In response, an mfaId value is generated and your API session is MFA trusted.
By default, MFA expires when the API session expires after 35 minutes of inactivity. If you set rememberMe as true in your /v2/MFAAuthenticate.json request, the mfaId value is marked as trusted for 30 days. You can check the MFA status with /v2/MFAStatus.json.
Using /v2/MFAAuthenticate.json is step three of signing in with an MFA trusted API session.
Multi-Factor Authentication (MFA)
There are four protected endpoints require MFA for login with a trusted API session.
- Invite a vendor (not in the BILL network) with
/v2/SendVendorInvite.json - Invite a customer in the BILL network with
/v2/SendInvite.json - Add a vendor bank account with
/v2/VendorBankAccount.json - Pay a vendor in the BILL network with
/v2/PayBills.json
Note: See Multi-factor authentication (MFA)/2-step verification in the BILL Help Center for more information about all the security measures in place for your BILL account operations.
Sign in with an MFA trusted API session is a three-step process.
- Sign in to generate a
sessionIdvalue with/v2/Login.json. - Generate an MFA challenge ID with
/v2/MFAChallenge.json. When you call/v2/MFAChallenge.json, a token is sent to your mobile device registered with BILL. - Authenticate the challenge ID and token with
/v2/MFAAuthenticate.json. At this point, thesessionId(from step one) is MFA trusted. Note that themfaIdtoken expires at end of the current session or when you sign out.
Maintaining MFA for 30 days
In step three of the MFA process, if you set rememberMe as true in your /v2/MFAAuthenticate.json request, the mfaId value is marked as trusted for 30 days. For these 30 days, set deviceId and mfaId as additional fields when you sign in (/v2/Login.json).
