The Audit API allows GO to push reservation audit data to GO Distributors, providing real-time updates on guest stay status, including check-ins, check-outs, and no-shows. This API ensures that distributors receive accurate and timely information about the status of each reservation. However, please note that only a limited number of hotel suppliers support the provision of audit data to GO. Before implementing the Audit API, it is recommended to check with us to confirm whether your hotel suppliers offer this functionality.

POST /reservation/audit/push HTTP/1.1
URL: {RES-Audit-Endpoint}/reservation/audit/push
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Audit  Request Schema

Request(METHOD: POST)

Level

Field Name

Data Type

Required

Description

Example

1

header

object

Y

/

/

2

@distributorId

string

Y

The ID of the distributor in DerbySoft's system

MaxLength: 32

HUAWEI

2

@supplierId

string

Y

The ID of the hotel supplier in DerbySoft's system.

Max Length: 32

HUAZHU

2

@token

string

Y

/

/
1

hotelId

string

Y

Supplier Hotel ID

100001

1

reservationId

object

Y

/

/
2

@distributorResId

string

Y

Reservation ID of Distributor

C2084DFL0

2

@derbyResId

string

Y

Reservation ID of DerbySoft

D15F893D34DF

2

@supplierResId

string

Y

Reservation ID of Hotel Supplier

89389494,89389495

1

auditId

string

Y

Audit record ID

9f1925cc888c438d

1

auditDateTime

string

Y

The time when GO received the request from Hotel Suppliers

2023-06-04T08:12:23.123Z

1

currency

string

Y

Currency Code【ISO-4217】

USD

1

roomDetails

array[object]

Y

There would be multiple rooms

/
2

@roomId

string

Y

Room ID

10000101

2

@rateId

string

Y

Rate Plan ID

123456

2

@roomStatus

enum

Y

Eunm: [NO_SHOW, CHECK_IN, CHECK_OUT]

/

2

@hotelComments

string

N

Comments by Hotel Supplier

/

2

@supplierResId

string


If the supplier has split the order for multiple rooms, here it represents the sub-order number for the supplier.

89389494

2

stayDateRange

object

N

Actual time of check-in/check-out

/
3

@checkInDateTime

string

Y

Guest check-in datetime

2023-06-04T08:12:23.123Z

3

@checkOutDateTime

string

Y

Guest check-in datetime

2023-06-04T08:12:23.123Z

3

@timeZone

string

N

Time Zone

/
2

roomRevenue

object

N

Room cost

/
3

@amountBeforeTax

number

N

Amount Before tax

/
3

@amountAfterTax

number

N

Amount After tax

/
2

otherFees

array[object]

N

/

/
3

@amountBeforeTax

number

N

Amount Before Tax

/
3

@amountAfterTax

number

N

Amount After Tax

/
3

@description

string

N

Description of Fees

/
1

total

object

N

/

/
2

roomRevenue

object

N

Total Order Cost

/
2

@amountBeforeTax

number

N

Amount Before Tax

/
2

@amountAfterTax

number

N

Amount After Tax

/
2

otherFees

array[object]

N

Other fees

/
3

@amountBeforeTax

number

N

Amount Before Tax

/
3

@amountAfterTax

number

N

Amount After Tax

/
3

@description

string

N

Description of Fees

/

Audit Request Example

Audit Request Example
{
  "header": {
    "distributorId": "xxx",
    "supplierId": "xxx",
    "token": "xxx"
  },
  "hotelId": "hotelCode",
  "reservationId": {
    "distributorResId": "xxx",
    "derbyResId": "xxx",
    "supplierResId": "supplierResId1,supplierResId2"
  },
  "auditId": "xx",
  "auditDateTime": "2023-06-04T08:12:23.123Z",
  "currency": "CNY",
  "roomDetails": [
    {
      "roomId": "100001",
      "rateId": "123456",
      "stayDateRange": {
        "checkInDateTime": "2023-06-01 08:12:23",
        "checkOutDateTime": "2023-06-03 08:12:23",
        "timeZone": ""
      },
      "roomStatus": "CHECK_IN",
      "roomRevenue": {
        "amountBeforeTax": 250,
        "amountAfterTax": 450
      },
      "otherFees": [
        {
          "amountBeforeTax": 3,
          "amountAfterTax": 5,
          "description": "Drink"
        }
      ],
      "hotelComments": "Comments from hotel side",
      "supplierResId": "supplierResID1"
    }
  ],
  "total": {
    "roomRevenue": {
      "amountBeforeTax": 250,
      "amountAfterTax": 450
    },
    "otherFees": [
      {
        "amountBeforeTax": 20,
        "amountAfterTax": 40,
        "description": "Drink Fee"
      },
      {
        "amountBeforeTax": 50,
        "amountAfterTax": 70,
        "description": "Penalty"
      },
      {
        "amountBeforeTax": 40,
        "amountAfterTax": 50,
        "description": "ServiceCharge"
      }
    ]
  }
}

Audit Response Schema

Response
Level

Field Name

Required

Data Type

Description

Example

1

header

object

Y

 /

 /

2

@supplierId

string

Y

The ID of the hotel supplier in DerbySoft's system.

Max Length: 32

HUAZHU

2

@distributorId

string

Y

The ID of the distributor in DerbySoft's system

MaxLength: 32

HUAWEI

2

@token

string

Y

Max Length: 64

It is recommended to use a Universally Unique Identifier (UUID) as a unique identifier for requests and responses. This will ensure that each request and response is uniquely identified and can be tracked efficiently.

18393849028490234

1

result

string

Y

/

Success

Audit Response Example

Success Response (HTTP Status 200)
{
  "header": {
    "distributorId": "xxx",
    "supplierId": "xxx",
    "token": "xxx"
  },
  "result": "Success"
}
Error Response (HTTP Status 401)
{
  "errorCode": "InvalidIdentityCredential",
  "errorMessage": "Invalid Identity Credential"
}
Error Response (HTTP Status 500) 
{
  "errorCode": "InternalError",
  "errorMessage": "error message with details of the error"
}