At Upwork, we want to help you grow your business every way you can. With Direct Contracts, you can easily create hourly and fixed-price contracts with non-Upwork clients. This gives you access to features such as escrow services, dispute assistance, simplified contract management, and instant payments. We manage the back-end so you can focus on creating something amazing with your clients.


Follow the steps below to create a Direct Contract, start working, and get paid:

Create a Contract

As a freelancer, you can send Direct Contracts to clients outside of Upwork. First, you'll create a contract with your own personal terms.

1. Find the paper airplane icon

The icon is in the upper right-hand corner on your screen, and will take you to the Direct Contracts page. From here, you can create and send contract offers, request payments, and cancel contracts, as well as view all your Direct Contract details.


2. Choose Create a Contract and add the details

Get started by entering the key details for your project. You'll add your client’s email address, the contract name, and a short description.

3. Choose between a fixed-price or hourly contract and enter amounts


  1. Enter your hourly rate. We’ll calculate what you’ll receive after fees.
  2. Set your weekly limit. This is the amount of hours you and your client expect you to work weekly on this project. It doesn’t need to be exact but, if you go over, the client will need to manually approve the hours. If you’re not sure, we suggest discussing the estimate with your client.
  3. Your weekly limit determines how much the client must deposit before getting started. Hourly contracts require an initial deposit by your client into escrow to ensure Upwork Payment Protection.


  1. Enter the amount for the deliverable you’re going to provide. We’ll automatically calculate what you’ll receive after fees.
  2. If your project has many steps, you can choose to add milestones. Milestones break big projects down into smaller parts for easier management.


You can add up to 5 milestones for direct contracts. Milestones are individually funded, and your client will only be able to fund one milestone at a time. After you complete a milestone, then your client can fund the next one. The minimum per milestone is $5.

Set the amount of the direct contract

4. Review your contract

Checking the details before sending your new contract to the client helps ensure you get things off to a great start.

5. Send it off

Congratulations! We’ll send you a confirmation that your contract was sent.

Remember to wait for your client to accept and fund the contract before you start work.

Direct contract sent


Getting paid


1. Submit your hours

For hourly contracts, you’ll need to submit your hours weekly. The weekly billing period begins Monday at 00:00 midnight UTC and ends Sunday at 23:59 UTC. Learn more about how to enter your hours here

2. Review your hours

You can review your logged hours at any time during the current work week in your Work Diary. At the end of each billing cycle, you’ll have an additional 12 hours to review. That 12-hour review period starts immediately after the work week ends, on Monday at 00:00 midnight UTC and lasts until Monday at noon, UTC.

3. Client review period

Your client will have until 11:59 pm UTC on the Thursday after you submit your hours to review and approve or dispute your hours. If they take no action during that time, this counts as their approval and we’ll automatically release the funds.

4. Get paid

With Direct Contracts, you’ll be paid on Friday UTC once the hours are approved. There is no 5 day holding period on Direct Contracts payments. We won’t charge you any freelancer service fees, only a 3.4% processing fee on the total payment amount. Your client will also pay a processing fee.

Please note that all transactions are in USD.

Request Payment on fixed-price contracts

Once your contract is funded, it becomes Active. When you finish the work on a milestone or the entire contract, you can request a payment.

1. Choose the Request Payment button

Remember that your contract needs to be active before you send a payment request.

Request payment for direct contracts

2. We’ll automatically send you a confirmation before your request is sent

Add a personal note for your client here, if you'd like. This is a great place to explain what work was completed, suggest more work, or thank your client for doing business together.

Request payment description

3. Send your request

You'll get a confirmation that your client has been emailed.

Confirmation for requested payment

4. Get paid

Once your client approves your request, we'll release the funds to you immediately, with no 5-day holding period. We’ll also email you and update your contract status to “Completed.” It will show (Paid) next to your contract amount.

Please note that all transactions are in USD.

Paid notification in the direct contract


Learn more about the Direct Contracts experience for clients here.

Log in to get personalized help.