Overview
Contractor's are solely responsible for paying their insurance coverage premiums. That said, we've designed the platform to be flexible enough to support different payment workflows. Specifically, you have the option of remitting the premium payment on the contractor's behalf as an alternative to their paying via credit card. In this documentation, we'll cover the payment workflow for both cases and how we handle premium payments for returning contractors. We also cover speical cases, like assignments where the contractor pay is variable at the start of their project and contractors working on longer term assignments that are paid out on a set schedule.
Payment workflow
Remiting on behalf of the contractor
As part of onboarding, you'll have the option to configure your organization in a way that allows you to remit the contractor's premium payment on their behalf or have 1099Policy collect the premium directly from the contractor via credit card from the Organization > Settings tab shown in Figure 1.

We provide more granular settings as well if you choose to remit payment on the contractor's behalf. The full list of options include:
- applying the setting globally to all contractors via UI (i.e., organization level);
- applying the setting to select contractors via API (i.e.,
contractorlevel) ; or - applying the setting to contractor projects via API (i.e.,
joblevel).
If withhold_premium is set to true via the dashboard or API for any of the above resources, we'll skip the step in the insurance application workflow that collects the contractor's credit card information. Note that in order to enable this payment workflow, you'll need to add your billing details and contact information in the organization settings page so we know where to direct the payable invoice.
By default, once the contractor completes their application, 1099Policy generates a PDF for the outstanding premium amount due. The premium payment is due within 30 days of the bill date and you can find the outstanding bill on the Billing page of your dashboard. If you have a special case you need to support, contact your customer success rep.
Contractor pay by credit card
If you decide during the onboarding process to keep the default settings for your organization and not modify withhold_premium on the contractor or job object, which defaults to false, the contractor will be prompted to enter their payment details as part of the insurance application process.
We charge the contractor's credit card once they complete the final step of their insurance application. Once we successfully charge the contractor's credit card we'll publish the application.complete event, which includes the certificates of insurance, to your registered webhook endpoint.
We'll pre-authorize the contractor's credit card prior to placing the charge when they first enter their credit card information to make sure there's sufficient balance to charge the credit card for the total premium amount due. As part of the application flow, we call out that we only charge the credit card after the contractor completes their application, but recommend you do the same in your UI so they don't mistake the pre-authorization with the final charge.
Repeat assignments
Every assignment that's reported to us via the POST assignment endpoint or via the dashboard results in a new charge to either the contractors credit card or billed as part of the remit workflow, provided that bind is set to true, with an important difference in timing between the two as illustrated in the table below.
| Payent type | Timing of charge |
|---|---|
| Remitting on contractor's behalf | Immediately |
| Contractor pay by credit card | 24 hrs after email |
If you're remitting payment on behalf of the contractor, we'll immediately generate a bill and a certificate of insurance. If the contractor is paying via credit card, we first send the contractor an automated email notification of the upcoming premium charge and then wait 24 hours to charge the contractor's credit card. This provides the contractor with sufficient notice to update their card on file, if needed.
Once we successfully charge the contractor's card, we'll update the assignment object with the certificate of insurance URL and publish the assignment.active event to your registered webhook endpoint.
You'll want to make sure that your assignment POST requests account for the 24 hour delay between the time you POST to the assignment API and the time we charge the contractor's credit card, to avoid the scenario where you don't have proof of coverage prior to the contractor assignment start date.
Changes to contractor pay amounts
In some cases you may only have an estimated cost for a contracor assignment before the contractor actually begins work. In order to support that use case we provide an /invoices API endpoint that you can use to update the final pay amount once the contractor completes their assignment. If you're using the python client library you'd simply make the following request:
invoice = ten99policy.Invoices.create(
contractor="cn_ti8eXviE4A",
job="jb_rajdrwMUKi",
gross_pay=1200,
paycycle_startdate=1714419793,
paycycle_enddate=1714419793,
)
To start, you'd follow the same steps laid out in the Getting started guide and use the estimated project budget amount in the wage field when you create the job object. If the contractor is paying via credit card, we'll charge the credit card on file based on the estimated premium due amount. Once we receive the final invoice.gross_pay amount we'll either credit or debit their credit card on file. If you're remitting on behalf of the contractor you'll see the adjusted premium amount due in the "Billing" page of your dashboard.
We've designed the 1099Policy platform to send automated notifications to the contractor whenever there's a change to wage amounts that impact premium amount due, regardless of whether the premium due goes up or down. It's important that the email we have on file for the contractor is accurate to ensure these notifications reach the intended recipient.
Support for multiple pay adjustments
If you need to update the pay amount repeatedly for the same assignment you can do so by sending a new POST request to the invoice endpoint. We'll void any oustanding invoices and treat the most recent invoice as the contractor's final wage amount. We'll caculate the differences between the previously reported amount and the final amount as part of the premium due updates that we do on the platform.
If the invoice isn't yet fully paid (e.g., within the 24 hr contractor pay be credit card window), you can send a PUT request with the existing invoice ID to update the invoice object with the new gross_pay amount and we'll send the contractor an automated email notification letting them know of the most recent adjustment.
Extended assignments and pay schedules
If you're a platform that primarily supports contractors that work over an extended period of time and that receive payment on a set schedule, you have a couple of options.
| Option | Benefits | Disadvantages |
|---|---|---|
| Report full amount to 1099Policy upfront |
|
|
| Report each paycycle as a distinc assignment |
|
|
If you operate a freelancer platform that falls into this category, contact your customer success rep to review which option makes the most sense for your use case.
Notifications
Over the course of the premium payment lifecycle, 1099Policy will send out one or more of the following notifications:
| Notification Name | Description |
|---|---|
| Payment Reminder | Alerts contractor's of upcoming payment due for their coverage, including amount owed, payment date, and payment method. |
| Payment Confirmation | Confirms successful payment processing, including reference number, amount paid, and payment method used. |
| Increase premium amount (Contractor) | Notifies contractor when additional payment is required due to wage adjustments when using credit card payment. |
| Increase premium amount (Organization rep) | Notifies org representative about additional charges due to wage adjustments, covering both credit card and premium remit use cases. |
| Decrease premium amount (Contractor) | Informs contractor about a refund being processed due to wage adjustments when using credit card payment. |
| Decrease premium amount (Organization rep) | Notifies org representative about refunds due to wage adjustments, for both credit card and premium remit use cases. |
| Assignment Charge Reminder | Alerts contractors of upcoming charges for specific job assignments, including premium amount and payment details. |
| Assignment Charge Failure | Notifies contractor when a premium payment for a job assignment fails, warning about potential coverage interruption. |
Testing
You can use the 1099Policy sandbox environment to test different parts of the payment workflow described above, including:
- Premium payment processing: Validate both credit card and remit flows, including successful charges and failed transactions.
- Wage adjustments: Test that both increase and decrease wage amounts invoices and verify premium calculations based on gross pay and policy rates.
- Notifications: Confirm the various notifications deliver as expected, including for payment confirmation, upcoming charges, and wage adjustement emails.
You can use any one of the following test credit cards to mimic a successful contractor pay by credit card workflow:
| Brand | Number | CVC | Date |
|---|---|---|---|
| Visa | 4242424242424242 | Any 3 digits | Any future date |
| Mastercard | 5555555555554444 | Any 3 digits | Any future date |
| American Express | 378282246310005 | Any 4 digits | Any future date |
| Discover | 6011111111111117 | Any 3 digits | Any future date |
If you need to test a contractor credit card that has insufficient funds, you can use the following test credit card:
| Number | CVC | Date |
|---|---|---|
| 4546381219393284 | Any 3 digits | Any future date |
Compliance
Because premium payments are calculated based on contractor payment amounts, it's critical that we receive accurate contractor payment information from your platform. To not lose your access to the 1099Policy platform, you'll need to make sure any new assignment and wage adjustments are reported promptly. Our carrier partners depend on accurate and timely reporting to preserve the integrity of the program.
If you're interested in using 1099Policy but don't have visibility into the final contractor pay amount contact your customer successe rep. We've partnered with Plaid to track final reported contractor pay that may be an option for your use case.
