# PUDs

{% hint style="info" %}
**Create a test account to get started.**

[Test Account Setup](/api/v3/test-account-setup.md)
{% endhint %}

## Create a PUD

To create a PUD you must specify the interval you wish to use. The opposite interval will then be calculated based on the estimated driving and handling time.

{% tabs %}
{% tab title="Pickup interval" %}

<figure><img src="/files/o2O6x64ObMmjMiV6ENsU" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Delivery interval" %}

<figure><img src="/files/g6FZ1ju6wNUV9iW4jVNz" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Create Pud

> Create a Pud

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds":{"post":{"description":"Create a Pud","operationId":"ApiController_createPud","parameters":[{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePudDto"}}}},"responses":{"201":{"description":"Pud created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudResponse"}}}},"400":{"description":"VALIDATION_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationExceptionDto"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"403":{"description":"BOOKING_BAN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingBanExceptionDto"}}}},"409":{"description":"BOOKING_BLOCKED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingBlockedExceptionDto"}}}},"422":{"description":"Unprocessable entity, multiple error types possible. See examples.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AddressNotFoundExceptionDto"},{"$ref":"#/components/schemas/PartialAddressExceptionDto"}]}}}}},"summary":"Create Pud","tags":["[API] Pud"]}}},"components":{"schemas":{"CreatePudDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Specify ID of company to place booking"},"pickup":{"$ref":"#/components/schemas/LocationRequestDto"},"delivery":{"$ref":"#/components/schemas/LocationRequestDto"},"interval":{"$ref":"#/components/schemas/IntervalRequestDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"addons":{"description":"Addons to include. See your available addons by using the /me endpoint","type":"array","items":{"type":"array"}},"comment":{"type":"string","description":"Comment"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["pickup","delivery","interval","vehicle","customer"]},"LocationRequestDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"}},"required":["address","postalCode"]},"IntervalRequestDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"},"type":{"type":"string","description":"Type of interval","enum":["pickup","delivery","full"]}},"required":["start","end","type"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"ValidationExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"BookingBanExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"BookingBlockedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"AddressNotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"PartialAddressExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

## Create immediate return Pud

> Create a Pud with immediate return. The interval type is for the outbound leg.

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/immediate-return":{"post":{"description":"Create a Pud with immediate return. The interval type is for the outbound leg.","operationId":"ApiController_createImmediateReturnPud","parameters":[{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImmediateReturnDto"}}}},"responses":{"201":{"description":"Immediate return Pud created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImmediateReturnResponse"}}}},"400":{"description":"VALIDATION_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationExceptionDto"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"403":{"description":"BOOKING_BAN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingBanExceptionDto"}}}},"409":{"description":"BOOKING_BLOCKED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingBlockedExceptionDto"}}}},"422":{"description":"Unprocessable entity, multiple error types possible. See examples.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AddressNotFoundExceptionDto"},{"$ref":"#/components/schemas/PartialAddressExceptionDto"}]}}}}},"summary":"Create immediate return Pud","tags":["[API] Pud"]}}},"components":{"schemas":{"CreateImmediateReturnDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Specify ID of company to place booking"},"pickup":{"$ref":"#/components/schemas/LocationRequestDto"},"delivery":{"$ref":"#/components/schemas/LocationRequestDto"},"interval":{"$ref":"#/components/schemas/IntervalRequestDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"addons":{"description":"Addons to include. See your available addons by using the /me endpoint","type":"array","items":{"type":"array"}},"comment":{"type":"string","description":"Comment"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"},"returnDelivery":{"$ref":"#/components/schemas/LocationRequestDto"},"returnVehicle":{"$ref":"#/components/schemas/VehicleDto"}},"required":["pickup","delivery","interval","vehicle","customer","returnDelivery","returnVehicle"]},"LocationRequestDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"}},"required":["address","postalCode"]},"IntervalRequestDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"},"type":{"type":"string","description":"Type of interval","enum":["pickup","delivery","full"]}},"required":["start","end","type"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"ImmediateReturnResponse":{"type":"object","properties":{"outboundPud":{"$ref":"#/components/schemas/PudResponse"},"returnPud":{"$ref":"#/components/schemas/PudResponse"}},"required":["outboundPud","returnPud"]},"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"ValidationExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"BookingBanExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"BookingBlockedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"AddressNotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"PartialAddressExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

{% hint style="info" %}
Immediate return bookings are eligible for a 25% discount:

:white\_check\_mark:    A-B-A bookings&#x20;

:white\_check\_mark:    A-B-C bookings (within standard delivery area)

:x:    A-B-C bookings (one or more locations outside standard delivery area)
{% endhint %}

{% hint style="info" %}
For an immediate return PUD, the interval type specified is for the first leg of the trip.
{% endhint %}

***

## Cancel a PUD

You can cancel a PUD as long as it isn't in progress. However, you will only receive a refund if the cancellation happens more than 12 hours before the pickup time. Cancellations after this point are considered missed trips.

## Cancel Pud

> Cancel a Pud by id. If Pud is part of an immediate return Pud, both legs will be cancelled.

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/{id}":{"delete":{"description":"Cancel a Pud by id. If Pud is part of an immediate return Pud, both legs will be cancelled.","operationId":"ApiController_cancelPud","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pud successfully cancelled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudResponse"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"404":{"description":"NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundExceptionDto"}}}},"409":{"description":"CANNOT_CANCEL_PUD","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CannotCancelPudExceptionDto"}}}}},"summary":"Cancel Pud","tags":["[API] Pud"]}}},"components":{"schemas":{"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"NotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"CannotCancelPudExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

***

## Update a PUD

You can update certain information about a PUD, like contact and vehicle information.

## Update Pud

> Update a Pud by id

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/{id}":{"patch":{"description":"Update a Pud by id","operationId":"ApiController_updatePud","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePudDto"}}}},"responses":{"200":{"description":"Pud updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudResponse"}}}},"400":{"description":"VALIDATION_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationExceptionDto"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"404":{"description":"NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundExceptionDto"}}}}},"summary":"Update Pud","tags":["[API] Pud"]}}},"components":{"schemas":{"UpdatePudDto":{"type":"object","properties":{"customer":{"$ref":"#/components/schemas/UpdateCustomerDto"},"pickup":{"$ref":"#/components/schemas/UpdateLocationDto"},"delivery":{"$ref":"#/components/schemas/UpdateLocationDto"},"vehicle":{"$ref":"#/components/schemas/UpdateVehicleDto"},"comment":{"type":"string","description":"Comment"},"referenceNumber":{"type":"string","description":"Reference number"},"hyreBookingId":{"type":"string","description":"Hyre booking id"}}},"UpdateCustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}}},"UpdateLocationDto":{"type":"object","properties":{"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"}}},"UpdateVehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"}}},"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"ValidationExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"NotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

***

## Get PUD

You can retrieve&#x20;

## Get Pud

> Get Pud by id

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/{id}":{"get":{"description":"Get Pud by id","operationId":"ApiController_getPud","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pud found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudResponse"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"404":{"description":"NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundExceptionDto"}}}}},"summary":"Get Pud","tags":["[API] Pud"]}}},"components":{"schemas":{"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"NotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

## Get PUD list

> Get PUD list for a company

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/list":{"get":{"description":"Get PUD list for a company","operationId":"ApiController_getPudList","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to return","schema":{"default":1,"type":"number"}},{"name":"pageSize","required":false,"in":"query","description":"The number of items to return per page","schema":{"default":10,"type":"number"}},{"name":"pickupDateFrom","required":false,"in":"query","description":"The date to filter by pickup date from","schema":{"format":"date-time","type":"string"}},{"name":"pickupDateTo","required":false,"in":"query","description":"The date to filter by pickup date to","schema":{"format":"date-time","type":"string"}},{"name":"search","required":false,"in":"query","description":"The search query to filter by","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"The status to filter by","schema":{"type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"The field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortDirection","required":false,"in":"query","description":"The direction to sort by","schema":{"default":"desc","type":"string"}},{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pud list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudListResponse"}}}},"400":{"description":"VALIDATION_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationExceptionDto"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}}},"summary":"Get PUD list","tags":["[API] Pud"]}}},"components":{"schemas":{"PudListResponse":{"type":"object","properties":{"metadata":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/PudListMetadata"}]},"data":{"description":"List of PUDs","type":"array","items":{"type":"array"}}},"required":["metadata","data"]},"PudListMetadata":{"type":"object","properties":{"total":{"type":"number","description":"Total number of PUDs matching the query"},"search":{"type":"string","description":"Search query"},"status":{"type":"string","description":"Status"},"pickupDateFrom":{"format":"date-time","type":"string","description":"Pickup date from"},"pickupDateTo":{"format":"date-time","type":"string","description":"Pickup date to"},"page":{"type":"number","description":"Current page number"},"pageSize":{"type":"number","description":"Number of items per page"},"sortBy":{"type":"string","description":"Sort by field"},"sortDirection":{"type":"string","description":"Sort direction"}},"required":["total","search","status","pickupDateFrom","pickupDateTo","page","pageSize","sortBy","sortDirection"]},"ValidationExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

## Get Puds

> Get Puds for a company

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds":{"get":{"deprecated":true,"description":"Get Puds for a company","operationId":"ApiController_getPuds","parameters":[{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Puds found","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PudResponse"}}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}}},"summary":"Get Puds","tags":["[API] Pud"]}}},"components":{"schemas":{"PudResponse":{"type":"object","properties":{"id":{"type":"string","description":"id"},"pickup":{"$ref":"#/components/schemas/LocationResponseDto"},"delivery":{"$ref":"#/components/schemas/LocationResponseDto"},"vehicle":{"$ref":"#/components/schemas/VehicleDto"},"driver":{"$ref":"#/components/schemas/DriverDto"},"price":{"$ref":"#/components/schemas/PriceDto"},"customer":{"$ref":"#/components/schemas/CustomerDto"},"tripDetails":{"$ref":"#/components/schemas/TripDetailsDto"},"status":{"type":"string","description":"Status of the trip","enum":["new","delegated","pre_trip_inspection","in_progress","post_trip_inspection","missed_trip","completed","cancelled"]},"comment":{"type":"string","description":"Comment"},"pickupCode":{"type":"string","description":"Pickup code"},"createdAt":{"format":"date-time","type":"string","description":"Created at"},"updatedAt":{"format":"date-time","type":"string","description":"Updated at"},"adminComment":{"type":"string","description":"Admin comment"},"companyId":{"type":"string","description":"The company which the pud belongs to"},"addons":{"description":"Addons for this trip","type":"array","items":{"type":"string"}},"missedTripReason":{"type":"string","description":"Missed trip reason"},"hyreBookingId":{"type":"string","description":"Hyre booking id"},"referenceNumber":{"type":"string","description":"Reference number"}},"required":["id","pickup","delivery","vehicle","driver","price","customer","tripDetails","status","comment","pickupCode","createdAt","updatedAt","adminComment","companyId","addons"]},"LocationResponseDto":{"type":"object","properties":{"address":{"type":"string","description":"Address"},"postalCode":{"type":"string","description":"Postal code"},"comment":{"type":"string","description":"Comment for driver"},"contactName":{"type":"string","description":"Contact name"},"contactPhone":{"type":"string","description":"Contact phone"},"notifyViaSMS":{"type":"boolean","description":"Enable SMS notifications"},"interval":{"$ref":"#/components/schemas/IntervalResponseDto"}},"required":["address","postalCode","interval"]},"IntervalResponseDto":{"type":"object","properties":{"start":{"type":"string","description":"Start date and time","format":"date-time"},"end":{"type":"string","description":"End date and time","format":"date-time"}},"required":["start","end"]},"VehicleDto":{"type":"object","properties":{"model":{"type":"string","description":"Vehicle model"},"regNumber":{"type":"string","description":"License plate number"},"temporaryPlates":{"type":"string","description":"Temporary number plates"}},"required":["model","regNumber","temporaryPlates"]},"DriverDto":{"type":"object","properties":{"name":{"type":"string","description":"Driver name"},"phone":{"type":"string","description":"Driver phone number"},"photo":{"type":"string","description":"Driver photo"}},"required":["name","phone"]},"PriceDto":{"type":"object","properties":{"price":{"type":"number","description":"Price"},"currency":{"type":"string","description":"Currency"},"outOfArea":{"type":"boolean","description":"Is trip out of area?"}},"required":["price","currency","outOfArea"]},"CustomerDto":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone number"},"email":{"type":"string","description":"Email"}},"required":["name","phone"]},"TripDetailsDto":{"type":"object","properties":{"preDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"postDrive":{"$ref":"#/components/schemas/PrePostDriveDto"},"startedAt":{"type":"string","description":"Trip start time"},"endedAt":{"type":"string","description":"Trip end time"}}},"PrePostDriveDto":{"type":"object","properties":{"comment":{"type":"string","description":"Driver comment"},"mileage":{"type":"number","description":"Mileage"},"photos":{"description":"Photos","type":"array","items":{"$ref":"#/components/schemas/PhotoDto"}}}},"PhotoDto":{"type":"object","properties":{"original":{"type":"string","description":"Original photo"},"thumbnail":{"type":"string","description":"Thumbnail photo"}},"required":["original","thumbnail"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

## Get Pud count

> Get Pud count for a company

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/count":{"get":{"description":"Get Pud count for a company","operationId":"ApiController_getPudCount","parameters":[{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pud count","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudCountResponse"}}}},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}}},"summary":"Get Pud count","tags":["[API] Pud"]}}},"components":{"schemas":{"PudCountResponse":{"type":"object","properties":{"count":{"type":"number","description":"count"}},"required":["count"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

## Upload Pud attachment

> Upload a PDF attachment to a Pud by id

```json
{"openapi":"3.0.0","info":{"title":"Gire Public API","version":"3.0"},"paths":{"/api/v3/puds/{id}/attachments":{"post":{"description":"Upload a PDF attachment to a Pud by id","operationId":"ApiController_uploadPudAttachment","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-api-token","in":"header","description":"Company API key","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadPudAttachmentDto"}}}},"responses":{"201":{"description":"Pud attachment uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PudAttachmentResponseDto"}}}},"400":{"description":"No file uploaded, unsupported file type, or file too large"},"401":{"description":"UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedExceptionDto"}}}},"404":{"description":"NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundExceptionDto"}}}}},"summary":"Upload Pud attachment","tags":["[API] Pud"]}}},"components":{"schemas":{"UploadPudAttachmentDto":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"PDF file to attach to the Pud"}},"required":["file"]},"PudAttachmentResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Attachment id"},"fileName":{"type":"string","description":"Original file name"},"origin":{"type":"string","description":"Public file URL"}},"required":["id","fileName","origin"]},"UnauthorizedExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]},"NotFoundExceptionDto":{"type":"object","properties":{"errorType":{"type":"string","description":"Specific error type code","enum":["NOT_IMPLEMENTED","VALIDATION_ERROR","CANNOT_CANCEL_PUD","ADDRESS_NOT_FOUND","CROSS_BORDER_NOT_ALLOWED","PARTIAL_ADDRESS","BOOKING_BLOCKED","BOOKING_BAN","PRICE_ESTIMATE_UNAVAILABLE","INVALID_BOOKING_INTERVAL","NO_MATCH_FOUND","OUT_OF_AREA_NOT_ALLOWED","BOOKING_PRODUCT_NOT_AVAILABLE","BOOKING_ADDON_NOT_AVAILABLE_IN_BOOKING_PRODUCT","BOOKING_ADDON_NOT_AVAILABLE_IN_REGION","OUT_OF_OPENING_HOURS_NOT_ALLOWED","PRICE_ESTIMATE_CANNOT_FIND_HUB","PRICE_ESTIMATE_CANNOT_FIND_PRICE_RULES","PRICE_ESTIMATE_CANNOT_FIND_DRIVING_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_FROM_HUB_ROUTE","PRICE_ESTIMATE_CANNOT_FIND_TO_HUB_ROUTE","WHITE_LABEL_JOB_NOT_FOUND","WHITE_LABEL_NOT_WHITE_LABEL","WHITE_LABEL_ALREADY_CANCELLED","WHITE_LABEL_PICKUP_STARTED","WHITE_LABEL_NO_LOCATION_ID","WHITE_LABEL_LOCATION_NOT_FOUND","WHITE_LABEL_CANCELLATION_NOT_ALLOWED","WHITE_LABEL_TOO_CLOSE_TO_PICKUP","THIRD_PARTY_API_ERROR","RECAPTCHA_VALIDATION_FAILED","RECAPTCHA_MISSING"]},"statusCode":{"type":"number","description":"Status code","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,210,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,428,429,456,500,501,502,503,504,505,507,508]},"message":{"type":"string","description":"Error message"},"path":{"type":"string","description":"Request path"},"timestamp":{"type":"string","description":"Timestamp of the error"},"requestId":{"type":"string","description":"Unique request ID"},"data":{"type":"object","description":"Additional error data (optional)"}},"required":["errorType","statusCode","message","path","timestamp","requestId"]}}}}
```

{% content-ref url="/pages/Mn8EGAJocQtzl3p9zYzo" %}
[Booking restrictions](/api/v3/puds/booking-restrictions.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://giremobility.gitbook.io/api/v3/puds.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
