· 4 years ago · Jun 10, 2021, 01:58 PM
1---
2openapi: 3.0.0
3info:
4 version: 1.0.0
5 title: Legalife API
6 description: "Legalife API gives you methods to access to programs, lots and purchases.
7 \n\n These methods are based on GET and POST requests and require a token. \n\nThe
8 token is given by the '/key/' route which requires an email and a password."
9servers:
10- url: "/api/v1"
11paths:
12 "/key/":
13 post:
14 summary: Return a unique JSON Web Token used for the subsequent requests
15 requestBody:
16 description: |-
17 Your token credential will be valid until the returned expiration datetime.
18 All subsequent requests to the API will need this token to succeed.
19 To successfully authenticate the token must be put into an http 'Authorization' header with a 'Bearer' type (cf : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization for more informations)
20 The right syntax for the header is 'Authorization: Bearer <token>'
21 required: true
22 content:
23 application/json:
24 schema:
25 type: object
26 properties:
27 email:
28 type: string
29 password:
30 type: string
31 tags:
32 - Login
33 responses:
34 '200':
35 description: successful operation
36 content:
37 application/json:
38 schema:
39 properties:
40 token:
41 type: string
42 expiration:
43 type: string
44 format: date-time
45 "/programs/":
46 get:
47 summary: Return all the programs
48 security:
49 - BearerAuth: []
50 tags:
51 - Programs
52 responses:
53 '200':
54 description: successful operation
55 content:
56 application/json:
57 schema:
58 "$ref": "#/components/schemas/Programs"
59 "/programs/{programId}/":
60 get:
61 summary: Return the desired program
62 security:
63 - BearerAuth: []
64 tags:
65 - Programs
66 parameters:
67 - name: programId
68 in: path
69 required: true
70 description: The program's id
71 schema:
72 type: integer
73 responses:
74 '200':
75 description: successful operation
76 content:
77 application/json:
78 schema:
79 "$ref": "#/components/schemas/Program"
80 '/programs/{programId}/sections/':
81 get:
82 summary: Return all document's section of a program
83 security:
84 - BearerAuth: []
85 tags:
86 - Programs
87 parameters:
88 - name: programId
89 in: path
90 required: true
91 description: The program's id
92 schema:
93 type: integer
94 responses:
95 '200':
96 description: successful operation
97 content:
98 schema:
99 type: array
100 items:
101 type: object
102 properties:
103 sectionId:
104 type: integer
105 example: 123456
106 sectionid:
107 type: integer
108 example: 123456
109 deprecated: true
110 caption:
111 type: string
112 example: 'Contrat de réservation'
113 '/programs/{programId}/options/':
114 get:
115 summary: Return the lot options of a program
116 security:
117 - BearerAuth: []
118 tags:
119 - Programs
120 parameters:
121 - name: programId
122 in: path
123 required: true
124 description: The program's id
125 schema:
126 type: integer
127 responses:
128 '200':
129 description: successful operation
130 content:
131 application/json:
132 schema:
133 "$ref": "#/components/schemas/ProgramOptions"
134 '/programs/{programId}/section/':
135 post:
136 summary: Add a new document section
137 security:
138 - BearerAuth: []
139 tags:
140 - Programs
141 parameters:
142 - name: programId
143 in: path
144 required: true
145 description: The program's id
146 schema:
147 type: integer
148 requestBody:
149 required: true
150 content:
151 application/json:
152 schema:
153 type: object
154 properties:
155 caption:
156 type: string
157 example: 'Section libre'
158 responses:
159 '200':
160 description: successful operation
161 content:
162 application/pdf:
163 schema:
164 $ref: '#/components/schemas/File'
165 "/programs/{programId}/documents/{documentId}/":
166 get:
167 summary: Return the desired document
168 security:
169 - BearerAuth: []
170 tags:
171 - Programs
172 parameters:
173 - name: programId
174 in: path
175 required: true
176 description: The program's id
177 schema:
178 type: integer
179 - name: documentId
180 in: path
181 required: true
182 description: The desired document's id
183 schema:
184 type: integer
185 responses:
186 '200':
187 description: successful operation
188 content:
189 application/json:
190 schema:
191 "$ref": "#/components/schemas/File"
192 "/purchases-documents/{purchaseId}/{documentId}/questionnaire/":
193 get:
194 summary: Return the desired questionnaire
195 security:
196 - BearerAuth: []
197 tags:
198 - Purchases documents
199 parameters:
200 - name: documentId
201 in: path
202 required: true
203 description: The document ID
204 schema:
205 type: integer
206 - name: purchaseId
207 in: path
208 required: true
209 description: The purchase ID
210 schema:
211 type: integer
212 - name: full
213 in: query
214 required: false
215 description: set to true to see non-custom data
216 schema:
217 type: boolean
218 responses:
219 '200':
220 description: successful operation
221 content:
222 application/json:
223 schema:
224 "$ref": "#/components/schemas/File"
225 post:
226 summary: Edit the questionnaire and return the updated questionnaire
227 security:
228 - BearerAuth: []
229 tags:
230 - Purchases documents
231 parameters:
232 - name: idd
233 in: path
234 required: true
235 description: The document's id
236 schema:
237 type: integer
238 - name: full
239 in: query
240 required: false
241 description: set to true to edit non-custom data
242 schema:
243 type: boolean
244 requestBody:
245 description: "The questionnaire must be under the key 'questionnaire'"
246 required: true
247 content:
248 application/json:
249 schema:
250 "$ref": "#/components/schemas/Questionnaire"
251 responses:
252 '200':
253 description: successful operation
254 content:
255 application/json:
256 schema:
257 "$ref": "#/components/schemas/File"
258 "/lot/":
259 post:
260 tags:
261 - Lots
262 summary: Add a new lot or update an existing one
263 security:
264 - BearerAuth: []
265 requestBody:
266 description: "The program id is always required. \n\n To create a lot, it is also required to specify a lot number and whether the lot is primary or not. In case of a non primary lot creation, 'type' is also required.
267 \n\n On an update, it is compulsory to specify the lot id. Be advised that during an update, parameter isPrimaryLot is ignored, since you cannot change
268 the nature of a lot once you have created it. If you wish to do so, the only solution is to delete the involved lot (using the corresponding request)
269 and to create it again."
270 required: true
271 content:
272 application/json:
273 schema:
274 "$ref": "#/components/schemas/Lot"
275 responses:
276 '200':
277 description: Success, return the created/updated lotId with the path to edition page.
278 content:
279 application/json:
280 schema:
281 type: object
282 properties:
283 lotId:
284 type: integer
285 example: 1234568
286 editionuUrl:
287 type: string
288 example: 'http://example.com'
289 '400':
290 description: Error, return an array of errors.
291 content:
292 application/json:
293 schema:
294 type: object
295 properties:
296 errors:
297 type: array
298 items:
299 type: string
300 "/lots/":
301 post:
302 tags:
303 - Lots
304 summary: Add new lots or update existing ones
305 security:
306 - BearerAuth: []
307 requestBody:
308 description: "The program id and an external id are always required for each lot. \n\n To create a lot, it is also required to specify a lot number and whether the lot is primary or not. In case of a non primary lot creation, 'type' is also required.
309 \n\n On an update, it is compulsory to specify the lot id. Be advised that during an update, parameter isPrimaryLot is ignored, since you cannot change
310 the nature of a lot once you have created it. If you wish to do so, the only solution is to delete the involved lot (using the corresponding request)
311 and to create it again.\n\nAccess to lots imported this way are updated asynchronously, so it may take a few minutes before they are accessible through other routes"
312 required: true
313 content:
314 application/json:
315 schema:
316 type: array
317 items:
318 "$ref": "#/components/schemas/Lot"
319 responses:
320 '400':
321 description: "no lot was successfully added"
322 '200':
323 description: "Success, return the externalIds and lotIds with the path to edition pages. Also returns an array of errors if any occured.\n\n
324 The errors array will be empty for each success and have at least one element for each failure."
325 content:
326 application/json:
327 schema:
328 type: array
329 items:
330 type: object
331 properties:
332 lot_result:
333 type: object
334 properties:
335 externalId:
336 type: string
337 deprecated: true
338 externalIds:
339 "$ref": "#/components/schemas/ExternalIds"
340 lotId:
341 type: integer
342 editionuUrl:
343 type: string
344 status:
345 type: string
346 enum:
347 - success
348 - failure
349 errors:
350 type: array
351 items:
352 type: string
353 "/lot/{programId}/{lotId}/document/":
354 post:
355 tags:
356 - Lots
357 parameters:
358 - name: programId
359 in: path
360 required: true
361 description: The program's id (must be coherent with the lot's id)
362 schema:
363 type: integer
364 - name: lotId
365 in: path
366 required: true
367 description: The lot's id
368 schema:
369 type: integer
370 summary: Add or update a document to a lot.
371 security:
372 - BearerAuth: []
373 requestBody:
374 content:
375 multipart/form-data:
376 schema:
377 type: object
378 properties:
379 file:
380 type: string
381 format: binary
382 caption:
383 type: string
384 required: false
385 documentId:
386 type: integer
387 required: false
388 responses:
389 '200':
390 description: Success, return the id of the created document.
391 content:
392 application/json:
393 schema:
394 type: object
395 properties:
396 message:
397 type: string
398 example: 'File succesfully created !'
399 documentId:
400 type: integer
401 example: 1234568
402 '400':
403 description: Error(s)
404 content:
405 application/json:
406 schema:
407 type: object
408 properties:
409 errors:
410 type: string
411 "/lot/{programId}/{lotId}/document/{documentId}/":
412 delete:
413 tags:
414 - Lots
415 parameters:
416 - name: programId
417 in: path
418 required: true
419 description: The program's id (must be coherent with the lot's id)
420 schema:
421 type: integer
422 - name: lotId
423 in: path
424 required: true
425 description: The lot's id
426 schema:
427 type: integer
428 - name: documentId
429 in: path
430 required: true
431 description: The document's id
432 schema:
433 type: integer
434 summary: Delete a document to a lot.
435 security:
436 - BearerAuth: []
437 responses:
438 '200':
439 description: Successful operation
440 "/lot/{programId}/{lotId}/":
441 delete:
442 summary: Permanently remove a lot.
443 parameters:
444 - name: programId
445 in: path
446 required: true
447 description: The program's id (must be coherent with the lot's id)
448 schema:
449 type: integer
450 - name: lotId
451 in: path
452 required: true
453 description: The lot's id
454 schema:
455 type: integer
456 tags:
457 - Lots
458 security:
459 - BearerAuth: []
460 responses:
461 '200':
462 description: Successful operation
463 "/lots/{lotId}/documents/{documentId}/":
464 get:
465 summary: Return the desired document
466 security:
467 - BearerAuth: []
468 tags:
469 - Lots
470 parameters:
471 - name: lotId
472 in: path
473 required: true
474 description: The lot's id
475 schema:
476 type: integer
477 - name: documentId
478 in: path
479 required: true
480 description: The desired document's id
481 schema:
482 type: integer
483 responses:
484 '200':
485 description: successful operation
486 content:
487 application/json:
488 schema:
489 "$ref": "#/components/schemas/File"
490 "/contact/":
491 post:
492 summary: Add a new contact or update an existing one
493 security:
494 - BearerAuth: []
495 requestBody:
496 description: "__Required fields__: when creating a new purchase, 'lastname'
497 is required. On update however, only 'contactId' is required.\n\n Each contact must have a unique email address."
498 required: true
499 content:
500 application/json:
501 schema:
502 type: object
503 properties:
504 contactId:
505 type: integer
506 example: 1234568
507 lastname:
508 type: string
509 example: Lapierre
510 email:
511 type: string
512 format: email
513 firstname:
514 type: string
515 example: Lise
516 maidenName:
517 type: string
518 example: Dupont
519 sex:
520 "$ref": "#/components/schemas/Sex"
521 nationality:
522 type: string
523 example: Française
524 job:
525 type: string
526 example: Développeur
527 birthDate:
528 type: string
529 format: date
530 example: '2002-10-02T15:00:00Z'
531 birthPlace:
532 type: string
533 example: Toulouse
534 address:
535 type: string
536 example: 128 rue de la Boetie
537 zipcode:
538 type: string
539 example: '75008'
540 city:
541 type: string
542 example: Paris
543 country:
544 "$ref": "#/components/schemas/Country"
545 fixedPhone:
546 type: string
547 example: 0198765432
548 mobilePhone:
549 type: string
550 example: 0698765432
551 newsletterAccepted:
552 type: boolean
553 description: By default, this will be false.
554 tags:
555 - Contacts
556 responses:
557 '200':
558 description: Success, return the created/updated contactId
559 content:
560 application/json:
561 schema:
562 "$ref": "#/components/schemas/UpdatedContact"
563 '400':
564 description: Error(s), return an array of errors
565 content:
566 application/json:
567 schema:
568 type: object
569 properties:
570 errors:
571 type: array
572 items:
573 type: string
574 "/contacts/":
575 get:
576 summary: Return all contacts list
577 security:
578 - BearerAuth: []
579 tags:
580 - Contacts
581 parameters:
582 - name: email
583 in: query
584 required: false
585 description: If set, only contacts with this email will be listed
586 schema:
587 type: string
588 format: email
589 - name: updatedFrom
590 in: query
591 required: false
592 description: "If set, only contacts created or updated after updatedFrom will be listed (format : yyyy-mm-dd)"
593 schema:
594 type: string
595 format: date
596 responses:
597 '200':
598 description: successful operation
599 content:
600 application/json:
601 schema:
602 "$ref": "#/components/schemas/Contacts"
603 "/contacts/{contactId}/":
604 get:
605 summary: Get contact informations
606 parameters:
607 - name: contactId
608 in: path
609 required: true
610 description: ID of the contact
611 schema:
612 type: integer
613 tags:
614 - Contacts
615 security:
616 - BearerAuth: []
617 responses:
618 '200':
619 description: Successful operation
620 content:
621 application/json:
622 schema:
623 "$ref": "#/components/schemas/Contact"
624 delete:
625 summary: Permanently remove a contact.
626 parameters:
627 - name: contactId
628 in: path
629 required: true
630 description: ID of the contact
631 schema:
632 type: integer
633 tags:
634 - Contacts
635 security:
636 - BearerAuth: []
637 responses:
638 '200':
639 description: Successful operation
640 "/admins/companies/":
641 get:
642 summary: Return assignable companies for admin creation route
643 security:
644 - BearerAuth: []
645 tags:
646 - Admins
647 responses:
648 '200':
649 description: successful operation
650 content:
651 application/json:
652 schema:
653 "$ref": "#/components/schemas/Whitelabels"
654 "/admins/":
655 get:
656 summary: Return admins list
657 parameters:
658 - name: adminEmail
659 in: query
660 required: false
661 description: Email of the admin
662 schema:
663 type: string
664 example: admin@example.com
665 - name: adminId
666 in: query
667 required: false
668 description: Id of the admin
669 schema:
670 type: integer
671 example: 123456
672 - name: roleId
673 in: query
674 required: false
675 description: Id of the role
676 schema:
677 type: integer
678 example: 123456
679 security:
680 - BearerAuth: []
681 tags:
682 - Admins
683 responses:
684 '200':
685 description: successful operation
686 content:
687 application/json:
688 schema:
689 "$ref": "#/components/schemas/Admins"
690 "/admin/{adminId}":
691 delete:
692 summary: Permanently remove an admin.
693 parameters:
694 - name: adminId
695 in: path
696 required: true
697 description: ID of the admin
698 schema:
699 type: integer
700 tags:
701 - Admins
702 security:
703 - BearerAuth: []
704 responses:
705 '200':
706 description: Successful operation
707 "/roles/":
708 get:
709 summary: Return roles list
710 security:
711 - BearerAuth: []
712 tags:
713 - Admins
714 responses:
715 '200':
716 description: successful operation
717 content:
718 application/json:
719 schema:
720 type: array
721 items:
722 type: object
723 properties:
724 roleId:
725 type: integer
726 title:
727 type: string
728 "/admin/":
729 post:
730 summary: Add a new admin or update an existing one
731 tags:
732 - Admins
733 security:
734 - BearerAuth: []
735 requestBody:
736 description: |
737 * **email** is required when creating a new admin. **adminId** is required on admin update.
738 * **email** must be unique in the company.
739 * when specifying **roles**, **roleId** is required. For each role, either **allObjects** is true (meaning all programs and all lots) or **programIds** must be filled.
740 * role changes become effective after a few minutes.
741 * if **companyId** is not set, the created user will be attached to the company of the API token.
742 required: true
743 content:
744 application/json:
745 schema:
746 type: object
747 properties:
748 adminId:
749 type: integer
750 example: 1234568
751 companyId:
752 type: integer
753 example: 12345678
754 email:
755 type: string
756 example: rene@lataupe.fr
757 firstname:
758 type: string
759 example: Lise
760 lastname:
761 type: string
762 example: Mansour
763 sex:
764 "$ref": "#/components/schemas/Sex"
765 active:
766 type: boolean
767 example: true
768 address:
769 type: string
770 example: 128 rue de la Boetie
771 postalCode:
772 type: string
773 example: '75008'
774 city:
775 type: string
776 example: Paris
777 landlinePhone:
778 type: string
779 example: 0198765432
780 mobilePhone:
781 type: string
782 example: 0698765432
783 roles:
784 type: array
785 items:
786 type: object
787 properties:
788 roleId:
789 type: integer
790 example: 123456
791 allObjects:
792 type: boolean
793 programIds:
794 type: array
795 items:
796 type: integer
797 responses:
798 '200':
799 description: Success, return the created/updated contactId
800 content:
801 application/json:
802 schema:
803 type: object
804 properties:
805 adminId:
806 type: integer
807 info:
808 type: string
809 '400':
810 description: Error(s), return an array of errors
811 content:
812 application/json:
813 schema:
814 type: object
815 properties:
816 errors:
817 type: array
818 items:
819 type: string
820 "/purchase/":
821 post:
822 summary: Add a new purchase or update an existing one
823 security:
824 - BearerAuth: []
825 requestBody:
826 description: >
827 when creating a new purchase, the following fields are required: 'programId', 'lots', 'contacts'. There must be one and only one primary lot in the 'lots' array. On update however, only 'purchaseId' is required.
828 purchase's total price is the sum of the lots negotiated prices 'lotPrice' and of the lot options prices. If these prices are not set, the sum of stock prices will be used instead.
829 contactsDetails is optional. Prefer the use of POST /contact/ if possible.
830 required: true
831 content:
832 application/json:
833 schema:
834 type: object
835 properties:
836 purchaseId:
837 type: integer
838 example: 1234568
839 programId:
840 type: integer
841 example: 1234568
842 lots:
843 type: array
844 items:
845 type: object
846 properties:
847 lotId:
848 type: integer
849 example: 1234568
850 lotPrice:
851 type: number
852 format: string
853 example: '125000.50'
854 lotOptions:
855 type: array
856 required: false
857 nullable: true
858 items:
859 type: object
860 properties:
861 optionId:
862 type: integer
863 example: 1234568
864 selectedCount:
865 type: integer
866 example: 2
867 price:
868 type: string
869 description: "Overall price of the selected options (selectedCount * unit price or selectedCount * percent price * pre-tax price of the lot if price in percent)"
870 example: '100.000'
871 contacts:
872 type: array
873 items:
874 type: integer
875 example: 123
876 sellerEmail:
877 type: string
878 format: email
879 depositAmount:
880 type: number
881 format: float
882 example: '2000'
883 vat:
884 type: number
885 format: float
886 example: '0.2'
887 objective:
888 type: string
889 nullable: true
890 enum: ["first_time_buyer","investment","other","pinel_act","principal_residence","rental","repeat_buyer","secondary_residence"]
891 purchaseObjective:
892 type: string
893 deprecated: true
894 description: use "objective" instead
895 taxMeasure:
896 type: string
897 created:
898 type: string
899 format: date-time
900 example: '2002-10-02T15:00:00Z'
901 custom_data:
902 type: object
903 contactsDetails:
904 required: false
905 type: array
906 items:
907 type: object
908 properties:
909 contactId:
910 type: string
911 example: '1234568'
912 lastname:
913 type: string
914 example: Lapierre
915 email:
916 type: string
917 format: email
918 firstname:
919 type: string
920 example: Lise
921 maidenName:
922 type: string
923 example: Dupont
924 sex:
925 "$ref": "#/components/schemas/Sex"
926 nationality:
927 type: string
928 example: Française
929 job:
930 type: string
931 example: Développeur
932 birthDate:
933 type: string
934 format: date
935 example: '2002-10-02T15:00:00Z'
936 birthPlace:
937 type: string
938 example: Toulouse
939 address:
940 type: string
941 example: 128 rue de la Boetie
942 zipcode:
943 type: string
944 example: '75008'
945 city:
946 type: string
947 example: Paris
948 country:
949 "$ref": "#/components/schemas/Country"
950 fixedPhone:
951 type: string
952 example: 0198765432
953 mobilePhone:
954 type: string
955 example: 0698765432
956 newsletterAccepted:
957 type: boolean
958 description: By default, this will be false.
959 tags:
960 - Purchases
961 responses:
962 '200':
963 description: Success, return the created/updated purchaseId and the path
964 to the edition page
965 content:
966 application/json:
967 schema:
968 "$ref": "#/components/schemas/UpdatedPurchase"
969 '400':
970 description: Error(s), return an array of errors
971 content:
972 application/json:
973 schema:
974 type: object
975 properties:
976 errors:
977 type: array
978 items:
979 type: string
980 "/purchases/":
981 get:
982 summary: Return all the purchases
983 security:
984 - BearerAuth: []
985 tags:
986 - Purchases
987 parameters:
988 - in: query
989 name: programId
990 required: false
991 schema:
992 type: integer
993 description: filter based on a programId
994 - in: query
995 name: includeTasks
996 required: false
997 schema:
998 type: boolean
999 description: include a pending tasks list on the returned purchases
1000 responses:
1001 '200':
1002 description: successful operation
1003 content:
1004 application/json:
1005 schema:
1006 type: array
1007 items:
1008 type: object
1009 properties:
1010 purchaseId:
1011 type: integer
1012 programId:
1013 type: integer
1014 lotId:
1015 type: integer
1016 programCaption:
1017 type: string
1018 example: Nanterre
1019 lotNumber:
1020 type: string
1021 example: B04
1022 buyers:
1023 type: string
1024 example: Cornet & Nguyen
1025 description: Textual summary of the name of the buyers
1026 externalId:
1027 type: string
1028 deprecated: true
1029 externalIds:
1030 "$ref": "#/components/schemas/ExternalIds"
1031 tasks:
1032 description: All tasks that appear with a non null severity in the app. This is only included when the request sets `includeTasks` to true.
1033 type: array
1034 items:
1035 type: object
1036 properties:
1037 caption:
1038 type: string
1039 description: caption of the task
1040 assignees:
1041 type: array
1042 description: emails of the assignee
1043 items:
1044 type: string
1045 created:
1046 type: string
1047 format: date
1048 "/purchases/{purchaseId}/":
1049 get:
1050 summary: Return detailed informations about a purchase including statuses history
1051 and the list of all signed contracts.
1052 security:
1053 - BearerAuth: []
1054 tags:
1055 - Purchases
1056 parameters:
1057 - name: purchaseId
1058 in: path
1059 required: true
1060 description: The purchase's id
1061 schema:
1062 type: integer
1063 responses:
1064 '200':
1065 description: successful operation
1066 content:
1067 application/json:
1068 schema:
1069 properties:
1070 purchaseId:
1071 type: integer
1072 example: 12345678
1073 programId:
1074 type: integer
1075 example: 12345678
1076 lotOptions:
1077 type: array
1078 items:
1079 type: object
1080 properties:
1081 optionId:
1082 type: integer
1083 example: 1234568
1084 selectedCount:
1085 type: integer
1086 example: 2
1087 price:
1088 type: string
1089 description: "Overall price of the selected options (selectedCount * unit price or selectedCount * percent price * pre-tax price of the lot if price in percent)"
1090 example: '100.000'
1091 lots:
1092 type: array
1093 items:
1094 type: object
1095 properties:
1096 lotId:
1097 type: integer
1098 example: 12345678
1099 lotPrice:
1100 type: number
1101 format: float
1102 example: '125000.50'
1103 isPrimaryLot:
1104 type: boolean
1105 externalId:
1106 type: string
1107 deprecated: true
1108 externalIds:
1109 "$ref": "#/components/schemas/ExternalIds"
1110 contacts:
1111 type: array
1112 deprecated: true
1113 items:
1114 type: integer
1115 example: 123
1116 contactsDetails:
1117 type: array
1118 items:
1119 "$ref": "#/components/schemas/Contact"
1120 budget:
1121 type: string
1122 nb_rooms_desired:
1123 type: integer
1124 created:
1125 type: string
1126 format: date-time
1127 example: '2002-10-02T15:00:00Z'
1128 vat:
1129 type: number
1130 format: float
1131 example: '0.2'
1132 objective:
1133 type: string
1134 nullable: true
1135 enum: ["first_time_buyer","investment","other","pinel_act","principal_residence","rental","repeat_buyer","secondary_residence"]
1136 purchaseObjective:
1137 type: string
1138 deprecated: true
1139 description: use "objective" instead
1140 cancelledDate:
1141 type: string
1142 format: date-time
1143 example: '2002-10-02T15:00:00Z'
1144 cancelledReason:
1145 type: string
1146 nullable: true
1147 enum: ["Annulation (dans le délai légal)","Annulation (hors délai)","Pas de financement/Prêt non obtenu","Décès/Maladie/Drame","Hors Cible","Refus","Injoignable"]
1148 depositAmount:
1149 type: number
1150 format: float
1151 example: '2000'
1152 notaryAppointmentPlannedDate:
1153 type: string
1154 format: date-time
1155 example: '2002-10-02T15:00:00Z'
1156 notaries:
1157 type: array
1158 items:
1159 type: object
1160 properties:
1161 contactId:
1162 type: integer
1163 example: 12345678
1164 name:
1165 type: string
1166 example: 'DUMONT Thomas'
1167 address:
1168 type: string
1169 example: '6 avenue de la Boétie'
1170 city:
1171 type: string
1172 example: 'Paris'
1173 email:
1174 type: string
1175 phone:
1176 type: string
1177 sellerEmail:
1178 type: string
1179 format: email
1180 statuses:
1181 type: array
1182 items:
1183 type: object
1184 properties:
1185 since:
1186 type: string
1187 format: date
1188 example: '2002-10-02T15:00:00Z'
1189 status:
1190 type: string
1191 signedContracts:
1192 deprecated: true
1193 type: array
1194 items:
1195 type: string
1196 example: 'signed_contract.pdf'
1197 signed_contracts:
1198 description: "Please use 'signedContracts' key instead !"
1199 deprecated: true
1200 type: array
1201 items:
1202 type: string
1203 example: 'signed_contract.pdf'
1204 salesCertificates:
1205 type: array
1206 items:
1207 type: string
1208 example: 'certificate.pdf'
1209 depositConfirmed:
1210 type: string
1211 format: date-time
1212 example: '2002-10-02T15:00:00Z'
1213 loans:
1214 type: array
1215 items:
1216 type: object
1217 properties:
1218 amount:
1219 type: number
1220 example: 50000
1221 requestCompleted:
1222 type: string
1223 format: date-time
1224 example: '2002-10-02T15:00:00Z'
1225 requestValidated:
1226 type: string
1227 format: date-time
1228 example: '2002-10-02T15:00:00Z'
1229 requestDate:
1230 type: string
1231 format: date-time
1232 example: '2002-10-02T15:00:00Z'
1233 requestAcceptedInPrinciple:
1234 type: string
1235 format: date-time
1236 example: '2002-10-02T15:00:00Z'
1237 offerDate:
1238 type: string
1239 format: date-time
1240 example: '2002-10-02T15:00:00Z'
1241 offerAccepted:
1242 type: string
1243 format: date-time
1244 example: '2002-10-02T15:00:00Z'
1245 offerExpired:
1246 type: string
1247 format: date-time
1248 example: '2002-10-02T15:00:00Z'
1249 guaranteeType:
1250 type: string
1251 example: 'Cautionnement'
1252 insuranceRequired:
1253 type: boolean
1254 insuranceObtained:
1255 type: string
1256 format: date-time
1257 example: '2002-10-02T15:00:00Z'
1258 loanType:
1259 type: string
1260 example: 'interest_free_loan'
1261 enum: ["classic","other","zero_interest_loan"]
1262 maxRate:
1263 type: float
1264 example: 2.00
1265 description: 'Percentage'
1266 extraDocuments:
1267 deprecated: true
1268 "$ref": "#/components/schemas/Documents"
1269 currentComment:
1270 type: object
1271 nullable: true
1272 properties:
1273 authorId:
1274 type: integer
1275 example: 12345678
1276 authorEmail:
1277 type: string
1278 example: 'didier@getunlatch.com'
1279 date:
1280 type: string
1281 format: date
1282 content:
1283 type: string
1284 example: 'Souhaiterait réserver également un T3 dans l''ouest de Paris'
1285 documents:
1286 type: array
1287 items:
1288 type: object
1289 properties:
1290 documentId:
1291 type: integer
1292 example: 123456789
1293 documentName:
1294 type: string
1295 example: 'contrat de réservation'
1296 documentType:
1297 type: string
1298 nullable: true
1299 enum: ["FUND_CALL_LETTER","OTHER_PURCHASE_DOCS","SALES_AGREEMENT"]
1300 signatureId:
1301 type: integer
1302 example: 12345678
1303 contacts:
1304 type: array
1305 items:
1306 type: object
1307 properties:
1308 contactId:
1309 type: integer
1310 example: 12345678
1311 contactType:
1312 type: string
1313 example: 'buyer'
1314 notificationSent:
1315 type: string
1316 format: date-time
1317 example: '2002-10-02T15:00:00Z'
1318 notificationReceived:
1319 type: string
1320 format: date-time
1321 example: '2002-10-02T15:00:00Z'
1322 notificationId:
1323 type: integer
1324 example: 12345678
1325 signatureFundsDeposited:
1326 type: string
1327 format: date-time
1328 example: '2002-10-02T15:00:00Z'
1329 depositWireRequested:
1330 type: string
1331 format: date-time
1332 example: '2002-10-02T15:00:00Z'
1333 proxyNotaryModelSent:
1334 type: string
1335 format: date
1336 example: '2002-10-02T15:00:00Z'
1337 proxyNotaryModelReceived:
1338 type: string
1339 format: date-time
1340 example: '2002-10-02T15:00:00Z'
1341 proxyNotaryModelSigned:
1342 type: string
1343 format: date-time
1344 example: '2002-10-02T15:00:00Z'
1345 intentToWaiveRequested:
1346 type: string
1347 format: date-time
1348 example: '2002-10-02T15:00:00Z'
1349 intentToWaiveDate:
1350 type: string
1351 format: date-time
1352 example: '2002-10-02T15:00:00Z'
1353 taxMeasure:
1354 type: string
1355 example: 'LOI PINEL'
1356 taxFreeFundCalls:
1357 type: boolean
1358 custom_data:
1359 type: object
1360 companies:
1361 "$ref": "#/components/schemas/Companies"
1362 current_status:
1363 type: string
1364 enum: ["SRU purge","awaiting funding","booked","canceled","claimed lead","claimed lead rejected","claimed_lead_confirmed","construction_site_delivered","contract_generated","internet lead","notary appointment set","notary appointment to be set","option","option requested","option_exercised","pre buyer signature","pre-booked","pre_contract","recorded","suspect lead","suspect_lead","transmitted_ddt"]
1365 billDate:
1366 type: string
1367 format: date-time
1368 example: '2002-10-02T15:00:00Z'
1369 delete:
1370 summary: Permanently remove a purchase.
1371 tags:
1372 - Purchases
1373 parameters:
1374 - name: purchaseId
1375 in: path
1376 required: true
1377 description: ID of the purchase to remove.
1378 schema:
1379 type: integer
1380 security:
1381 - BearerAuth: []
1382 responses:
1383 '200':
1384 description: Successful operation
1385 '/purchases-documents/{purchaseId}/{documentId}/':
1386 get:
1387 summary: Return the desired file
1388 security:
1389 - BearerAuth: []
1390 tags:
1391 - Purchases documents
1392 parameters:
1393 - name: purchaseId
1394 in: path
1395 required: true
1396 description: The purchase's id
1397 schema:
1398 type: integer
1399 - name: documentId
1400 in: path
1401 required: true
1402 description: The document's id
1403 schema:
1404 type: integer
1405 responses:
1406 '200':
1407 description: successful operation
1408 content:
1409 application/pdf:
1410 schema:
1411 $ref: '#/components/schemas/File'
1412 "/purchases/{purchaseId}/cancel/":
1413 post:
1414 summary: Cancel a purchase (Makes lot available)
1415 tags:
1416 - Purchases
1417 parameters:
1418 - name: purchaseId
1419 in: path
1420 required: true
1421 description: The purchase's id
1422 schema:
1423 type: integer
1424 security:
1425 - BearerAuth: []
1426 responses:
1427 '200':
1428 description: Successful operation
1429 "/purchases/{purchaseId}/uncancel/":
1430 post:
1431 summary: Uncancel a cancelled purchase
1432 security:
1433 - BearerAuth: []
1434 tags:
1435 - Purchases
1436 parameters:
1437 - name: purchaseId
1438 in: path
1439 required: true
1440 description: ID of the purchase to uncancel.
1441 schema:
1442 type: integer
1443 responses:
1444 '200':
1445 description: Success
1446 content:
1447 application/json:
1448 schema:
1449 type: string
1450 example: 'Purchase with ID 123456 has been succesfully uncancelled'
1451 '400':
1452 description: Error(s), no purchase was uncancelled.
1453 '/purchases-documents/{purchaseId}/':
1454 post:
1455 summary: Add a new document to a purchase in specifique section
1456 security:
1457 - BearerAuth: []
1458 tags:
1459 - Purchases documents
1460 parameters:
1461 - name: purchaseId
1462 in: path
1463 required: true
1464 description: The purchase's id
1465 schema:
1466 type: integer
1467 requestBody:
1468 content:
1469 multipart/form-data:
1470 schema:
1471 type: object
1472 properties:
1473 sectionId:
1474 type: integer
1475 example: 1234568
1476 caption:
1477 type: string
1478 example: 'nom du fichier'
1479 file_data:
1480 type: string
1481 format: binary
1482 responses:
1483 '200':
1484 description: successful operation
1485 content:
1486 application/pdf:
1487 schema:
1488 $ref: '#/components/schemas/File'
1489 "/purchases/{purchaseId}/contract-preview/":
1490 get:
1491 summary: Return the list of files that composes the contract (before signature).
1492 description: Generated contract file is called CONTRACT.pdf. This route can only be called before any signature process. If not it will return a 400 error code.
1493 security:
1494 - BearerAuth: []
1495 tags:
1496 - Purchases
1497 parameters:
1498 - name: purchaseId
1499 in: path
1500 required: true
1501 description: The purchase's id
1502 schema:
1503 type: integer
1504 responses:
1505 '400':
1506 description: contract is not in the correct state
1507 '200':
1508 description: List of files that composes the contract.
1509 content:
1510 application/json:
1511 schema:
1512 type: object
1513 properties:
1514 contractPreview:
1515 "$ref": "#/components/schemas/FilesList"
1516 "/purchases/{purchaseId}/contract-preview/{filename}":
1517 get:
1518 summary: Return the desired file
1519 security:
1520 - BearerAuth: []
1521 tags:
1522 - Purchases
1523 parameters:
1524 - name: purchaseId
1525 in: path
1526 required: true
1527 description: The purchase's id
1528 schema:
1529 type: integer
1530 - name: filename
1531 in: path
1532 required: true
1533 description: The desired contract's name
1534 schema:
1535 type: string
1536 responses:
1537 '200':
1538 description: successful operation
1539 content:
1540 application/pdf:
1541 schema:
1542 "$ref": "#/components/schemas/File"
1543 "/purchases/{purchaseId}/{documentType}/{filename}":
1544 get:
1545 summary: Return the desired purchase file.
1546 security:
1547 - BearerAuth: []
1548 tags:
1549 - Purchases
1550 parameters:
1551 - name: purchaseId
1552 in: path
1553 required: true
1554 description: The purchase's id
1555 schema:
1556 type: integer
1557 - name: documentType
1558 in: path
1559 required: true
1560 schema:
1561 type: string
1562 enum: ['signed-contracts', 'sales-certificate']
1563 - name: filename
1564 in: path
1565 description: The desired contract's name. It must always be specified.
1566 required: true
1567 schema:
1568 type: string
1569 responses:
1570 '200':
1571 description: successful operation
1572 content:
1573 application/pdf:
1574 schema:
1575 "$ref": "#/components/schemas/File"
1576 "/purchases/{purchaseId}/extra-documents/{documentId}/{filename}":
1577 get:
1578 summary: Return the desired purchase document (Other than signed contract or sales certificate).
1579 security:
1580 - BearerAuth: []
1581 tags:
1582 - Purchases
1583 parameters:
1584 - name: purchaseId
1585 in: path
1586 required: true
1587 description: The purchase's id
1588 schema:
1589 type: integer
1590 - name: documentId
1591 in: path
1592 required: true
1593 description: The document's id, which can be obtained using the request GET /purchases/{purchaseId}/ ("extraDocuments" key)
1594 schema:
1595 type: integer
1596 - name: filename
1597 in: path
1598 required: true
1599 description: The filename, which can be obtained using the request GET /purchases/{purchaseId}/ ("extraDocuments" key)
1600 schema:
1601 type: string
1602 responses:
1603 '200':
1604 description: successful operation
1605 content:
1606 application/pdf:
1607 schema:
1608 "$ref": "#/components/schemas/File"
1609 "/purchases/{purchaseId}/contacts/{contactId}/document/{documentType}/{filename}":
1610 get:
1611 summary: Return the desired contract
1612 description: Documents' file list is accessible through GET /purchases/{purchaseId}/contact/{contactId}/document/{documentType}/
1613 security:
1614 - BearerAuth: []
1615 tags:
1616 - Purchases contacts
1617 parameters:
1618 - name: purchaseId
1619 in: path
1620 required: true
1621 description: The purchase's id
1622 schema:
1623 type: integer
1624 - name: contactId
1625 in: path
1626 required: true
1627 description: The contact's id
1628 schema:
1629 type: integer
1630 - name: documentType
1631 in: path
1632 required: true
1633 schema:
1634 "$ref": "#/components/schemas/PurchaseContactDocumentType"
1635 - name: filename
1636 in: path
1637 required: true
1638 schema:
1639 type: string
1640 responses:
1641 '200':
1642 description: successful operation
1643 content:
1644 application/pdf:
1645 schema:
1646 "$ref": "#/components/schemas/File"
1647 "/purchases/{purchaseId}/contacts/{contactId}/document/{documentType}/":
1648 get:
1649 summary: Return list of files of a documentType
1650 description: Documents' file list is accessible through GET /purchases/{purchaseId}/contact/{contactId}/document/{documentType}/
1651 security:
1652 - BearerAuth: []
1653 tags:
1654 - Purchases contacts
1655 parameters:
1656 - name: purchaseId
1657 in: path
1658 required: true
1659 description: The purchase's id
1660 schema:
1661 type: integer
1662 - name: contactId
1663 in: path
1664 required: true
1665 description: The contact's id
1666 schema:
1667 type: integer
1668 - name: documentType
1669 in: path
1670 required: true
1671 schema:
1672 "$ref": "#/components/schemas/PurchaseContactDocumentType"
1673 responses:
1674 '200':
1675 description: successful operation
1676 content:
1677 application/json:
1678 schema:
1679 type: array
1680 items:
1681 type: object
1682 properties:
1683 filename:
1684 type: string
1685 example: 'plan.pdf'
1686 type:
1687 type: string
1688 example: pdf
1689 size:
1690 type: string
1691 example: '75 Ko'
1692 post:
1693 summary: Add a document related to a purchase's contact.
1694 description: Documents' file list is accessible through GET /purchases/{purchaseId}/. Only one file at a time can be uploaded. This document won't appear in the contract.
1695 security:
1696 - BearerAuth: []
1697 tags:
1698 - Purchases contacts
1699 parameters:
1700 - name: purchaseId
1701 in: path
1702 required: true
1703 description: The purchase's id
1704 schema:
1705 type: integer
1706 - name: contactId
1707 in: path
1708 required: true
1709 description: The contact's id
1710 schema:
1711 type: integer
1712 - name: documentType
1713 in: path
1714 required: true
1715 description: The document's type
1716 schema:
1717 "$ref": "#/components/schemas/PurchaseContactDocumentType"
1718 requestBody:
1719 content:
1720 multipart/form-data:
1721 schema:
1722 type: object
1723 properties:
1724 file:
1725 type: string
1726 format: binary
1727 responses:
1728 '200':
1729 description: Success.
1730 content:
1731 application/json:
1732 schema:
1733 type: object
1734 properties:
1735 message:
1736 type: string
1737 example: 'File succesfully created !'
1738 documentId:
1739 type: integer
1740 example: 1234568
1741 '400':
1742 description: Error(s)
1743 content:
1744 application/json:
1745 schema:
1746 type: object
1747 properties:
1748 errors:
1749 type: array
1750 items:
1751 type: string
1752 delete:
1753 summary: Permanently delete a document. (If the document is composed of multiple files, they will all be deleted)
1754 tags:
1755 - Purchases contacts
1756 security:
1757 - BearerAuth: []
1758 parameters:
1759 - name: purchaseId
1760 in: path
1761 required: true
1762 description: The purchase's id
1763 schema:
1764 type: integer
1765 - name: contactId
1766 in: path
1767 required: true
1768 description: The contact's id
1769 schema:
1770 type: integer
1771 - name: documentType
1772 in: path
1773 required: true
1774 description: The document's type
1775 schema:
1776 "$ref": "#/components/schemas/PurchaseContactDocumentType"
1777 responses:
1778 '200':
1779 description: Successful operation
1780 "/start-signature-process/":
1781 post:
1782 summary: Start purchase's signature process for all contacts
1783 security:
1784 - BearerAuth: []
1785 requestBody:
1786 required: true
1787 content:
1788 application/json:
1789 schema:
1790 type: object
1791 properties:
1792 purchaseId:
1793 type: integer
1794 example: 1234568
1795 tags:
1796 - Signatures
1797 responses:
1798 '200':
1799 description: Success
1800 '400':
1801 description: Error(s)
1802
1803 "/contact-signature-url/{purchaseId}/{contactId}/":
1804 get:
1805 summary: Return the url that redirects to the contact's signature page
1806 security:
1807 - BearerAuth: []
1808 tags:
1809 - Signatures
1810 parameters:
1811 - name: purchaseId
1812 in: path
1813 required: true
1814 description: The purchase's id
1815 schema:
1816 type: integer
1817 - name: contactId
1818 in: path
1819 required: true
1820 description: The contact's id
1821 schema:
1822 type: integer
1823 - name: redirectUrl
1824 in: query
1825 required: true
1826 description: Redirection url after the contact's signature
1827 schema:
1828 type: string
1829 format: uri
1830 responses:
1831 '200':
1832 description: successful operation
1833 content:
1834 application/json:
1835 schema:
1836 type: object
1837 properties:
1838 contactSignatureUrl:
1839 type: string
1840 example: 'https://contact-signature-url/sign/'
1841 format: uri
1842 "/cancel-signature-process/":
1843 post:
1844 summary: Cancel current signature. This is a definitive operation. All eventual signing date/signed contract will be lost.
1845 tags:
1846 - Signatures
1847 requestBody:
1848 required: true
1849 content:
1850 application/json:
1851 schema:
1852 type: object
1853 properties:
1854 purchaseId:
1855 description: ID of the purchase whose signature will be cancelled.
1856 type: integer
1857 example: 1234568
1858 security:
1859 - BearerAuth: []
1860 responses:
1861 '200':
1862 description: Successful operation
1863
1864 "/lead-import/":
1865 post:
1866 summary: Create new lead
1867 security:
1868 - BearerAuth: []
1869 requestBody:
1870 description: >
1871 when creating a new lead, the following fields are required: 'programId', 'MediaReference'.
1872 required: true
1873 content:
1874 application/json:
1875 schema:
1876 type: object
1877 properties:
1878 programId:
1879 type: integer
1880 deprecated: true
1881 example: 1234568
1882 programIds:
1883 type: array
1884 items:
1885 type: integer
1886 MediaReference:
1887 type: integer
1888 example: 1234568
1889 address:
1890 type: string
1891 example: '1 rue de France'
1892 city:
1893 type: string
1894 example: 'Paris'
1895 postal_code:
1896 type: string
1897 example: '75001'
1898 country:
1899 type: string
1900 example: 'AF'
1901 lastname:
1902 type: string
1903 example: 'La Taupe'
1904 firstname:
1905 type: string
1906 example: 'René'
1907 company:
1908 type: string
1909 example: 'google'
1910 job:
1911 type: string
1912 example: 'Hunter'
1913 mobile_phone:
1914 type: string
1915 example: '06123456789'
1916 landline_phone:
1917 type: string
1918 example: '0123456789'
1919 job_phone:
1920 type: string
1921 example: '0198765432'
1922 email:
1923 type: string
1924 format: email
1925 example: 'rene.lataupe@mail.com'
1926 subject:
1927 type: string
1928 example: 'Achat région parisienne'
1929 message:
1930 type: string
1931 example: 'Bonjour, je serais intéressé par un bien en région parisienne.'
1932 nationality:
1933 type: string
1934 example: 'Française'
1935 origin:
1936 type: string
1937 example: 'Contact téléphonique'
1938 budget:
1939 type: number
1940 format: float
1941 example: '150000'
1942 budget_max:
1943 type: number
1944 format: float
1945 example: '200000'
1946 budget_min:
1947 type: number
1948 format: float
1949 example: '1'
1950 civility:
1951 type: string
1952 example: 'M or Mme'
1953 nbRoomsDesired:
1954 type: array
1955 items:
1956 type: integer
1957 description: from 1 to 5 (anything above 5 will be displayed as 5+)
1958 request_date:
1959 type: string
1960 example: '2019-10-25 10:30'
1961 newsletterAccepted:
1962 type: boolean
1963 description: By default, this will be set to false
1964 custom_data:
1965 type: object
1966 tags:
1967 - Lead import
1968 responses:
1969 '200':
1970 description: Success, return the created lead Id.
1971 content:
1972 application/json:
1973 schema:
1974 type: object
1975 properties:
1976 createdLeads:
1977 type: array
1978 items:
1979 type: object
1980 properties:
1981 leadIds:
1982 type: array
1983 items:
1984 type: integer
1985 errors:
1986 type: array
1987 items:
1988 type: object
1989 properties:
1990 lead:
1991 type: integer
1992 errors:
1993 type: array
1994 items:
1995 type: object
1996 properties:
1997 is_critical:
1998 type: boolean
1999 example: false
2000 error_msg:
2001 type: string
2002 '400':
2003 description: Error(s), return an array of errorserror
2004 content:
2005 application/json:
2006 schema:
2007 type: object
2008 properties:
2009 errors:
2010 type: array
2011 items:
2012 type: object
2013 properties:
2014 is_critical:
2015 type: boolean
2016 error_msg:
2017 type: string
2018
2019 "/webhook/":
2020 post:
2021 summary: Set the webhook for the connected user.
2022 security:
2023 - BearerAuth: []
2024 requestBody:
2025 description: This registered webhook url is called each time an event occurs.
2026 Set webhookUrl to null or empty string to unregister the webhook
2027 required: true
2028 content:
2029 application/json:
2030 schema:
2031 type: object
2032 properties:
2033 webhookUrl:
2034 type: string
2035 format: uri
2036 example: https://myserver.com/send/callback/here
2037 tags:
2038 - Webhook
2039 responses:
2040 '200':
2041 description: webhook created
2042 callbacks:
2043 Webhook callback:
2044 Event:
2045 post:
2046 requestBody:
2047 description: Depending on the eventType, objectId refers to a purchase
2048 Id or a program Id
2049 content:
2050 application/json:
2051 schema:
2052 type: object
2053 properties:
2054 eventType:
2055 type: string
2056 enum:
2057 - purchaseStatusChanged
2058 objectId:
2059 type: integer
2060 example: 1234567
2061 responses:
2062 '200':
2063 description: Your server returns this code if it accepts the callback
2064 "/test-trigger-webhook/":
2065 post:
2066 summary: Trigger a fake webhook for testing purposes
2067 security:
2068 - BearerAuth: []
2069 requestBody:
2070 description: |-
2071 Calling this url will trigger a fake webhook notification.
2072 If the calling user has previously registered a webhook url, a post request will be sent to this registered url with the same eventType and objectId that has been sent to test-trigger-webhook/ url
2073 required: true
2074 content:
2075 application/json:
2076 schema:
2077 type: object
2078 properties:
2079 eventType:
2080 type: string
2081 enum:
2082 - purchaseStatusChanged
2083 objectId:
2084 type: integer
2085 example: 1234567
2086 tags:
2087 - Webhook
2088 responses:
2089 '200':
2090 description: Webhook triggered successfully
2091 "/mgc-export/":
2092 get:
2093 summary: Return a xml file containing all information required by MGC for publishing
2094 property advertisements (ref:MGC_Connecting_SpecExportXMLNeuf_V3.2.0.pdf)
2095 security:
2096 - BearerAuth: []
2097 tags:
2098 - MGC xml
2099 responses:
2100 '200':
2101 description: successful operation
2102 content:
2103 application/json:
2104 schema:
2105 "$ref": "#/components/schemas/File"
2106 "/sso/add-purchase/{programId}/":
2107 get:
2108 summary: Get a Single-Sign-On URL to add a purchase
2109 security:
2110 - BearerAuth: []
2111 parameters:
2112 - name: programId
2113 in: path
2114 required: true
2115 description: The program's id
2116 schema:
2117 type: integer
2118 - name: uid
2119 in: query
2120 required: true
2121 description: The user's id
2122 schema:
2123 type: integer
2124 tags:
2125 - SSO
2126 responses:
2127 '200':
2128 description: Success, return a short-lived Single-Sign-On URL to add a purchase by connecting through sso
2129 content:
2130 application/json:
2131 schema:
2132 type: object
2133 properties:
2134 url:
2135 type: string
2136 "/sso/edit-purchase/{purchaseId}/":
2137 get:
2138 summary: Get a Single-Sign-On URL to edit a purchase
2139 security:
2140 - BearerAuth: []
2141 parameters:
2142 - name: purchaseId
2143 in: path
2144 required: true
2145 description: The purchase's id
2146 schema:
2147 type: integer
2148 - name: uid
2149 in: query
2150 required: true
2151 description: The user's id
2152 schema:
2153 type: integer
2154 tags:
2155 - SSO
2156 responses:
2157 '200':
2158 description: Success, return a short-lived Single-Sign-On URL to edit a purchase by connecting through sso
2159 content:
2160 application/json:
2161 schema:
2162 type: object
2163 properties:
2164 url:
2165 type: string
2166 "/sso/buyer-edit-purchase/{purchaseId}/":
2167 get:
2168 summary: Get a Single-Sign-On URL for buyer to edit a purchase
2169 security:
2170 - BearerAuth: []
2171 parameters:
2172 - name: purchaseId
2173 in: path
2174 required: true
2175 description: The purchase's id
2176 schema:
2177 type: integer
2178 - name: uid
2179 in: query
2180 required: true
2181 description: The buyer's id
2182 schema:
2183 type: integer
2184 tags:
2185 - SSO
2186 responses:
2187 '200':
2188 description: Success, return a short-lived Single-Sign-On URL to edit a purchase by connecting through sso
2189 content:
2190 application/json:
2191 schema:
2192 type: object
2193 properties:
2194 url:
2195 type: string
2196 "/sso/preview-purchase/{purchaseId}/":
2197 get:
2198 summary: Get a Single-Sign-On URL to preview a purchase
2199 security:
2200 - BearerAuth: []
2201 parameters:
2202 - name: purchaseId
2203 in: path
2204 required: true
2205 description: The purchase's id
2206 schema:
2207 type: integer
2208 - name: uid
2209 in: query
2210 required: true
2211 description: The user's id
2212 schema:
2213 type: integer
2214 tags:
2215 - SSO
2216 responses:
2217 '200':
2218 description: Success, return a short-lived Single-Sign-On URL to show dashboard with a specific purchase preview by connecting through sso
2219 content:
2220 application/json:
2221 schema:
2222 type: object
2223 properties:
2224 url:
2225 type: string
2226 "/sso/homepage/":
2227 get:
2228 summary: Get a Single-Sign-On URL to log on
2229 security:
2230 - BearerAuth: []
2231 parameters:
2232 - name: uid
2233 in: query
2234 required: true
2235 description: The user's id
2236 schema:
2237 type: integer
2238 tags:
2239 - SSO
2240 responses:
2241 '200':
2242 description: Success, return a short-lived Single-Sign-On URL to log on and show dashboard
2243 content:
2244 application/json:
2245 schema:
2246 type: object
2247 properties:
2248 url:
2249 type: string
2250components:
2251 securitySchemes:
2252 BearerAuth:
2253 type: http
2254 scheme: bearer
2255 schemas:
2256 Country:
2257 type: string
2258 enum: ["AF","ZA","AL","DZ","DE","AD","AO","AI","AG","SA","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BE","BZ","BJ","BM","BT","BY","BO","BQ","BA","BW","BV","BR","BN","BG","BF","BI","KY","KH","CM","CA","ES","CV","CF","ES","CL","CN","CY","CC","CO","KM","CD","CG","KR","KP","CR","CI","HR","CU","CW","DK","DJ","DO","DM","EG","AE","EC","ER","ES","EE","US","ET","FK","FO","FJ","FI","FR","GA","GM","GE","GS","GH","GI","GR","GD","GL","GU","GT","GG","GN","GQ","GW","GY","HT","HM","HN","HK","HU","CX","AX","CK","TC","IN","ID","IR","IQ","IE","IS","IL","IT","JM","JP","JE","JO","KZ","KE","KG","KI","KW","LA","LS","LV","LB","LR","LY","LI","LT","LU","MO","MK","MG","MY","MW","MV","ML","MT","IM","MP","MA","MH","MU","MR","MX","FM","MD","MN","ME","MS","MZ","MM","NA","NR","NP","NI","NE","NG","NU","NF","NO","NC","NZ","OM","UG","UZ","PK","PW","PA","PG","PY","NL","PE","PH","PN","PL","PF","PR","PT","QA","AQ","RO","GB","RU","RW","EH","SX","SB","SV","WS","AS","ST","SN","RS","SC","SL","SG","SK","SI","SO","SD","LK","BL","MF","VC","SM","SH","LC","SS","SE","CH","SR","SJ","SZ","SY","TJ","TW","TZ","TD","CZ","TH","TL","TG","TK","TO","TT","TN","TM","TR","TV","UA","UY","VU","VA","VE","VG","VI","VN","WF","YE","ZM"]
2259 description: "* `AF` - AFGHANISTAN\n* `ZA` - AFRIQUE DU SUD\n* `AL` - ALBANIE\n* `DZ` - ALGERIE\n* `DE` - ALLEMAGNE\n* `AD` - ANDORRE\n* `AO` - ANGOLA\n* `AI` - ANGUILLA\n* `AG` - ANTIGUA-ET-BARBUDA\n* `SA` - ARABIE SAOUDITE\n* `AR` - ARGENTINE\n* `AM` - ARMENIE\n* `AW` - ARUBA\n* `AU` - AUSTRALIE\n* `AT` - AUTRICHE\n* `AZ` - AZERBAIDJAN\n* `BS` - BAHAMAS\n* `BH` - BAHREIN\n* `BD` - BANGLADESH\n* `BB` - BARBADE LA\n* `BE` - BELGIQUE\n* `BZ` - BELIZE\n* `BJ` - BENIN\n* `BM` - BERMUDES\n* `BT` - BHOUTAN\n* `BY` - BIELORUSSIE\n* `BO` - BOLIVIE\n* `BQ` - BONAIRE\n* `BA` - BOSNIE-HERZEGOVINE\n* `BW` - BOTSWANA\n* `BV` - BOUVET\n* `BR` - BRESIL\n* `BN` - BRUNEI DARUSSALAM\n* `BG` - BULGARIE\n* `BF` - BURKINA FASO\n* `BI` - BURUNDI\n* `KY` - CAIMANES\n* `KH` - CAMBODGE\n* `CM` - CAMEROUN\n* `CA` - CANADA\n* `ES` - CANARIES\n* `CV` - CAP-VERT\n* `CF` - CENTRAFRICAINE\n* `ES` - CEUTA ET MELILLA\n* `CL` - CHILI\n* `CN` - CHINE\n* `CY` - CHYPRE\n* `CC` - COCOS KEELING\n* `CO` - COLOMBIE\n* `KM` - COMORES\n* `CD` - CONGO\n* `CG` - CONGO\n* `KR` - COREE\n* `KP` - COREE DU NORD \n* `CR` - COSTA RICA\n* `CI` - COTE D'IVOIRE\n* `HR` - CROATIE\n* `CU` - CUBA\n* `CW` - CURACAO\n* `DK` - DANEMARK\n* `DJ` - DJIBOUTI\n* `DO` - DOMINICAINE\n* `DM` - DOMINIQUE\n* `EG` - EGYPTE\n* `AE` - EMIRATS ARABES UNIS\n* `EC` - EQUATEUR\n* `ER` - ERYTHREE\n* `ES` - ESPAGNE\n* `EE` - ESTONIE\n* `US` - ETATS-UNIS D'AMERIQUE\n* `ET` - ETHIOPIE\n* `FK` - FALKLAND\n* `FO` - FEROE\n* `FJ` - FIDJI\n* `FI` - FINLANDE\n* `FR` - FRANCE\n* `GA` - GABON\n* `GM` - GAMBIE\n* `GE` - GEORGIE\n* `GS` - GEORGIE DU SUD\n* `GH` - GHANA\n* `GI` - GIBRALTAR\n* `GR` - GRECE\n* `GD` - GRENADE\n* `GL` - GROENLAND\n* `GU` - GUAM\n* `GT` - GUATEMALA\n* `GG` - GUERNESEY\n* `GN` - GUINEE\n* `GQ` - GUINEE EQUATORIALE\n* `GW` - GUINEE-BISSAO\n* `GY` - GUYANA\n* `HT` - HAITI\n* `HM` - HEARD ET MC DONALD\n* `HN` - HONDURAS\n* `HK` - HONG-KONG\n* `HU` - HONGRIE\n* `CX` - ILE CHRISTMAS\n* `AX` - ILES ALAND\n* `CK` - ILES COOK\n* `TC` - ILES TURQUES-ET-CAIQUES\n* `IN` - INDE\n* `ID` - INDONESIE\n* `IR` - IRAN\n* `IQ` - IRAQ\n* `IE` - IRLANDE\n* `IS` - ISLANDE\n* `IL` - ISRAEL\n* `IT` - ITALIE\n* `JM` - JAMAIQUE\n* `JP` - JAPON\n* `JE` - JERSEY\n* `JO` - JORDANIE\n* `KZ` - KAZAKHSTAN\n* `KE` - KENYA\n* `KG` - KIRGHIZISTAN\n* `KI` - KIRIBATI\n* `KW` - KOWEIT\n* `LA` - LAOS\n* `LS` - LESOTHO\n* `LV` - LETTONIE\n* `LB` - LIBAN\n* `LR` - LIBERIA\n* `LY` - LIBYE\n* `LI` - LIECHTENSTEIN\n* `LT` - LITUANIE\n* `LU` - LUXEMBOURG\n* `MO` - MACAO\n* `MK` - MACEDOINE\n* `MG` - MADAGASCAR\n* `MY` - MALAISIE\n* `MW` - MALAWI\n* `MV` - MALDIVES\n* `ML` - MALI\n* `MT` - MALTE\n* `IM` - MAN\n* `MP` - MARIANNES DU NORD\n* `MA` - MAROC\n* `MH` - MARSHALL\n* `MU` - MAURICE\n* `MR` - MAURITANIE\n* `MX` - MEXIQUE\n* `FM` - MICRONESIE\n* `MD` - MOLDAVIE\n* `MN` - MONGOLIE\n* `ME` - MONTENEGRO\n* `MS` - MONTSERRAT\n* `MZ` - MOZAMBIQUE\n* `MM` - MYANMAR\n* `NA` - NAMIBIE\n* `NR` - NAURU\n* `NP` - NEPAL\n* `NI` - NICARAGUA\n* `NE` - NIGER\n* `NG` - NIGERIA\n* `NU` - NIUE\n* `NF` - NORFOLK\n* `NO` - NORVEGE\n* `NC` - NOUVELLE-CALEDONIE\n* `NZ` - NOUVELLE-ZELANDE\n* `OM` - OMAN\n* `UG` - OUGANDA\n* `UZ` - OUZBEKISTAN\n* `PK` - PAKISTAN\n* `PW` - PALAU\n* `PA` - PANAMA\n* `PG` - PAPOUASIE-NOUVELLE-GUINEE\n* `PY` - PARAGUAY\n* `NL` - PAYS-BAS\n* `PE` - PEROU\n* `PH` - PHILIPPINES\n* `PN` - PITCAIRN\n* `PL` - POLOGNE\n* `PF` - POLYNESIE FRANCAISE\n* `PR` - PORTO-RICO\n* `PT` - PORTUGAL\n* `QA` - QATAR\n* `AQ` - REGIONS POLAIRES\n* `RO` - ROUMANIE\n* `GB` - ROYAUME-UNI\n* `RU` - RUSSIE\n* `RW` - RWANDA\n* `EH` - SAHARA OCCIDENTAL\n* `SX` - SAINT-MARTIN\n* `SB` - SALOMON\n* `SV` - SALVADOR\n* `WS` - SAMOA\n* `AS` - SAMOA AMERICAINES\n* `ST` - SAO TOME ET PRINCIPE\n* `SN` - SENEGAL\n* `RS` - SERBIE\n* `SC` - SEYCHELLES\n* `SL` - SIERRA LEONE\n* `SG` - SINGAPOUR\n* `SK` - SLOVAQUIE\n* `SI` - SLOVENIE\n* `SO` - SOMALIE\n* `SD` - SOUDAN\n* `LK` - SRI LANKA\n* `BL` - ST BARTHELEMY\n* `MF` - ST MARTIN\n* `VC` - ST VINCENT \n* `SM` - ST-MARIN\n* `SH` - STE HELENE\n* `LC` - STE LUCIE\n* `SS` - SUD SOUDAN\n* `SE` - SUEDE\n* `CH` - SUISSE\n* `SR` - SURINAME\n* `SJ` - SWALBARD ET ILES JAN MAYEN\n* `SZ` - SWAZILAND\n* `SY` - SYRIE\n* `TJ` - TADJIKISTAN\n* `TW` - TAIWAN\n* `TZ` - TANZANIE \n* `TD` - TCHAD\n* `CZ` - TCHEQUE\n* `TH` - THAILANDE\n* `TL` - TIMOR LESTE\n* `TG` - TOGO\n* `TK` - TOKELAU\n* `TO` - TONGA\n* `TT` - TRINITE-ET-TOBAGO\n* `TN` - TUNISIE\n* `TM` - TURKMENISTAN\n* `TR` - TURQUIE\n* `TV` - TUVALU\n* `UA` - UKRAINE\n* `UY` - URUGUAY\n* `VU` - VANUATU\n* `VA` - VATICAN\n* `VE` - VENEZUELA\n* `VG` - VIERGES BRITANNIQUES\n* `VI` - VIERGES DES ETATS-UNIS\n* `VN` - VIET NAM\n* `WF` - WALLIS ET FUTUNA\n* `YE` - YEMEN\n* `ZM` - ZAMBIE\n"
2260 Contacts:
2261 type: array
2262 items:
2263 type: object
2264 properties:
2265 contactId:
2266 type: integer
2267 example: 12345678
2268 firstName:
2269 type: string
2270 example: Martin
2271 lastName:
2272 type: string
2273 example: Rédon
2274 email:
2275 type: string
2276 example: martin.rédon@getunlatch.com
2277 updated:
2278 type: string
2279 example: '2020-04-11'
2280 Contact:
2281 type: object
2282 properties:
2283 contactId:
2284 type: integer
2285 programId:
2286 type: integer
2287 email:
2288 type: string
2289 format: email
2290 lastname:
2291 type: string
2292 firstname:
2293 type: string
2294 maidenName:
2295 type: string
2296 sex:
2297 "$ref": "#/components/schemas/Sex"
2298 nationality:
2299 type: string
2300 job:
2301 type: string
2302 birthDate:
2303 type: string
2304 format: date
2305 birthPlace:
2306 type: string
2307 address:
2308 type: string
2309 city:
2310 type: string
2311 zipcode:
2312 type: string
2313 mobilePhone:
2314 type: string
2315 fixedPhone:
2316 type: string
2317 newsletterAccepted:
2318 type: boolean
2319 country:
2320 "$ref": "#/components/schemas/Country"
2321 mediaReference:
2322 type: array
2323 items:
2324 type: object
2325 properties:
2326 idac:
2327 type: integer
2328 example: 12345678
2329 title:
2330 type: string
2331 example: 'Title'
2332 wedding:
2333 type: object
2334 nullable: true
2335 properties:
2336 date:
2337 type: string
2338 weddedTo:
2339 type: integer
2340 example: 12345678
2341 description: ID of the contact in the same marriage
2342 weddingKind:
2343 type: string
2344 enum: ["civil_solidarity_pact","cohabitation","marriage"]
2345 matrimonialRegime:
2346 type: string
2347 enum: ["community_of_property","community_of_property","full_community","joint_ownership_of_acquired_property","separation_of_property","separation_of_property"]
2348 Companies:
2349 type: array
2350 items:
2351 type: object
2352 properties:
2353 name:
2354 type: string
2355 example: Unlatch
2356 address:
2357 type: string
2358 example: '9 boulevard Gouvion Saint-Cyr'
2359 city:
2360 type: string
2361 example: Paris
2362 zip:
2363 type: string
2364 example: 75019
2365 shareCapital:
2366 type: float
2367 example: 123456.25
2368 businessRegistrationNumber:
2369 type: float
2370 example: 654321
2371 representedBy:
2372 type: integer
2373 example: 789456
2374 description: contact's ID
2375 country:
2376 "$ref": "#/components/schemas/Country"
2377 Whitelabels:
2378 type: array
2379 items:
2380 type: object
2381 properties:
2382 companyTitle:
2383 type: string
2384 companyId:
2385 type: integer
2386 Admins:
2387 type: array
2388 items:
2389 "$ref": "#/components/schemas/Admin"
2390 Admin:
2391 type: object
2392 properties:
2393 adminId:
2394 type: integer
2395 companyId:
2396 type: integer
2397 email:
2398 type: string
2399 active:
2400 type: boolean
2401 sex:
2402 type: integer
2403 lastname:
2404 type: string
2405 firstname:
2406 type: string
2407 landlinePhone:
2408 type: string
2409 mobilePhone:
2410 type: string
2411 address:
2412 type: string
2413 postalCode:
2414 type: string
2415 city:
2416 type: string
2417 custom_data:
2418 type: object
2419 roles:
2420 type: array
2421 items:
2422 "$ref": "#/components/schemas/Role"
2423 Role:
2424 type: object
2425 properties:
2426 roleId:
2427 type: integer
2428 title:
2429 type: string
2430 programs:
2431 type: array
2432 items:
2433 type: object
2434 properties:
2435 programId:
2436 type: integer
2437 title:
2438 type: string
2439 ProgramDocuments:
2440 type: array
2441 items:
2442 type: object
2443 properties:
2444 documentId:
2445 type: integer
2446 example: 123456
2447 caption:
2448 type: string
2449 example: 'Document file name'
2450 filename:
2451 type: string
2452 example: 'doc_name.pdf'
2453 url:
2454 type: string
2455 format: uri
2456 description: Only for VISITE VIRTUELLE documentType
2457 example: 'example.com/some-identifier'
2458 lotIds:
2459 type: array
2460 description: Is not empty only if the document is associated with some lots but not the entire program
2461 items:
2462 type: integer
2463 example: 987654
2464 documentType:
2465 type: string
2466 enum: ["LOGO","PLAN","PLAN 3D","PLAN MASSE","PLAQUETTE","VIDEO","VISITE VIRTUELLE","VISUEL"]
2467 Documents:
2468 type: array
2469 items:
2470 type: object
2471 properties:
2472 documentId:
2473 type: integer
2474 example: 123456
2475 caption:
2476 type: string
2477 example: 'Document file name'
2478 filename:
2479 type: string
2480 example: 'doc_name.pdf'
2481 documentType:
2482 type: string
2483 enum: ["LOGO","PLAN","PLAN 3D","PLAN MASSE","PLAQUETTE","VIDEO","VISITE VIRTUELLE","VISUEL"]
2484 FilesList:
2485 type: array
2486 items:
2487 type: object
2488 properties:
2489 filename:
2490 type: string
2491 example: plan.pdf
2492 size:
2493 type: string
2494 example: 75 Ko
2495 type:
2496 type: string
2497 example: pdf
2498 File:
2499 type: string
2500 format: binary
2501 PurchaseContactDocumentType:
2502 type: string
2503 description: "documentType can only be one of the following : identity_proof"
2504 example: identity_proof
2505 enum:
2506 - identity_proof
2507 ProgramOptions:
2508 type: array
2509 items:
2510 "$ref": "#/components/schemas/LotOption"
2511
2512 Program:
2513 type: object
2514 properties:
2515 programId:
2516 type: integer
2517 documents:
2518 "$ref": "#/components/schemas/ProgramDocuments"
2519 location:
2520 type: array
2521 items:
2522 type: object
2523 properties:
2524 address:
2525 type: string
2526 city:
2527 type: string
2528 postal_code:
2529 type: string
2530 department:
2531 type: string
2532 country:
2533 "$ref": "#/components/schemas/Country"
2534 latitude:
2535 type: string
2536 longitude:
2537 type: string
2538 deliveryDate:
2539 type: string
2540 format: date
2541 defaultVat:
2542 type: number
2543 example: 0.2
2544 custom_data:
2545 type: object
2546 commercialFeatures:
2547 type: array
2548 items:
2549 type: string
2550 commercialDescription:
2551 type: array
2552 items:
2553 type: object
2554 properties:
2555 short:
2556 type: string
2557 long:
2558 type: string
2559 taxMeasures:
2560 type: array
2561 items:
2562 type: string
2563 lots:
2564 type: array
2565 items:
2566 type: object
2567 properties:
2568 lotId:
2569 type: string
2570 isPrimaryLot:
2571 type: boolean
2572 lotNumber:
2573 type: string
2574 example: A1
2575 externalId:
2576 type: string
2577 example: "f09240e2a"
2578 deprecated: true
2579 externalIds:
2580 "$ref": "#/components/schemas/ExternalIds"
2581 surface:
2582 type: number
2583 example: 53.00
2584 exposure:
2585 type: string
2586 example: Sud
2587 price:
2588 type: number
2589 example: 220000.000
2590 deliveryDate:
2591 type: string
2592 format: date
2593 example: '2002-10-02'
2594 type:
2595 type: string
2596 example: T2
2597 primaryLotType:
2598 type: string
2599 enum: ["apartment","house","land","mixed","parking"]
2600 building:
2601 type: string
2602 example: bâtiment B
2603 floor:
2604 type: string
2605 example: 3e étage
2606 numberOfRoom:
2607 type: integer
2608 deprecated: true
2609 example: 4
2610 numberOfRooms:
2611 type: integer
2612 example: 4
2613 available:
2614 type: boolean
2615 documents:
2616 "$ref": "#/components/schemas/Documents"
2617 parentLot:
2618 type: integer
2619 example: 123456
2620 childrenLots:
2621 type: array
2622 items:
2623 type: integer
2624 example: 132456
2625 sideRooms:
2626 type: array
2627 items:
2628 type: object
2629 properties:
2630 sideRoomId:
2631 type: integer
2632 example: 123456
2633 sideRoomType:
2634 type: string
2635 example: balcon
2636 sideRoomNumber:
2637 type: string
2638 example: A09
2639 sideRoomSurface:
2640 type: number
2641 example: 100
2642 status:
2643 type: string
2644 example: option
2645 custom_data:
2646 type: object
2647 createPurchaseUrl:
2648 type: string
2649 externalIds:
2650 "$ref": "#/components/schemas/ExternalIds"
2651 Programs:
2652 type: array
2653 items:
2654 type: object
2655 properties:
2656 programId:
2657 type: integer
2658 developer:
2659 type: string
2660 caption:
2661 type: string
2662 externalIds:
2663 "$ref": "#/components/schemas/ExternalIds"
2664 LotOption:
2665 type: object
2666 properties:
2667 optionId:
2668 type: integer
2669 example: 123456
2670 optionGroup:
2671 type: integer
2672 example: 123456
2673 groupName:
2674 type: string
2675 example: "Offres exclusives"
2676 caption:
2677 type: string
2678 example: "Salle de bain offerte"
2679 stockPrice:
2680 type: string
2681 example: "100.OOO"
2682 stockPricePercent:
2683 type: string
2684 example: "2.00"
2685 priceAsPercent:
2686 type: boolean
2687 minCount:
2688 type: integer
2689 example: 0
2690 maxCount:
2691 type: integer
2692 example: 1
2693 eligible_lots:
2694 type: array
2695 items:
2696 type: integer
2697 example: 123456
2698 Lot:
2699 type: object
2700 properties:
2701 lotId:
2702 type: integer
2703 example: 1234568
2704 programId:
2705 type: integer
2706 example: 1234568
2707 externalId:
2708 type: string
2709 example: '8654321'
2710 externalIds:
2711 "$ref": "#/components/schemas/ExternalIds"
2712 isPrimaryLot:
2713 type: boolean
2714 example: true
2715 parentLot:
2716 type: string
2717 example: '1234568'
2718 description: lotId of parent lot (only for secondary lots)
2719 lotNumber:
2720 type: string
2721 example: 'A1'
2722 surface:
2723 type: number
2724 format: float
2725 example: '60.25'
2726 exposure:
2727 type: string
2728 example: 'Ouest'
2729 price:
2730 type: number
2731 format: float
2732 example: '200.333'
2733 type:
2734 type: string
2735 example: 'T4'
2736 primaryLotType:
2737 type: string
2738 enum: ["apartment","house","land","mixed","parking"]
2739 building:
2740 type: string
2741 description: only for primary lots
2742 example: 'Bâtiment A'
2743 floor:
2744 type: string
2745 description: only for primary lots
2746 example: '4e'
2747 numberOfRoom:
2748 type: integer
2749 description: only for primary lots
2750 deprecated: true
2751 example: 4
2752 numberOfRooms:
2753 type: integer
2754 description: only for primary lots
2755 example: 4
2756 available:
2757 type: boolean
2758 description: only for primary lots
2759 example: true
2760 deliveryDate:
2761 type: string
2762 description: only for primary lots
2763 format: date
2764 example: '2002-10-02'
2765 sideRooms:
2766 required: false
2767 description: only for primary lots
2768 type: array
2769 items:
2770 type: object
2771 properties:
2772 sideRoomId:
2773 type: integer
2774 required: false
2775 example: 123456
2776 description: "null to create a surface, unchanged if sideRoomId is set"
2777 sideRoomType:
2778 type: string
2779 example: balcon
2780 sideRoomNumber:
2781 type: string
2782 example: A09
2783 sideRoomSurface:
2784 type: number
2785 example: 100
2786 Questionnaire:
2787 type: object
2788 properties:
2789 questionnaire:
2790 type: array
2791 items:
2792 type: object
2793 properties:
2794 section:
2795 type: string
2796 example: "Type d'acheteur"
2797 answered:
2798 type: number
2799 example: 1
2800 total:
2801 type: number
2802 example: 2
2803 questions:
2804 type: array
2805 items:
2806 type: object
2807 properties:
2808 definition:
2809 type: object
2810 properties:
2811 radio:
2812 type: string
2813 example: "Qui réserve le bien immobilier ?"
2814 property:
2815 type: string
2816 example: "custom_data.type_buyer"
2817 type:
2818 type: string
2819 example: "radio"
2820 value:
2821 example: "particulier"
2822 Sex:
2823 type: string
2824 enum: [0, 1, 2]
2825 description: "* 0 - Unknown\n* 1 - Male\n* 2 - Female"
2826 UpdatedContact:
2827 type: object
2828 properties:
2829 contactId:
2830 type: integer
2831 UpdatedPurchase:
2832 type: object
2833 properties:
2834 purchaseId:
2835 type: integer
2836 editionUrl:
2837 type: string
2838 format: uri
2839 SignatureType:
2840 type: string
2841 enum: [0, 1, 2]
2842 description: "* 0 - No signature\n* 1 - Paper signature\n* 2 - Electronic signature"
2843 GenerationType:
2844 type: string
2845 enum: [1, 2, 3]
2846 description: "* 1 - Imported\n* 2 - Generated\n* 3 - Imported with signature frames"
2847 NotificationType:
2848 type: string
2849 enum: [0, 1, 2, 3]
2850 description: "* 0 - No notification\n* 1 - Notification not performed with Unlatch\n* 2 - Notification performed with Unlatch\n* 3 - Email"
2851 ExternalIds:
2852 type: object
2853 properties:
2854 APIId:
2855 type: string
2856