TABLE OF CONTENTS



The Invoice collection call type is used by different personas such as TMCs, payment providers, Distribution channels and others, with the goal of asking the hotel to send an invoice for a booking to a specific email. This type of call is a trigger post stay and it is one of the most relevant problems within the Corporate distribution.


Invoice Collection Request Schema

Your system will use this endpoint to submit new call requests to DerbySoft. To ensure successful processing:

  • All mandatory fields must be included in the request payload.
  • The check-out date must be in the past; requests with future check-out dates will be rejected.
  • Once a valid request is submitted, DerbySoft will begin initiating calls to the hotel starting five days before the check-in date.


Request (METHOD: POST)

LevelField NameNum. Occ.Data typeFormatDescriptionExample
1purpose1object
Object used to share call request data to verify.-
2callType1EnumINVOICE_COLLECTIONtbdINVOICE_COLLECTION
2invoiceCollection1object
Object used to share reservation information-
3toEmail1stringmin 6 char max 254 charemail where the invoice needs to be sentbarcelonaFrontdesk@gmail.com
3transactionAmount0..1decimalMin 1 CharAmount eligible for invoicing for the specified reservation.156
3transactionCurrency0..1string3 char codeCurrency code following ISO 4217EUR
3transactionDate0..1dateyyyy-mm-ddDate of when the transaction was done2025-07-25
3lastFourDigits0..1
intengerMin 4 Max 4Last four digits of the credit card use in the transaction1235
3corporateName0..1stringMax 100 charCustomer’s full corporation nameDerbysoft
3corporateAddress0..1stringMax 100 charCustomer’s full corporation addressAv. Diagonal, 472, p.8 pta. 3, Gracia, 08006 Barcelona
3vatNumber0..1stringMax 20A unique tax identification number assigned to a business or individual by a national tax authority for the purpose of Value Added Tax (VAT) reporting and compliance.ES123456789X
1recipient1object


2phoneNumber1string“+” followed by digits
Min 6 Max 20
Telephone number associated with the property. Including “+” and country code+34932952800
1callData1object-This object is used to group all data information-
2onBehalfOrg0..1stringMax 100 charWhen provided it will be used by the AI agent that it is calling on behalf of that company.  If not provided it will use your company nameBarcelona Travel
2property1object-Object used to shara Property information-
3name1stringMax lenght 200 charHotel nameW Barcelona, MGM Grand, Sun Hotel
3distributorHotelID0..1stringMax length TBDUnique Derbysoft identifiyer for hotelABCDE
3gdsId0..1stringMax lenght 200 charUnique GDS identifiyer for hotelWH BCN183
WH 45626
WH 101944
WH 3183
3address1object-Object used to share address associated with the hotel.-
4addressLine11stringMax lenght 200 charFree-form address details.Plaça Rosa Del Vents 1
4addressLine20..1stringMax lenght 200 charFree-form address details.Final, Pg. de Joan de Borbó
4cityName1stringMax lenght 100 charCity or town where the hotel is locatedBarcelona
4StateProv0..1stringMax lenght 100 charState or Province name (e.g., Texas).State, province, or region name needed to identify hotel location.
4countryISO1stringMin 2 Max 2ISO 3166-1 Listing Country codeES
2guest1object-object used to share guest details for the reservation.-
3firstName1stringMax lenght 100 charGiven, or first, name of the guest.Leo
3lastName1stringMax lenght 100 charFamily, or last, name of the guest.Messi
3company0..1stringMax lenght 200 charCompany name where guest worksFCB Barcelona
2reservation1object-Object used to share all reservation details-
3hotelConfirmationId0..1stringMax lenght 50 charUnique identifier for the booking in distributor system012AC983
3checkIn1dateyyyy-mm-ddCheck in date - ISO 8601. Check in date cannot be in the past.2026-05-13
3checkOut1dateyyyy-mm-ddCheck outdate - ISO 8601. Check out date cannot be in the past or higher that check in date.2026-06-14


Invoice Collection Request Example

Call Request success example with all verification parameters

{
    "purpose": {
        "callType": "INVOICE_COLLECTION",
        "invoiceCollection": {
            "transactionAmount": "1000",
            "transactionCurrency": "EUR",
            "transactionDate": "2025-07-17",
            "lastFourDigits": "1234",
            "corporateName": "Derbysoft",
            "corporateAddress": "Av. Diagonal, 472, p.8 pta. 3, Gracia, 08006 Barcelona",
            "vatNumber": "ES123456789X",
            "toEmail": "invoice@barcelonatavel.es"
        }
    },
    "recipient": {
        "phoneNumber": "+34981811552"
    },
    "callData": {
    "onBehalfOrg": "BCN travel"
        "property": {
            "name": "Galicia Paradise",
            "distributorHotelID": "123",
            "gdsId": "456",
            "address": {
                "addressLine1": "Rua de Castelao",
                "addressLine2": "string",
                "cityName": "Vigo",
                "stateProv": "",
                "countryISO": "SP"
            }
        },
        "guest": {
            "firstName": "Iago",
            "lastName": "Aspas",
            "company": ""
        },
        "reservation": {
            "hotelConfirmationId": "string",
            "checkIn": "2025-02-01",
            "checkOut": "2025-02-10"
        }
    }
}

Call Request success example with only VCC

{
    "purpose": {
        "callType": "INVOICE_COLLECTION",
        "invoiceCollection": {
            "transactionAmount": "",
            "transactionCurrency": "",
            "transactionDate": "",
            "lastFourDigits": "1234",
            "corporateName": "",
            "corporateAddress": "",
            "vatNumber": "",
            "toEmail": "invoice@barcelonatavel.es"
        }
    },
    "recipient": {
        "phoneNumber": "+34981811552"
    },
    "callData": {
    "onBehalfOrg": "BCN travel"
        "property": {
            "name": "Galicia Paradise",
            "distributorHotelID": "123",
            "gdsId": "456",
            "address": {
                "addressLine1": "Rua de Castelao",
                "addressLine2": "string",
                "cityName": "Vigo",
                "stateProv": "",
                "countryISO": "SP"
            }
        },
        "guest": {
            "firstName": "Iago",
            "lastName": "Aspas",
            "company": ""
        },
        "reservation": {
            "hotelConfirmationId": "string",
            "checkIn": "2025-02-01",
            "checkOut": "2025-02-10"
        }
    }
}

Call Request success example only with email

{
    "purpose": {
        "callType": "INVOICE_COLLECTION",
        "invoiceCollection": {
            "transactionAmount": "",
            "transactionCurrency": "",
            "transactionDate": "",
            "lastFourDigits": "",
            "corporateName": "",
            "corporateAddress": "",
            "vatNumber": "",
            "toEmail": "invoice@barcelonatavel.es"
        }
    },
    "recipient": {
        "phoneNumber": "+34981811552"
    },
    "callData": {
    "onBehalfOrg": "BCN travel"
        "property": {
            "name": "Galicia Paradise",
            "distributorHotelID": "123",
            "gdsId": "456",
            "address": {
                "addressLine1": "Rua de Castelao",
                "addressLine2": "string",
                "cityName": "Vigo",
                "stateProv": "",
                "countryISO": "SP"
            }
        },
        "guest": {
            "firstName": "Iago",
            "lastName": "Aspas",
            "company": ""
        },
        "reservation": {
            "hotelConfirmationId": "string",
            "checkIn": "2025-02-01",
            "checkOut": "2025-02-10"
        }
    }
}

Call Request error example missing mandatory field to Email

{
    "purpose": {
        "callType": "INVOICE_COLLECTION",
        "invoiceCollection": {
            "transactionAmount": "1000",
            "transactionCurrency": "EUR",
            "transactionDate": "2025-07-17",
            "lastFourDigits": "1234",
            "corporateName": "Derbysoft",
            "corporateAddress": "Av. Diagonal, 472, p.8 pta. 3, Gracia, 08006 Barcelona",
            "vatNumber": "ES123456789X",
            "toEmail": ""
        }
    },
    "recipient": {
        "phoneNumber": "+34981811552"
    },
    "callData": {
    "onBehalfOrg": "BCN travel"
        "property": {
            "name": "Galicia Paradise",
            "distributorHotelID": "123",
            "gdsId": "456",
            "address": {
                "addressLine1": "Rua de Castelao",
                "addressLine2": "string",
                "cityName": "Vigo",
                "stateProv": "",
                "countryISO": "SP"
            }
        },
        "guest": {
            "firstName": "Iago",
            "lastName": "Aspas",
            "company": ""
        },
        "reservation": {
            "hotelConfirmationId": "string",
            "checkIn": "2025-02-01",
            "checkOut": "2025-02-10"
        }
    }
}



Invoice Collection Request Response Schema

Once a call request is submitted, DerbySoft's system will initiate a response to your system indicating whether the request was successfully parsed or if an error occurred.

  • If the request is successful, the response will include a Call Request ID.
  • This ID is essential and must be securely stored on your side.
  • You will need this ID for any future operations related to the request, such as checking the call status or canceling the call request.


HTTP Response

LevelField NameNum.Occ.DatatypeFormatDescriptionExample
1success1booleanTrue
 False
True: call request was created successfully in our system
False: call request was not created in our system
TRUE
1callRequestId0..1String16 CharUnique identifier for a call request, it must be stored to be able to request call status or cancel the call request66a1b2c3d4e5f678
1error0..1object-Object used for error description.-
2code1String100Short error descriptionBAD_REQUEST
2message1String500Long error description"Invalid request: call type cannot be empty"



Invoice Collection Request Response Example

Call request creation success example

{
  "success": true, 
  "callRequestId": "66a1b2c3d4e5f678" 
}

Call request creation error example

{
  "success": false,
  "error": {
    "code": "BAD_REQUEST", 
    "message": "Invalid request: call type cannot be empty"
  }
}