---
title: "Accept Offer"
url: "https://stage-api-docs.centraldispatch.com/apis/stage-offer-api-1-0-0/versions/43981ece-e7be-4c4b-a45e-0f4da174a60c/operations/postAcceptOffer"
---

> Full API specification: https://stage-api-docs.centraldispatch.com/apis/stage-offer-api-1-0-0/versions/43981ece-e7be-4c4b-a45e-0f4da174a60c.md

# Accept Offer

`POST` `/negotiations/id/{negotiationId}/acceptOffer`

Operation ID: `postAcceptOffer`

Accept an offer. #### 📝 Important Notes Acceptance of an offer can only be done by the party who was not the last one to transact on the offer.

## Path parameters

- `negotiationId` (string, uuid, required) - The ID of the offer negotiation record.

## Header parameters

- `If-Match` (integer, required) - This is a required field to ensure the update is being completed on an item that has not changed since it was last read. The value of this field will be the value of the `ETag` header that was received on the preceding get call.
- `Content-Type` (string, required) - The major version of the API to make a request against. This is a custom MIME type that contains `vnd.coxauto.v[#]+`. For example, to request a resource from version 1.x.x of an API, the Content-Type header should be set to `application/vnd.coxauto.v1+json`.

## Request body

Content types: `application/json`

## Responses

- `202` - Accepted. Successful request.
- `400` - Bad Request. Check the request payload. **Scenarios:** - Invalid request body structure. - Missing or empty `customerId` (cannot be Guid.Empty). - Missing or empty `negotiationId` (cannot be Guid.Empty). - Missing or empty `recordVersion` (If-Match header is 0 or not provided). - Missing or empty `pickupDate`. - Missing or empty `deliveryDate`. - `deliveryDate` must not be before `pickupDate`. - Negotiation status not AWAITING_CARRIER or AWAITING_SHIPPER (attempting to accept a negotiation that's already ACCEPTED, DECLINED, or ARCHIVED). - Listing status not ACTIVE (attempting to accept on a listing that's PENDING, EXPIRED, or CANCELLED). - No transactions exist for this negotiation. - `pickupDate` is null when SLA rules require it. - `deliveryDate` is null when SLA rules require it. - `pickupDate` falls outside allowed SLA date range. - `deliveryDate` falls outside allowed SLA date range. - Missing or empty 'If-Match' header.
- `401` - Unauthorized. Authentication failed or missing.
- `403` - Forbidden. The attempted action is not permitted. **Scenarios:** - The customerId doesn't match the expected party based on negotiation status.
- `404` - Not Found.
- `409` - Conflict. Update not allowed based on the current resource state. **Scenarios:** - The customer accepting was the last person to make an offer.
- `412` - Precondition Failed **Scenarios:** - `If-Match` header doesn't match current record version.
- `429` - Too Many Requests. Rate limit exceeded.
- `500` - Error.
- `503` - Service Unavailable. Temporary service interruption.

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Offer API
  version: 1.0.0
servers:
  - url: https://prod-offers-api.awscal2.manheim.com
    description: Production server
paths:
  /negotiations/id/{negotiationId}/acceptOffer:
    post:
      tags:
        - Negotiations
      summary: Accept Offer
      description: >
        
        Accept an offer.


        #### 📝 Important Notes

        Acceptance of an offer can only be done by the party who was not the
        last one to transact on the offer.
      operationId: postAcceptOffer
      parameters:
        - name: negotiationId
          in: path
          description: The ID of the offer negotiation record.
          required: true
          schema:
            type: string
            format: uuid
          example: 7e0a1107-bf75-4e09-a8db-9c3b73b4674b
        - name: If-Match
          in: header
          description: This is a required field to ensure the update is being completed on
            an item that has not changed since it was last read. The value of
            this field will be the value of the `ETag` header that was received
            on the preceding get call.
          required: true
          schema:
            type: integer
          example: 8675309
        - name: Content-Type
          in: header
          description: The major version of the API to make a request against. This is a
            custom MIME type that contains `vnd.coxauto.v[#]+`. For example, to
            request a resource from version 1.x.x of an API, the Content-Type
            header should be set to `application/vnd.coxauto.v1+json`.
          required: true
          schema:
            type: string
          example: application/vnd.coxauto.v1+json
      requestBody:
        description: "`AcceptOfferRequest`"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AcceptOfferRequest"
            examples:
              ex.:
                value:
                  pickupDate: 2025-09-27T00:00:00.000Z
                  deliveryDate: 2025-10-04T00:00:00.000Z
      responses:
        "202":
          description: Accepted. Successful request.
          headers:
            Etag:
              description: Contains the current version of the resource and should be used for
                the `If-Match` header on updates.
              schema:
                type: string
              example: "8675300"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NegotiationResponse"
        "400":
          description: >-
            Bad Request. Check the request payload.


            **Scenarios:**

             - Invalid request body structure.
             - Missing or empty `customerId` (cannot be Guid.Empty).
             - Missing or empty `negotiationId` (cannot be Guid.Empty).
             - Missing or empty `recordVersion` (If-Match header is 0 or not provided).
             - Missing or empty `pickupDate`.
             - Missing or empty `deliveryDate`.
             - `deliveryDate` must not be before `pickupDate`.
             - Negotiation status not AWAITING_CARRIER or AWAITING_SHIPPER (attempting to accept a negotiation that's already ACCEPTED, DECLINED, or ARCHIVED).
             - Listing status not ACTIVE (attempting to accept on a listing that's PENDING, EXPIRED, or CANCELLED).
             - No transactions exist for this negotiation.
             - `pickupDate` is null when SLA rules require it.
             - `deliveryDate` is null when SLA rules require it.
             - `pickupDate` falls outside allowed SLA date range.
             - `deliveryDate` falls outside allowed SLA date range.
             - Missing or empty 'If-Match' header.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "401":
          description: Unauthorized. Authentication failed or missing.
        "403":
          description: >-
            Forbidden. The attempted action is not permitted.


            **Scenarios:**

             - The customerId doesn't match the expected party based on negotiation status.
        "404":
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "409":
          description: |-
            Conflict. Update not allowed based on the current resource state.

            **Scenarios:**

             - The customer accepting was the last person to make an offer.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "412":
          description: |-
            Precondition Failed

            **Scenarios:**

             - `If-Match` header doesn't match current record version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "429":
          description: Too Many Requests. Rate limit exceeded.
        "500":
          description: Error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "503":
          description: Service Unavailable. Temporary service interruption.
      security:
        - Bearer: []
security:
  - Bearer: []
components:
  schemas:
    AcceptOfferRequest:
      required:
        - pickupDate
        - deliveryDate
      type: object
      properties:
        pickupDate:
          type: string
          description: The accepted date of the pick up, in UTC/ISO 8601 format.
          format: date-time
          example: 2025-09-27T00:00:00.000Z
        deliveryDate:
          type: string
          description: The accepted date of the delivery, in UTC/ISO 8601 format.
          format: date-time
          example: 2025-10-04T00:00:00.000Z
      description: Details of an offer accept request.
    NegotiationResponse:
      type: object
      properties:
        href:
          type: string
          description: The URL used to query the current collection of the resource.
          example: https://prod-offers-api.awscal2.manheim.com/negotiations/7e0a1107-bf75-4e09-a8db-9c3b73b4674b
        createdOn:
          type: string
          description: The creation date and time of the item, in UTC/ISO 8601 format.
          format: date-time
          example: 2024-10-31T00:00:00Z
        negotiationId:
          type: string
          description: The ID of the offer negotiation record.
          format: uuid
          example: 7e0a1107-bf75-4e09-a8db-9c3b73b4674b
        shipperId:
          type: string
          description: The ID of the Central Dispatch customer who is the shipper.
          format: uuid
          example: afd2fb59-b89d-4572-8f9a-e57f82a61c68
        carrierId:
          type: string
          description: The ID of the Central Dispatch customer chosen by the shipper to
            move cars in the dispatch.
          format: uuid
          example: 0ca91a43-fbee-4c05-9a6c-aa5c63888f5c
        listingId:
          type: string
          description: The ID of the listing.
          example: "42220470"
        expirationUtc:
          type: string
          description: The expiration date of the listing, in UTC/ISO 8601 format.
          format: date-time
          example: 2025-09-30T00:00:00.000Z
        transactions:
          type: array
          items:
            $ref: "#/components/schemas/NegotiationTransactionResponse"
          description: A collection of negotiation transactions.
      description: Details of a negotiation including its transactions.
    Errors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: "#/components/schemas/Error"
          description: A collection of errors.
          nullable: true
      description: An error occurred, and the request could not be completed.
    NegotiationTransactionResponse:
      type: object
      properties:
        offerTransactionId:
          type: string
          description: The ID of the offer negotiation record.
          format: uuid
          example: 3fde6068-5fa2-4ae4-af16-06d65fc87dc9
        amount:
          type: number
          description: The balance amount that will be due after the COD/COP payment is
            applied.
          format: double
          example: 300
        deliveryDate:
          type: string
          description: The desired delivery date of the listing, in UTC/ISO 8601 format.
          format: date-time
          example: 2025-10-04T00:00:00.000Z
        pickupDate:
          type: string
          description: The date the pick up is scheduled, in UTC/ISO 8601 format.
          format: date-time
          example: 2025-09-27T00:00:00.000Z
        transactionType:
          $ref: "#/components/schemas/TransactionType"
        userId:
          type: string
          description: The Central Dispatch user ID.
          format: uuid
          example: 157a16f0-503d-4256-ba60-a4876e8eb9bb
        createdOn:
          type: string
          description: The creation date and time of the item, in UTC/ISO 8601 format.
          format: date-time
          example: 2024-10-31T00:00:00Z
        customerId:
          type: string
          description: The Central Dispatch customer ID of the customer.
          format: uuid
          example: d5c62b14-cbd1-11ee-9a0e-0242ac110002
      description: Details of a transaction within a negotiation.
    Error:
      type: object
      properties:
        code:
          type: string
          description: The code used for the issue.
          nullable: true
          example: resource.issue_type
        message:
          type: string
          description: A detailed message.
          nullable: true
          example: The issue happened because something is wrong.
        property:
          type: string
          description: The property to which the issue is associated.
          nullable: true
          example: person
        properties:
          type: object
          additionalProperties:
            type: string
          description: Additional properties related to the issue.
          nullable: true
          example:
            firstName: D0nn@
            lastName: Sm!th
      description: Details of an error or issue.
    TransactionType:
      enum:
        - ORIGINAL_ASK
        - INITIAL_OFFER
        - MODIFICATION
        - REJECTION
        - ACCEPTANCE
        - REACTIVATION
        - ARCHIVAL
        - SYSTEM_REJECTION
        - EXPIRATION
        - AUTO_ACCEPTANCE
        - REVOKED
      type: string
      description: Different types of transactions that can occur within a
        negotiation. This list is not exhaustive and additional values may be
        added at any time.
      example: INITIAL_OFFER
  securitySchemes:
    Bearer:
      type: http
      scheme: Bearer
```
