Solarware API-Dokumentation
YAML herunterladen

Vertrag erstellen

post /api/v1/contracts

Sicherheit

ApiKeyAuth

Parameter

Name In Typ Details
Idempotency-Key header string Optional Unique key for safe create retries (Make/Zapier/n8n). Replays the stored successful response for the same key + request body within 7 days.

Request-Body Pflicht

application/json

Beispiel

{
    "subject": "Solar Vertrag",
    "status": "draft",
    "date": "2026-07-17",
    "sale": {
        "currency": "EUR",
        "to_first_name": "Max",
        "to_last_name": "Mustermann",
        "to_email": "max@example.com",
        "sale_items": [
            {
                "product_title": "Installation",
                "quantity": 1,
                "unit_price": 1500,
                "tax_percentage": 19
            }
        ]
    }
}

Schema

{
    "type": "object",
    "properties": {
        "subject": {
            "type": "string"
        },
        "status": {
            "type": "string",
            "enum": [
                "draft",
                "open",
                "trash",
                "canceled"
            ]
        },
        "date": {
            "type": "string",
            "format": "date"
        },
        "offer_id": {
            "type": "integer"
        },
        "header_notes": {
            "type": "string"
        },
        "sale": {
            "type": "object",
            "properties": {
                "currency": {
                    "type": "string",
                    "example": "EUR"
                },
                "to_type": {
                    "type": "string",
                    "example": "person"
                },
                "to_first_name": {
                    "type": "string"
                },
                "to_last_name": {
                    "type": "string"
                },
                "to_email": {
                    "type": "string",
                    "format": "email"
                },
                "to_city": {
                    "type": "string"
                },
                "to_countries_id": {
                    "type": "integer"
                },
                "sale_items": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "product_title": {
                                "type": "string"
                            },
                            "quantity": {
                                "type": "number"
                            },
                            "unit_price": {
                                "type": "number"
                            },
                            "tax_percentage": {
                                "type": "number"
                            },
                            "discount_percentage": {
                                "type": "number"
                            },
                            "is_optional": {
                                "type": "boolean"
                            },
                            "show_price": {
                                "type": "boolean"
                            }
                        }
                    }
                }
            }
        }
    }
}

Antworten

201 Vertrag erstellt

application/json

{
    "allOf": [
        {
            "title": "API envelope",
            "type": "object",
            "properties": {
                "success": {
                    "type": "boolean"
                },
                "message": {
                    "type": "string",
                    "nullable": true
                },
                "errors": {
                    "nullable": true
                },
                "meta": {
                    "type": "object",
                    "nullable": true,
                    "additionalProperties": true
                }
            }
        },
        {
            "type": "object",
            "properties": {
                "data": {
                    "title": "Contract",
                    "type": "object",
                    "required": [
                        "id"
                    ],
                    "properties": {
                        "id": {
                            "type": "integer"
                        },
                        "sales_id": {
                            "type": "integer",
                            "nullable": true
                        },
                        "offer_id": {
                            "type": "integer",
                            "nullable": true
                        },
                        "status": {
                            "type": "string",
                            "nullable": true
                        },
                        "number": {
                            "type": "string",
                            "nullable": true
                        },
                        "final_number": {
                            "type": "string",
                            "nullable": true
                        },
                        "date": {
                            "type": "string",
                            "nullable": true
                        },
                        "sent_at": {
                            "type": "string",
                            "nullable": true
                        },
                        "subject": {
                            "type": "string",
                            "nullable": true
                        },
                        "header_notes": {
                            "type": "string",
                            "nullable": true
                        },
                        "footer_notes": {
                            "type": "string",
                            "nullable": true
                        },
                        "invoice_type": {
                            "type": "string",
                            "nullable": true
                        },
                        "total_price": {
                            "type": "number",
                            "nullable": true
                        },
                        "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true
                        },
                        "updated_at": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true
                        },
                        "sale": {
                            "oneOf": [
                                {
                                    "title": "Sale",
                                    "type": "object",
                                    "required": [
                                        "id"
                                    ],
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "unique_order_id": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "currency": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_type": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_first_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_last_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_email": {
                                            "type": "string",
                                            "format": "email",
                                            "nullable": true
                                        },
                                        "to_company_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_address": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_city": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_zipcode": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "to_countries_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "to_contact_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "to_organization_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "from_first_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_last_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_email": {
                                            "type": "string",
                                            "format": "email",
                                            "nullable": true
                                        },
                                        "from_company_name": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_address": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_city": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_zipcode": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "from_countries_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "deals_unique_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "sale_items": {
                                            "type": "array",
                                            "items": {
                                                "title": "Sale item",
                                                "type": "object",
                                                "required": [
                                                    "id",
                                                    "is_optional",
                                                    "show_price"
                                                ],
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "product_title": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "product_description": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "quantity": {
                                                        "type": "number",
                                                        "nullable": true
                                                    },
                                                    "unit_price": {
                                                        "type": "number",
                                                        "nullable": true
                                                    },
                                                    "tax_percentage": {
                                                        "type": "number",
                                                        "nullable": true
                                                    },
                                                    "discount_percentage": {
                                                        "type": "number",
                                                        "nullable": true
                                                    },
                                                    "unit_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "unit_name": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "display_order": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "is_optional": {
                                                        "type": "boolean"
                                                    },
                                                    "show_price": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                {
                                    "type": "null"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}
401 Missing or invalid API key

application/json

{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean",
            "example": false
        },
        "message": {
            "type": "string",
            "example": "Missing API key (X-Api-Key)"
        }
    }
}
422 Validation failed

application/json

{
    "title": "API envelope",
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        },
        "message": {
            "type": "string",
            "nullable": true
        },
        "errors": {
            "nullable": true
        },
        "meta": {
            "type": "object",
            "nullable": true,
            "additionalProperties": true
        }
    }
}