Skip to main content

ProposalDetailDto

idstringrequired

Unique identifier for the proposal (UUID format)

Example: 123e4567-e89b-12d3-a456-426614174000
urlstringrequired

Public read-only URL to the proposal

Example: https://offri.app/o/123e4567-e89b-12d3-a456-426614174000
editorUrlstringrequired

Url to the proposal editor only accessible when logged in

Example: https://offri.app/proposal/123e4567-e89b-12d3-a456-426614174000
titlestring

Title of the proposal

Example: Website Development Project
expirationstring<date-time>

Expiration date of the proposal

user object

User who created the proposal

idnumberrequired

Unique identifier for the user

firstNamestringrequired

First name of the user

Example: John
lastNamestringrequired

Last name of the user

Example: Doe
emailstringrequired

Email address of the user

Example: john.doe@company.com
avatarstring

URL to the user's avatar image

Example: https://example.com/avatars/john-doe.jpg
languagestringrequired

User's preferred language

Possible values: [nl, en, de]

client object

Client the proposal is for

idnumberrequired

Unique identifier for the client

namestringrequired

Name of the client/company

Possible values: >= 2 characters

Example: Acme Corporation
emailstring<email>

Email address of the client

Example: contact@acme.com
citystring

City where the client is located

Example: New York
phonestring

Phone number of the client

Example: +1-555-0123
addressstring

Street address of the client

Example: 123 Business Street
postalCodestring

Postal code of the client

Example: 10001
customerIdstring

Custom customer ID assigned by the workspace

Example: CUST-001
countrystring

Country where the client is located

Example: United States
languagestring

Primary language of the client

Example: en
privatebooleanrequired

Whether the client is private or business

Example: false
contactPersons object[]

Contact persons associated with the client, not available for private clients

  • Array [
  • idnumberrequired

    Unique identifier for the contact person

    namestringrequired

    Name of the contact person

    Example: Jane Smith
    emailstringrequired

    Email address of the contact person

    Example: jane.smith@acme.com
  • ]
  • contactPerson object

    Primary contact person at the client organization

    idnumberrequired

    Unique identifier for the contact person

    namestringrequired

    Name of the contact person

    Example: Jane Smith
    emailstringrequired

    Email address of the contact person

    Example: jane.smith@acme.com
    statusstringrequired

    Current status of the proposal

    Possible values: [won, open, expired, lost, concept, review]

    languagestringrequired

    Language of the proposal content

    Possible values: [nl, en, de]

    clientSignedAtstring<date-time>

    Date when the client signed the proposal

    reviewers object[]

    Array of reviewers assigned to review this proposal

  • Array [
  • idnumberrequired

    Unique identifier for the reviewer

    firstNamestringrequired

    First name of the reviewer

    Example: Alice
    lastNamestringrequired

    Last name of the reviewer

    Example: Johnson
    emailstringrequired

    Email address of the reviewer

    Example: alice.johnson@company.com
  • ]
  • sendAtstring<date-time>

    Date when the proposal was first sent

    lastSendAtstring<date-time>

    Date when the proposal was last sent/resent

    createdAtstring<date-time>required

    Date when the proposal was created

    updatedAtstring<date-time>required

    Date when the proposal was last updated

    deletedAtstring<date-time>

    Date when the proposal was hidden

    latestChangestring<date-time>required

    Date when the proposal content was last changed

    contractTypestringrequired

    Type of document

    Possible values: [proposal, pricelist, contract]

    isGeneratedbooleanrequired

    Whether this proposal was generated by AI

    totalOncenumberrequired

    Total amount for one-time charges

    totalYearlynumberrequired

    Total amount for yearly recurring charges

    signatureUrlstring

    URL to the signature image

    Example: https://example.com/signatures/signature.png
    signedBystring

    Name of the person who signed

    Example: John Doe
    signedPlacestring

    Place where the proposal was signed

    Example: New York
    signedAtstring<date-time>

    Date when the proposal was signed

    conditions object

    Terms and conditions agreed to when the proposal was accepted

    urlstringrequired

    URL to the conditions document

    Example: https://example.com/conditions/document.pdf
    namestringrequired

    Display name of the conditions document

    Example: Terms and Conditions v2.0
    fileNamestringrequired

    Original filename of the conditions document

    Example: terms-conditions-v2.pdf
    languagestringrequired

    Language of the conditions document

    Possible values: [nl, en, de]

    isMarkedWonboolean

    Whether the proposal has been manually marked as won

    clientSignatureRequiredbooleanrequired

    Whether client signature is required

    currencystringrequired

    Currency code for the proposal

    Example: EUR
    sendMethodstringrequired

    Method used to send the proposal

    Possible values: [email, link]

    products object[]required

    Products in the proposal

  • Array [
  • namestringrequired

    Name of the product

    Example: 🎨 Website Design & Ontwikkeling
    amountnumberrequired

    Quantity/amount of the product

    Example: 1
    flexibilitystringrequired

    Flexibility setting for the product

    Possible values: [fixed, provisional, estimate]

    recurringstringrequired

    Recurring billing frequency

    Possible values: [once, daily, weekly, monthly, yearly]

    optionalbooleanrequired

    Whether the product is optional

    checkedboolean

    Whether the product is checked/selected (for optional products)

    checkedBystring

    Who checked/selected the product

    Possible values: [client, provider]

    amountAdjustablebooleanrequired

    Whether the amount is adjustable by the client

    minimumAmountnumber

    Minimum allowed amount for the client to set

    Example: 0
    maximumAmountnumber

    Maximum allowed amount for the client to set

    Example: 1000
    wholeNumbersboolean

    Whether only whole numbers are allowed for amounts set by the client

    currencies object[]required

    Array of currency configurations for this product

  • Array [
  • currencystringrequired

    Currency code

    Possible values: [USD, AUD, GBP, CAD, CNY, EUR, INR, JPY, AED, CHF, BTC, ETH]

    pricenumberrequired

    Price in the specified currency

    Example: 2495
    discountnumberrequired

    Discount amount

    discountUnitstringrequired

    Unit for the discount

    Possible values: [currency, percentage]

    vat object

    VAT configuration for this currency

    namestringrequired

    Name/type of the VAT configuration

    Possible values: [exempt, incl_low, incl_high, excl_low, excl_high]

    percentagenumberrequired

    VAT percentage

    Example: 21
    countrystringrequired

    Country code for the VAT

    Possible values: [nl, be, de]

    includingbooleanrequired

    Whether VAT is included in the price

  • ]
  • unit object

    Unit configuration for this product

    idnumberrequired

    Unique identifier for the unit

    unitLanguages object[]required

    Translations of the unit in different languages

  • Array [
  • languagestringrequired

    Language code

    Possible values: [nl, en, de]

    singularstringrequired

    Singular form of the unit in this language

    Example: Stuk
    pluralstringrequired

    Plural form of the unit in this language

    Example: Stuks
  • ]
  • ]
  • ProposalDetailDto
    {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "url": "https://offri.app/o/123e4567-e89b-12d3-a456-426614174000",
    "editorUrl": "https://offri.app/proposal/123e4567-e89b-12d3-a456-426614174000",
    "title": "Website Development Project",
    "expiration": "2024-07-29T15:51:28.071Z",
    "user": {
    "id": 0,
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@company.com",
    "avatar": "https://example.com/avatars/john-doe.jpg",
    "language": "nl"
    },
    "client": {
    "id": 0,
    "name": "Acme Corporation",
    "email": "contact@acme.com",
    "city": "New York",
    "phone": "+1-555-0123",
    "address": "123 Business Street",
    "postalCode": "10001",
    "customerId": "CUST-001",
    "country": "United States",
    "language": "en",
    "private": false,
    "contactPersons": [
    {
    "id": 0,
    "name": "Jane Smith",
    "email": "jane.smith@acme.com"
    }
    ]
    },
    "contactPerson": {
    "id": 0,
    "name": "Jane Smith",
    "email": "jane.smith@acme.com"
    },
    "status": "won",
    "language": "nl",
    "clientSignedAt": "2024-07-29T15:51:28.071Z",
    "reviewers": [
    {
    "id": 0,
    "firstName": "Alice",
    "lastName": "Johnson",
    "email": "alice.johnson@company.com"
    }
    ],
    "sendAt": "2024-07-29T15:51:28.071Z",
    "lastSendAt": "2024-07-29T15:51:28.071Z",
    "createdAt": "2024-07-29T15:51:28.071Z",
    "updatedAt": "2024-07-29T15:51:28.071Z",
    "deletedAt": "2024-07-29T15:51:28.071Z",
    "latestChange": "2024-07-29T15:51:28.071Z",
    "contractType": "proposal",
    "isGenerated": true,
    "totalOnce": 0,
    "totalYearly": 0,
    "signatureUrl": "https://example.com/signatures/signature.png",
    "signedBy": "John Doe",
    "signedPlace": "New York",
    "signedAt": "2024-07-29T15:51:28.071Z",
    "conditions": {
    "url": "https://example.com/conditions/document.pdf",
    "name": "Terms and Conditions v2.0",
    "fileName": "terms-conditions-v2.pdf",
    "language": "nl"
    },
    "isMarkedWon": true,
    "clientSignatureRequired": true,
    "currency": "EUR",
    "sendMethod": "email",
    "products": [
    {
    "name": "🎨 Website Design & Ontwikkeling",
    "amount": 1,
    "flexibility": "fixed",
    "recurring": "once",
    "optional": true,
    "checked": true,
    "checkedBy": "client",
    "amountAdjustable": true,
    "minimumAmount": 0,
    "maximumAmount": 1000,
    "wholeNumbers": true,
    "currencies": [
    {
    "currency": "USD",
    "price": 2495,
    "discount": 0,
    "discountUnit": "currency",
    "vat": {
    "name": "exempt",
    "percentage": 21,
    "country": "nl",
    "including": true
    }
    }
    ],
    "unit": {
    "id": 0,
    "unitLanguages": [
    {
    "language": "nl",
    "singular": "Stuk",
    "plural": "Stuks"
    }
    ]
    }
    }
    ]
    }