# 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).

# 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).