Acceptance of Delivery

Author: Accord Project

acceptance-of-delivery@0.16.0 Clause ^0.26.0 44ffffa9a814f2b18e536908071f291aa6e78853604727504f856279a1eb4820

This clause allows the receiver of goods to inspect them for a given time period after delivery.

Download Archive Download Compiled Archive Open in Template Playground Open in VSCode Web

Acceptance of Delivery

This template allows the receiver of goods to inspect them within a specified time period after delivery.

What the Contract Does

This contract evaluates an InspectDeliverable request object for delivered goods to determine if they meet the required standards within an agreed-upon timeframe. It enforces a maximum inspection period and returns the final inspection status.

Contract Parameters

The template defines the following contract parameters:

  • shipper: The organization responsible for delivering the goods.
  • receiver: The organization receiving the goods.
  • deliverable: A description of the goods being delivered.
  • businessDays: The number of days allowed for inspection after delivery.
  • attachment: Additional information or supporting documents.

Inputs

The contract is triggered by an InspectDeliverable transaction, which includes:

  • deliverableReceivedAt (DateTime): The date and time when the goods were received.
  • inspectionPassed (Boolean): Indicates whether the goods passed inspection.

Execution Logic

When the contract receives an InspectDeliverable transaction, it performs the following:

  1. Time Validation
    Ensures the transaction timestamp is not before deliverableReceivedAt.

  2. Inspection Deadline Calculation
    Computes the inspection deadline by adding businessDays to deliverableReceivedAt.

  3. Status Evaluation

  • If the current time exceeds the deadline → OUTSIDE_INSPECTION_PERIOD
  • If within deadline and inspection passes → PASSED_TESTING
  • If within deadline and inspection fails → FAILED_TESTING

Output

The contract produces an InspectionResponse containing:

  • status:

  • PASSED_TESTING → Goods accepted

  • FAILED_TESTING → Goods rejected

  • OUTSIDE_INSPECTION_PERIOD → Inspection submitted too late

  • shipper: The delivering organization

  • receiver: The receiving organization

How It Fits in the Accord Project Architecture

  • The contract text is defined using CiceroMark
  • The data model is defined using Concerto (this file)
  • The execution logic is implemented in Ergo

Together, these components enable executable legal contracts.

Template Text

Acceptance of Delivery.

"Party A" will be deemed to have completed its delivery obligations if in "Party B"'s opinion, the "Widgets" satisfies the Acceptance Criteria, and "Party B" notifies "Party A" in writing that it is accepting the "Widgets".

Inspection and Notice.

"Party B" will have 10 Business Days to inspect and evaluate the "Widgets" on the delivery date before notifying "Party A" that it is either accepting or rejecting the "Widgets".

Acceptance Criteria.

The "Acceptance Criteria" are the specifications the "Widgets" must meet for "Party A" to comply with its requirements and obligations under this agreement, detailed in "Attachment X", attached to this agreement.

## Acceptance of Delivery.

"Party A" will be deemed to have completed its delivery obligations
if in "Party B"'s opinion, the "Widgets" satisfies the
Acceptance Criteria, and "Party B" notifies "Party A" in writing
that it is accepting the "Widgets".

## Inspection and Notice.

"Party B" will have 10 Business Days to inspect and
evaluate the "Widgets" on the delivery date before notifying
"Party A" that it is either accepting or rejecting the
"Widgets".

## Acceptance Criteria.

The "Acceptance Criteria" are the specifications the "Widgets"
must meet for "Party A" to comply with its requirements and
obligations under this agreement, detailed in "Attachment X", attached
to this agreement.
## Acceptance of Delivery.

{{shipper}} will be deemed to have completed its delivery obligations
if in {{receiver}}'s opinion, the {{deliverable}} satisfies the
Acceptance Criteria, and {{receiver}} notifies {{shipper}} in writing
that it is accepting the {{deliverable}}.

## Inspection and Notice.

{{receiver}} will have {{businessDays}} Business Days to inspect and
evaluate the {{deliverable}} on the delivery date before notifying
{{shipper}} that it is either accepting or rejecting the
{{deliverable}}.

## Acceptance Criteria.

The "Acceptance Criteria" are the specifications the {{deliverable}}
must meet for {{shipper}} to comply with its requirements and
obligations under this agreement, detailed in {{attachment}}, attached
to this agreement.
{
  "$class": "org.accordproject.acceptanceofdelivery@0.1.0.TemplateModel",
  "shipper": "resource:org.accordproject.organization.Organization#Party%20A",
  "receiver": "resource:org.accordproject.organization.Organization#Party%20B",
  "deliverable": "Widgets",
  "businessDays": 10,
  "attachment": "Attachment X",
  "clauseId": "c828dbee-4100-4172-adbd-a4f11c9a4847",
  "$identifier": "c828dbee-4100-4172-adbd-a4f11c9a4847"
}

Template Model

namespace org.accordproject.acceptanceofdelivery@0.1.0

import org.accordproject.contract@0.2.0.Clause from https://models.accordproject.org/accordproject/contract@0.2.0.cto
import org.accordproject.runtime@0.2.0.{Request,Response} from https://models.accordproject.org/accordproject/runtime@0.2.0.cto
import org.accordproject.time@0.3.0.{Duration,TemporalUnit} from https://models.accordproject.org/time@0.3.0.cto

/**
 * Sent by the receiver of the goods, indicates when the goods were
 * received, as well as if they passed inspection
 */
transaction InspectDeliverable extends Request {
  o DateTime deliverableReceivedAt
  o Boolean inspectionPassed
}

/**
 * The inspection status
 */
enum InspectionStatus {
  o PASSED_TESTING
  o FAILED_TESTING
  o OUTSIDE_INSPECTION_PERIOD
}

/**
 * The clause response
 * Note: shipper and receiver are returned as String (not Organization relationship)
 */
transaction InspectionResponse extends Response {
  o InspectionStatus status
  o String shipper
  o String receiver
}

/**
 * The template model
 * Note: shipper and receiver are String fields (Party relationships not supported in v0.25)
 */
@template
asset TemplateModel extends Clause {
  /**
   * the shipper of the goods
   */
  o String shipper

  /**
   * the receiver of the goods
   */
  o String receiver

  /**
   * what are we delivering
   */
  o String deliverable

  /**
   * how long does the receiver have to inspect the goods (in business days)
   */
  o Long businessDays

  /**
   * additional information
   */
  o String attachment
}

Model Dependencies

Template Logic

Find the full logic for this template on on GitHub.

State Types

Type Sample JSON
org.accordproject.runtime@0.2.0.State
{
    "$class": "org.accordproject.runtime@0.2.0.State",
    "$identifier": "7765b990-50a4-11f1-a498-6b6dff021a96"
}

Request Types

Type Sample JSON
org.accordproject.acceptanceofdelivery@0.1.0.InspectDeliverable
{
    "$class": "org.accordproject.acceptanceofdelivery@0.1.0.InspectDeliverable",
    "deliverableReceivedAt": "2026-05-15T21:24:33.318Z",
    "inspectionPassed": true,
    "$timestamp": "2026-05-15T21:24:33.318Z"
}
org.accordproject.runtime@0.2.0.Request
{
    "$class": "org.accordproject.runtime@0.2.0.Request",
    "$timestamp": "2026-05-15T21:24:33.317Z"
}

Response Types

Type Sample JSON
org.accordproject.acceptanceofdelivery@0.1.0.InspectionResponse
{
    "$class": "org.accordproject.acceptanceofdelivery@0.1.0.InspectionResponse",
    "status": "PASSED_TESTING",
    "shipper": "Ullamco mollit.",
    "receiver": "Enim nostrud qui quis.",
    "$timestamp": "2026-05-15T21:24:33.319Z"
}
org.accordproject.runtime@0.2.0.Response
{
    "$class": "org.accordproject.runtime@0.2.0.Response",
    "$timestamp": "2026-05-15T21:24:33.319Z"
}

Events Types

Type Sample JSON

Technical Integration

Please refer to the Accord Project documentation for how to use a template or integrate it within your application.

View the Latest code for this template on GitHub.