# Contract Management

This section will guide you through the core principles on how business relationships, we call them Contracts, are structured, how they can be established and how they're used.

# Object Graph

             ┌────────────────────┐
        ┌───▶│      Contract      │◀───┐
        │    └────────────────────┘    │
        │               ▲              │
        │               │              │
        │    ┌────────────────────┐    │
        │    │  Contract Request  │◀───┼──────────┐
        │    └────────────────────┘    │          │
        │               ▲              │          │
        │  ┌────────────┴───────────┐  │          │
        │  │                        │  │          │
┌───────┴─────────────┐  ┌─────────────┴───────┐  │
│ Zaikio/Organization │  │ Zaikio/Organization │  │
│     (Supplier)      │  │     (Consumer)      │  │
└─────────────────────┘  └─────────────────────┘  │
                                    ▲             │
                                    │             │
                         ┌─────────────────────┐  │
                         │    Zaikio/People    │  │
                         │ (Requesting Person) │──┘
                         └─────────────────────┘

# General Concept

Within Procurement Buyers and Sellers need to establish a business relationship in order to being able to do business with each other. In order to do so they need to establish a Contract. Without a confirmed Contract consumers will not be able to see and browse a supplier's catalog or to place an order.

In order to establish one, a Consumer needs to request a Contract via a ContractRequest which then needs to be accepted by the Supplier.

# Suppliers - How to handle contract requests

Once a consumer has requested a contract the Procurement application will fire a procurement_supplier.new_contract_request event and you can act upon the respective Contract Request, either via the User Interface or via the Contract Requests API (opens new window). Please be aware that we won't send this event in case you're using the contract request auto acceptance feature.

# Accepting or declining contract requests

When you cannot accept a request right away (for example because multiple departments are involved) then we suggest to update the request's timestamps when the request was vetted, a required mapping was done. That allows the consumers to understand the process of their requests.

In order to accept or decline contract request you need to make a PATCH request to the Contract Requests endpoint (opens new window).