Aller au contenu principal

Contrats

Pour créer un contrat éxecutez cette requête, une fois éxecutée la réponse contient un identifiant de contrat nommé cid dans l'objet contract avec lequel vous pouvez effectuer des actions liées à ce contrat : modifications, ajout de produits, résiliation de produits, résiliation.

⚠️ Certains champs sont obligatoires et susceptibles d'avoir certaines contraintes. Se référencer à la définition de corps de requête

Erreurs

contrat
CodeChampDescriptionCorrection
1000start_datela start_date se trouve dans le passéDéfinir start_date dans le futur
1001end_datela end_date se trouve dans le passé de start_dateDéfinir end_date dans le futur par rapport à start_date
1002end_datela durée du contrat n'est pas conforme par rapport au type du contractLCD: entre 1 jour et 31 jours
LMD: entre 1 mois et 12 mois
LLD: entre 12 mois et 60 mois
1003contract_typevous n'êtes pas autorisé à créer ce type de contratContacter Tulip
1004contract_typecontract_type ne correspond pas à une valeur attenducontract_type = "LCD" ou "LMD" ou "LLD"
1005end_dateend_date est un champ requisDéfinir end_date
1006contract_typecontract_type est un champ requisDéfinir contract_type
1007productsproducts doit contenir au minimum un élémentDéfinir au moins un élément
1008optionsoptions est un champ requisDéfinir options
1009optionsoptions à des éléments requisoptions doit contenir à minima "break" et "theft"
1010optionsoptions ne correspond pas aux valeurs attenduoptions: "assistance", "break", "theft", "home_to_work", "pro", "rc", "ia", "sharing", "transportation", "individual", "company", "loa"
1011documentsl'identifiant du document n'existe pasDéfinir un id de document correcte
1012uiduid est un champ requisDéfinir uid. uid représente l'identifiant du loueur
1013companycompany est un champ requisDéfinir company
1014individualindividual est un champ requisDéfinir individual
1015optionsoptions à des éléments requisoptions doit contenir à minima "break", "theft", "natural_disaster", "technological_disaster". Il doit également contenir une des options suivantes: "company" ou "individual". Il doit également contenir le cas d'usage du produit: "home_to_work" ou "pro" ou "transporter"
1016iaia est un champ requisDéfinir ia
1017iaia ne correspond pas aux valeurs attenduDéfinir un objet ia valide. ia doit contenir package et zipcode. package est un chiffre sélectionnant le pack souhaité (voir PackagesIA).
1018optionsoptions à des éléments requisoptions doit contenir à minima "break" et "theft"
1019optionsoptions à des éléments requisoptions doit contenir à minima "break" et "theft"
1020optionsoptions à des éléments requisoptions doit contenir à minima "break" et "theft". Il doit également contenir une des options suivantes: "company" ou "individual".
1050start_dateLe contrat à démarré il y a plus de 4hLa start_date ne peu plus être modifier 4h après le début du contrat
1051contractLe contrat n'existe pascid est probablement incorrect
1052statusLe contrat n'est pas ouvert
company
CodeChampDescriptionCorrection
1100company_namecompany_name est un champ requisDéfinir company_name
1101sirensiren est un champ requisDéfinir siren
1102sirensiren n'est pas correctsiren doit contenir 9 caractères
1103first_namefirst_name est un champ requisDéfinir first_name
1104last_namelast_name est un champ requisDéfinir last_name
1105addressaddress est un champ requisDéfinir address
1106zipcodezipcode est un champ requisDéfinir zipcode
1107citycity est un champ requisDéfinir city
1108countrycountry est un champ requisDéfinir country
1106zipcodezipcode n'est pas correctzipcode doit être valide
1107citycity n'est pas correctcity doit être sous sa forme normalisée (@voir Villes et codes postaux)
1108countrycountry n'est pas correctcountry: "FR"
1109companycompany est un n'est pas correctL'objet company ne convient pas, ce référé à la doc OpenAPI
1150companycompany est un champ bloquéImpossible de modifier company
individual
CodeChampDescriptionCorrection
1400first_namefirst_name est un champ requisDéfinir first_name
1401last_namelast_name est un champ requisDéfinir last_name
1402addressaddress est un champ requisDéfinir address
1403zipcodezipcode est un champ requisDéfinir zipcode
1404citycity est un champ requisDéfinir city
1405phone_numberphone_number est un champ requisDéfinir phone_number
1406countrycountry est un champ requisDéfinir country
1407zipcodezipcode n'est pas correctzipcode doit être valide
1408citycity n'est pas correctcity doit être sous sa forme normalisée (@voir Villes et codes postaux)
1409countrycountry n'est pas correctcountry: "FR"
1410individualindividual est un n'est pas correctL'objet individual ne convient pas, ce référé à la doc OpenAPI
1450individualindividual est un champ bloquéImpossible de modifier individual
products
CodeChampDescriptionCorrection
1200product_idproduct_id est un champ requisDéfinir product_id
1201product_idl'identifiant du produit n'existe pasDéfinir un identifiant de produit correcte
1202product_idvous n'avez pas les permissions pour créer un contrat avec ce type de produitcontacter Tulip
1203documentsl'identifiant du document n'existe pasDéfinir un id de document correcte
1220datadata est un champ requis lorsque le produit est de type bikeDéfinir data
1221productsproducts est invalideDéfinir un objet products valide
data ➡️ bike
CodeChampDescriptionCorrection
1300user_nameuser_name est un champ requis pour créer ce contratDéfinir user_name
1301product_markedproduct_marked est un champ requis pour créer ce contratDéfinir product_marked
1350statusLe produit n'existe pas ou est clos ou résilié
1351end_dateend_date est dans le passé
1352end_dateend_date est dans le future du contrat

Exemples

Création d'un devis

Devis LCD avec un produit existant
curl --location '$TULIP_API_URL/v2/contracts?preview=true' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2021-09-30T00:00:00.000Z",
"contract_type": "LCD",
"options": [
"break",
"theft"
],
"products": [
{
"product_id": "5f9b2b3b",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789"
}
}
]
}
Devis LCD avec définition d'un produit
curl --location '$TULIP_API_URL/v2/contracts?preview=true' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2021-09-30T00:00:00.000Z",
"contract_type": "LCD",
"options": [
"break",
"theft"
],
"products": [
{
"product_type": "bike",
"product_subtype": "standard",
"value_excl": 1100
}
]
}
Devis LLD avec un produit existant
curl --location '$TULIP_API_URL/v2/contracts?preview=true' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2023-09-01T00:00:00.000Z",
"contract_type": "LLD",
"options": [
"break",
"theft"
],
"products": [
{
"product_id": "5f9b2b3b",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789"
}
}
]
}
Devis LLD avec définition d'un produit
curl --location '$TULIP_API_URL/v2/contracts?preview=true' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2023-09-01T00:00:00.000Z",
"contract_type": "LLD",
"options": [
"break",
"theft"
],
"products": [
{
"product_type": "bike",
"product_subtype": "standard",
"value_excl": 1100
}
]
}

Création d'un contrat

Contrat LCD avec un produit existant
curl --location '$TULIP_API_URL/v2/contracts' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2021-09-30T00:00:00.000Z",
"contract_type": "LCD",
"options": [
"break",
"theft"
],
"products": [
{
"product_id": "5f9b2b3b",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789"
}
}
]
}
Contrat LCD avec définition d'un produit
curl --location '$TULIP_API_URL/v2/contracts' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2021-09-30T00:00:00.000Z",
"contract_type": "LCD",
"options": [
"break",
"theft"
],
"products": [
{
"product_type": "bike",
"product_subtype": "standard",
"value_excl": 1100,
"brand": "Pelago",
"model": "Brooklyn",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789"
}
}
]
}
Contrat LLD avec un produit existant
curl --location '$TULIP_API_URL/v2/contracts' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2023-09-01T00:00:00.000Z",
"contract_type": "LLD",
"options": [
"break",
"theft",
"individual"
],
"products": [
{
"product_id": "5f9b2b3b",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789"
}
}
],
"individual": {
"phone_number": "0600000000",
"country": "FR",
"zipcode": "75001",
"city": "PARIS-1ER-ARRONDISSEMENT",
"address": "1 RUE DE RIVOLI",
"first_name": "Pierre",
"last_name": "Dupont",
"email": "pierredupont@example.com"
}
}
Contrat LLD avec définition d'un produit
curl --location '$TULIP_API_URL/v2/contracts' \
--header 'key: $TULIP_API_KEY' \
--header 'Content-Type: application/json' \
--data "$TULIP_BODY_JSON"
{
"uid": "1b0b2b3b4b5b",
"start_date": "2021-09-01T00:00:00.000Z",
"end_date": "2023-09-01T00:00:00.000Z",
"contract_type": "LLD",
"options": [
"break",
"theft",
"individual"
],
"products": [
{
"product_type": "bike",
"product_subtype": "standard",
"value_excl": 1100,
"brand": "Pelago",
"model": "Brooklyn",
"data": {
"user_name": "Pierre Dupont",
"product_marked": "123456789",
"internal_id": "bk-123456789"
}
}
],
"individual": {
"phone_number": "0600000000",
"country": "FR",
"zipcode": "75001",
"city": "PARIS-1ER-ARRONDISSEMENT",
"address": "1 RUE DE RIVOLI",
"first_name": "Pierre",
"last_name": "Dupont",
"email": "pierredupont@example.com"
}
}