Signing the Agreements
Present Everee's embedded signing experience so the company's signer can review the agreements, choose the funding bank account, and sign once.
The company's signer reviews and signs Everee's agreements in an embedded experience that you show inside your product. You do not build any of it: Everee renders the documents, collects the signature and the funding bank account, and keeps the signed record.
What the signer signs
The signer signs one set of three documents with a single signature:
| Document | Purpose |
|---|---|
| Subscription Agreement | The company's agreement with Everee, including pricing and billing items Everee set for it. |
| ACH Debit Authorization | Authorizes Everee to debit the company's funding bank account. |
| IRS Form 8655 | Authorizes Everee to act for the company on payroll tax matters. |
The signer also connects the company's funding bank account in the same flow. They choose it by signing in to their bank, and it must be a business account. They confirm the account, type their name to sign, agree to sign electronically, and initial the key terms. The signer's name must match the signer you gave Everee.
When you can ask for a signature
You cannot start signing until Everee has requested a signature. That happens when:
- the draft is complete (the readiness check shows nothing missing except the contract, the bank account, and the certificate of authority), and
- Everee has loaded the contract terms for the company.
You are notified with a company-onboarding.signature-requested webhook, and Get onboarding status shows contract.status of AWAITING_SIGNATURE. Creating a session before then returns 409.
Show the signing experience
-
Call Create contract signing session for the company. Give an
eventHandlerNamethat your page listens for (see Component events), and optionallybrandingEnabledto control whether Everee's branding is shown.curl -X POST https://api.everee.com/integration/v1/partner/companies/$ID/contract/embedded-session \ -u "$KEY:" -H "Content-Type: application/json" \ -d '{ "eventHandlerName": "evereeHandler" }' -
Display the returned
urlin an iframe or webview, as you would any other Everee Embed Component.
Sessions are single-use and expire after a few minutes, so create one immediately before you show the experience and create a new one each time the signer returns. The signer's access is limited to this experience; it cannot be used for anything else.
The experience uses your partner's branding (name, logo, and colors).
Handle the events
The component sends these events to your page:
eventType | Meaning |
|---|---|
MESSAGE_PORT_REGISTERED | The component is ready and can send you events. |
CONTRACT_SIGNED | The signer signed. Update your UI; the same fact arrives as a webhook. |
DISMISS | The component asks you to close its view. If error is true and errorCode is EMB-301, the session expired or is not allowed: create a new session. |
Treat the webhook as the source of truth. When the signature is recorded Everee sends company-onboarding.contract-signed, and the status shows contract.status of SIGNED.
After signing
- Get onboarding status shows the contract state. Download a signed contract document returns each document as a PDF. After Everee countersigns, you receive
company-onboarding.contract-executed, and the same endpoint returns the executed copy. - The signed documents are Everee's record of the agreement. Download them when you need them rather than storing links.
- Continue with Submitting for review.
Changing information after signing
The documents print the company's name, address, contacts, owners, tax details, and pricing, so once they are signed that information is locked: calls that would change it are rejected with 409. You can still upload the certificate of authority and, while the company is under review, answer Everee's requests.
If something on the documents has to change, there are two ways it can happen:
- Everee changes the contract terms or a company detail. The signed documents are voided and a new signature is requested.
- You correct a person's phone number or email with Correct a person's contact details. This also voids the signature and requests a new one.
When a signature is voided you receive company-onboarding.contract-voided with the reason, followed by a new company-onboarding.signature-requested with the reason RE_SIGN_REQUIRED. Create a new signing session for the signer to review the updated documents and sign again. While the company is under review, Everee also opens a CONTRACT_CORRECTION request so you can see the signature is needed; it resolves when the new signature is recorded.
The previous signed documents are kept as history. Only the latest signature counts.
Updated about 5 hours ago