For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Visit appVisit websiteBook a demo
  • Get Started
    • Welcome
  • Authentication
    • Hirer Service Accounts
  • Concepts
    • Introduction
    • Directory & Contractors
    • Contracts
    • Approvals
    • Timesheeting
    • Checklists
  • Webhooks
    • Portal Access
    • Endpoint Setup
    • Securing Your Endpoints
    • Monitoring, Debugging & Recovery
  • Client API
    • Webhook Events
        • POSTContract passed pre-offer approval
        • POSTContract offered to freelancer
        • POSTContract offer revoked by hirer
        • POSTContract accepted by freelancer
        • POSTContract cancelled
        • POSTNotice period served on contract
        • POSTContract end date is known
        • POSTContract deleted
LogoLogo
Visit appVisit websiteBook a demo
Client APIWebhook EventsContracts

Contract passed pre-offer approval

Payload
1{
2 "api_version": "2024-04-10",
3 "event_type": "client.contract.approved",
4 "data": {
5 "object": {
6 "client": {
7 "client_id": "cl_c1h9vn2ct9ed0emxf5bg0gaq9",
8 "name": "ACME"
9 },
10 "client_contact": {
11 "client_contact_id": "clct_c2k8wm3du8fe1fnxg6ch1hbr0",
12 "freelancer_id": "fp_c4i6yk5fw6hg3hpyi8ej3jdr2",
13 "custom_fields": [
14 {
15 "name": "example_field",
16 "value": "ABCD",
17 "metadata": {
18 "example_metadata_1": "Example value 1",
19 "example_metadata_2": "Example value 2",
20 "example_metadata_3": "Example value 3"
21 }
22 }
23 ],
24 "url": "https://app.yunojuno.codes/directory/fp_c4i6yk5fw6hg3hpyi8ej3jdr2/"
25 },
26 "contract_id": "ct_c3j7xl4ev7gf2goxh7di2icq1",
27 "historical_meta": {
28 "has_previously_accepted_contract": false
29 },
30 "custom_fields": [
31 {
32 "name": "example_field",
33 "value": "1234"
34 }
35 ],
36 "description": "Example contract description",
37 "end_date": "2025-09-30",
38 "fee_schedule": {
39 "periods": [
40 {
41 "effective_from": "2025-07-01",
42 "fees": [
43 {
44 "currency": "GBP",
45 "name": "Platform Referral Fee",
46 "percentage": "12",
47 "value": "4.80"
48 }
49 ],
50 "total_cost": {
51 "currency": "GBP",
52 "value": "44.80"
53 },
54 "total_fees": {
55 "currency": "GBP",
56 "value": "4.80"
57 }
58 }
59 ]
60 },
61 "freelancer": {
62 "date_of_birth": "1991-01-01",
63 "email": "john.smith@example.com",
64 "first_name": "John",
65 "freelancer_id": "fp_c4i6yk5fw6hg3hpyi8ej3jdr2",
66 "full_name": "John Smith",
67 "last_name": "Smith",
68 "legal_name": "John Smith"
69 },
70 "freelancer_operating_jurisdiction": {
71 "name": "United Kingdom",
72 "country_code": "GB"
73 },
74 "freelancer_personal_tax_jurisdiction": {
75 "name": "United Kingdom",
76 "country_code": "GB"
77 },
78 "hirers": [
79 {
80 "email": "jane.smith@example.com",
81 "first_name": "Jane",
82 "full_name": "Jane Smith",
83 "hirer_id": "hp_c5h5zl6gx5ih4iqzj9fk4kes3",
84 "last_name": "Smith"
85 }
86 ],
87 "job_title": "Example job title",
88 "minutes_in_working_day": 480,
89 "notice_period_days": 7,
90 "rate": {
91 "currency": "GBP",
92 "unit": "HOUR",
93 "value": "40.00"
94 },
95 "renewal_meta": {
96 "has_subsequent_renewal": false,
97 "initial_contract_id": "ct_c3j7xl4ev7gf2goxh7di2icq1",
98 "is_initial_contract": true,
99 "is_renewal": false,
100 "renewal_chain": [
101 "ct_c3j7xl4ev7gf2goxh7di2icq1"
102 ],
103 "renewal_chain_position": 1
104 },
105 "spend_request": {
106 "amount": "1000.00",
107 "amount_type": "TOTAL",
108 "currency": "GBP",
109 "custom_fields": [
110 {
111 "name": "example_field",
112 "value": "123ABCD"
113 }
114 ],
115 "description": "Spend request description",
116 "external_id": "",
117 "spend_request_id": "spreq_c6g4am7hy4ji5jrak0gl5lft4",
118 "title": "Spend request title",
119 "url": "https://app.yunojuno.com/approvals/aprvl_c7h5bn8iz6kj6ksbk1hm6mgu5/",
120 "approval_flow": {
121 "approval_flow_id": "apflw_c8i6co9ja7lk7ltcl2in7nhv6",
122 "current_approval_step": {
123 "approval_step_id": "aprvl_c7h5bn8iz6kj6ksbk1hm6mgu5"
124 }
125 }
126 },
127 "start_date": "2025-07-01",
128 "title": "Contract title",
129 "work_location": "REMOTE",
130 "work_time_type": "FULL_TIME",
131 "url": "https://app.yunojuno.codes/work/contracts/ct_c3j7xl4ev7gf2goxh7di2icq1/"
132 }
133 },
134 "mode": "live"
135}

Sent when a contract passes the defined pre-offer approval flow, and is now ready to offer.

Was this page helpful?
Previous

Contract offered to freelancer

Next
Built with

Payload

The payload of this webhook request is an object.
contract_idstringRequiredRead-only<=40 characters
freelancerobjectRequired
The freelancer object. This object represents a freelancer on the YunoJuno platform.
freelancer_operating_jurisdictionobject or nullRequiredRead-only

The jurisdiction in which the contractor operates as a business or individual, including the country name and ISO 3166-1 two-character code

freelancer_personal_tax_jurisdictionobject or nullRequiredRead-only

The jurisdiction in which the contractor pays personal taxes, including the country name and ISO 3166-1 two-character code

clientobjectRequired
The client object. This object represents a client on the YunoJuno platform.
client_contactobjectRequired
The client contact object. This object represents the lifetime relationship between a client and a freelancer on the platform.
hirerslist of objectsRequiredRead-only
titlestringRequiredRead-only
job_titlestringRequiredRead-only
descriptionstringRequiredRead-only
start_datestringRequiredRead-onlyformat: "date"
end_datestringRequiredRead-onlyformat: "date"
actual_end_datestring or nullRequiredRead-only
rateobjectRequired
The rate object. This object represents a static amount for a particular rate unit in a particular currency.
work_time_typestringRequiredRead-only
fee_scheduleobjectRequired
The complete fee schedule for a contract.
notice_period_daysintegerRequiredRead-only
work_locationstringRequiredRead-only
minutes_in_working_dayintegerRequiredRead-only
custom_fieldslist of objectsRequiredRead-only
pre_offer_approval_flowobject or nullRequiredRead-only
spend_requestobjectRequired

The spend requisition object.

This object represents a request to commit spend on the YunoJuno platform. Spend Requisition was previously named Spend Request in the API documentation; some programmatic names use the old terminology.

renewal_metaobjectRequired
historical_metaobjectRequired
urlstringRequiredRead-only

Response

200
any
Return a 200 status to indicate that the data was received successfully.