This clause allows the receiver of goods to inspect them for a given time period after delivery.
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.
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:
Time Validation
Ensures the transaction timestamp is not before deliverableReceivedAt.
Inspection Deadline Calculation
Computes the inspection deadline by adding businessDays to deliverableReceivedAt.
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.
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"
}
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
}