Agentivity API

<back to all web services

GetTicketCouponsByStatusCode

The following routes are available for this service:
GET/TicketCouponsByStatusCode
import Foundation
import ServiceStack

// @DataContract(Namespace="schemas.agentivity.com/types")
public class GetTicketCouponsByStatusCode : CompanyLevelRequestBase, IRequestConsultantID
{
    /**
    * Date in format YYYYMMDD
    */
    // @DataMember
    public var dateStart:String

    /**
    * Date in format YYYYMMDD
    */
    // @DataMember
    public var dateEnd:String

    /**
    * Travel agent ID
    */
    // @DataMember
    public var travAgntID:String

    /**
    * Comma Delimited List of Accounts
    */
    // @DataMember
    public var account:[String]

    /**
    * Comma Delimited List of PCCs
    */
    // @DataMember
    public var owningAgencyLocationID:[String]

    /**
    * Coupon code group ("ALL OPEN") or any Coupon Status eg USED, OPEN
    */
    // @DataMember
    public var couponCodeGroup:String

    /**
    * Date range type. A single character: I = Issue date, T = Travel date, E = Expiry date
    */
    // @DataMember
    public var dateTracker:String

    /**
    * Repeat
    */
    // @DataMember
    public var repeat:Bool

    /**
    * Lists only segments that are not active
    */
    // @DataMember
    public var noActiveSegments:Bool

    /**
    * Include partial matches
    */
    // @DataMember
    public var includePartialMatches:Bool

    /**
    * Show Matching Coupons Only
    */
    // @DataMember
    public var showMatchingCouponsOnly:Bool

    /**
    * Pax surname
    */
    // @DataMember
    public var paxSurname:String

    /**
    * Two letter code for carrier
    */
    // @DataMember
    public var carrierCode:String

    /**
    * Comma delimited list of 3-character plating carriers
    */
    // @DataMember
    public var excludedPlatingCarrier:[String]

    /**
    * Id of the owning consultant
    */
    // @DataMember
    public var owningConsultantID:String

    /**
    * Cache Guid
    */
    // @DataMember
    public var cacheGuid:String

    /**
    * Agentivity Traveller GUID
    */
    // @DataMember
    public var travellerGUID:String

    /**
    * Request Consultant ID (sign on)
    */
    // @DataMember
    public var requestConsultantID:String

    // @DataMember
    public var crmCode:Int

    // @DataMember
    public var crmid:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case dateStart
        case dateEnd
        case travAgntID
        case account
        case owningAgencyLocationID
        case couponCodeGroup
        case dateTracker
        case repeat
        case noActiveSegments
        case includePartialMatches
        case showMatchingCouponsOnly
        case paxSurname
        case carrierCode
        case excludedPlatingCarrier
        case owningConsultantID
        case cacheGuid
        case travellerGUID
        case requestConsultantID
        case crmCode
        case crmid
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        dateStart = try container.decodeIfPresent(String.self, forKey: .dateStart)
        dateEnd = try container.decodeIfPresent(String.self, forKey: .dateEnd)
        travAgntID = try container.decodeIfPresent(String.self, forKey: .travAgntID)
        account = try container.decodeIfPresent([String].self, forKey: .account) ?? []
        owningAgencyLocationID = try container.decodeIfPresent([String].self, forKey: .owningAgencyLocationID) ?? []
        couponCodeGroup = try container.decodeIfPresent(String.self, forKey: .couponCodeGroup)
        dateTracker = try container.decodeIfPresent(String.self, forKey: .dateTracker)
        repeat = try container.decodeIfPresent(Bool.self, forKey: .repeat)
        noActiveSegments = try container.decodeIfPresent(Bool.self, forKey: .noActiveSegments)
        includePartialMatches = try container.decodeIfPresent(Bool.self, forKey: .includePartialMatches)
        showMatchingCouponsOnly = try container.decodeIfPresent(Bool.self, forKey: .showMatchingCouponsOnly)
        paxSurname = try container.decodeIfPresent(String.self, forKey: .paxSurname)
        carrierCode = try container.decodeIfPresent(String.self, forKey: .carrierCode)
        excludedPlatingCarrier = try container.decodeIfPresent([String].self, forKey: .excludedPlatingCarrier) ?? []
        owningConsultantID = try container.decodeIfPresent(String.self, forKey: .owningConsultantID)
        cacheGuid = try container.decodeIfPresent(String.self, forKey: .cacheGuid)
        travellerGUID = try container.decodeIfPresent(String.self, forKey: .travellerGUID)
        requestConsultantID = try container.decodeIfPresent(String.self, forKey: .requestConsultantID)
        crmCode = try container.decodeIfPresent(Int.self, forKey: .crmCode)
        crmid = try container.decodeIfPresent(String.self, forKey: .crmid)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if dateStart != nil { try container.encode(dateStart, forKey: .dateStart) }
        if dateEnd != nil { try container.encode(dateEnd, forKey: .dateEnd) }
        if travAgntID != nil { try container.encode(travAgntID, forKey: .travAgntID) }
        if account != nil { try container.encode(account, forKey: .account) }
        if owningAgencyLocationID != nil { try container.encode(owningAgencyLocationID, forKey: .owningAgencyLocationID) }
        if couponCodeGroup != nil { try container.encode(couponCodeGroup, forKey: .couponCodeGroup) }
        if dateTracker != nil { try container.encode(dateTracker, forKey: .dateTracker) }
        if repeat != nil { try container.encode(repeat, forKey: .repeat) }
        if noActiveSegments != nil { try container.encode(noActiveSegments, forKey: .noActiveSegments) }
        if includePartialMatches != nil { try container.encode(includePartialMatches, forKey: .includePartialMatches) }
        if showMatchingCouponsOnly != nil { try container.encode(showMatchingCouponsOnly, forKey: .showMatchingCouponsOnly) }
        if paxSurname != nil { try container.encode(paxSurname, forKey: .paxSurname) }
        if carrierCode != nil { try container.encode(carrierCode, forKey: .carrierCode) }
        if excludedPlatingCarrier != nil { try container.encode(excludedPlatingCarrier, forKey: .excludedPlatingCarrier) }
        if owningConsultantID != nil { try container.encode(owningConsultantID, forKey: .owningConsultantID) }
        if cacheGuid != nil { try container.encode(cacheGuid, forKey: .cacheGuid) }
        if travellerGUID != nil { try container.encode(travellerGUID, forKey: .travellerGUID) }
        if requestConsultantID != nil { try container.encode(requestConsultantID, forKey: .requestConsultantID) }
        if crmCode != nil { try container.encode(crmCode, forKey: .crmCode) }
        if crmid != nil { try container.encode(crmid, forKey: .crmid) }
    }
}

// @DataContract(Namespace="schemas.agentivity.com/types")
public class CompanyLevelRequestBase : PagingMetadata, IMemberUsername, IMemberOwningCompanyCode
{
    /**
    * Comma Delimited List of Owning Company Codes
    */
    // @DataMember
    public var owningCompanyCode:[String]

    /**
    * UserName in form of an email address
    */
    // @DataMember
    public var userName:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case owningCompanyCode
        case userName
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        owningCompanyCode = try container.decodeIfPresent([String].self, forKey: .owningCompanyCode) ?? []
        userName = try container.decodeIfPresent(String.self, forKey: .userName)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if owningCompanyCode != nil { try container.encode(owningCompanyCode, forKey: .owningCompanyCode) }
        if userName != nil { try container.encode(userName, forKey: .userName) }
    }
}

// @DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")
public class PagingMetadata : Codable
{
    /**
    * Starting Record
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")
    public var offset:String

    /**
    * Number of records to return (PageSize)
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")
    public var limit:String

    /**
    * Total Number of Records in a Full Reponse (if no paging)
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Total Number of Records in a Full Reponse (if no paging)", Name="TotalRecords", ParameterType="query")
    public var totalRecords:Int

    /**
    * Total Number of Records in this Reponse (on this page)
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Total Number of Records in this Reponse (on this page)", Name="ResponseRecords", ParameterType="query")
    public var responseRecords:Int

    required public init(){}
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class TicketCouponsByStatusCodeResponse : CollectionResponse<TicketCouponsByStatusCode>
{
    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class CollectionResponse<TItem : Codable> : Codable
{
    // @DataMember(Order=1)
    public var responseMetadata:ResponseMetadata

    // @DataMember(Order=2, EmitDefaultValue=false)
    public var responseReport:[ApiRequestPerHour]

    // @DataMember(Order=3, EmitDefaultValue=false)
    public var responseError:AgentivityError

    required public init(){}
}

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class ResponseMetadata : Codable
{
    // @DataMember(Order=0)
    public var success:Bool

    // @DataMember(Order=1)
    public var hasCache:Bool

    // @DataMember(Order=2)
    public var hasPaging:Bool

    // @DataMember(Order=3, EmitDefaultValue=false)
    public var cacheMetadata:CacheMetadata

    // @DataMember(Order=4, EmitDefaultValue=false)
    public var pagingMetadata:PagingMetadata

    required public init(){}
}

// @DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")
public class CacheMetadata : Codable
{
    // @DataMember(Order=1)
    public var cachedAt:Date

    // @DataMember(Order=2)
    public var cacheExpiresAt:Date

    // @DataMember(Order=0)
    public var isFromCache:Bool

    required public init(){}
}

// @DataContract(Name="ApiRequestPerHour", Namespace="schemas.agentivity.com/types")
public class ApiRequestPerHour : Codable
{
    // @DataMember(Order=10)
    public var requestDate:Date

    // @DataMember(Order=100)
    public var hour0:Int

    // @DataMember(Order=110)
    public var hour1:Int

    // @DataMember(Order=120)
    public var hour2:Int

    // @DataMember(Order=130)
    public var hour3:Int

    // @DataMember(Order=140)
    public var hour4:Int

    // @DataMember(Order=150)
    public var hour5:Int

    // @DataMember(Order=160)
    public var hour6:Int

    // @DataMember(Order=170)
    public var hour7:Int

    // @DataMember(Order=180)
    public var hour8:Int

    // @DataMember(Order=190)
    public var hour9:Int

    // @DataMember(Order=200)
    public var hour10:Int

    // @DataMember(Order=210)
    public var hour11:Int

    // @DataMember(Order=220)
    public var hour12:Int

    // @DataMember(Order=230)
    public var hour13:Int

    // @DataMember(Order=240)
    public var hour14:Int

    // @DataMember(Order=250)
    public var hour15:Int

    // @DataMember(Order=260)
    public var hour16:Int

    // @DataMember(Order=270)
    public var hour17:Int

    // @DataMember(Order=280)
    public var hour18:Int

    // @DataMember(Order=290)
    public var hour19:Int

    // @DataMember(Order=300)
    public var hour20:Int

    // @DataMember(Order=310)
    public var hour21:Int

    // @DataMember(Order=320)
    public var hour22:Int

    // @DataMember(Order=330)
    public var hour23:Int

    required public init(){}
}

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class AgentivityError : Codable
{
    // @DataMember
    public var errorCode:String

    // @DataMember
    public var message:String

    // @DataMember
    public var statusCode:String

    // @DataMember
    public var verboseMessage:String

    required public init(){}
}

// @DataContract(Name="TicketCouponsByStatusCode", Namespace="schemas.agentivity.com/types")
public class TicketCouponsByStatusCode : IBookingIdentifier, ICustomFields, Codable
{
    // @DataMember(Order=5)
    public var companyName:String

    // @DataMember(Order=10)
    public var tktNumber:String

    // @DataMember(Order=20)
    public var rn:String

    // @DataMember(Order=30)
    public var airTktSegId:String

    // @DataMember(Order=35)
    public var vndIssueDt:Date?

    // @DataMember(Order=40)
    public var recordLocator:String

    // @DataMember(Order=45)
    public var passenger:String

    // @DataMember(Order=51)
    public var travAgntID:String

    // @DataMember(Order=60)
    public var owningConsultantID:String

    // @DataMember(Order=70)
    public var fopFare:String

    // @DataMember(Order=80)
    public var baseFare:String

    // @DataMember(Order=90)
    public var fop:String

    // @DataMember(Order=110)
    public var totalTax:String

    // @DataMember(Order=120)
    public var tax1Code:String

    // @DataMember(Order=130)
    public var tax1Amt:String

    // @DataMember(Order=140)
    public var tax2Code:String

    // @DataMember(Order=150)
    public var tax2Amt:String

    // @DataMember(Order=160)
    public var tax3Code:String

    // @DataMember(Order=170)
    public var tax3Amt:String

    // @DataMember(Order=180)
    public var tax4Code:String

    // @DataMember(Order=180)
    public var tax4Amt:String

    // @DataMember(Order=200)
    public var tax5Code:String

    // @DataMember(Order=210)
    public var tax5Amt:String

    // @DataMember(Order=220)
    public var account:String

    // @DataMember(Order=230)
    public var exchangedForTicket:String

    // @DataMember(Order=240)
    public var couponSequenceNbr:String

    // @DataMember(Order=250)
    public var carrier:String

    // @DataMember(Order=260)
    public var boardPoint:String

    // @DataMember(Order=270)
    public var offPoint:String

    // @DataMember(Order=280)
    public var flightDate:Date?

    // @DataMember(Order=290)
    public var flightServiceClass:String

    // @DataMember(Order=300)
    public var fareBasis:String

    // @DataMember(Order=310)
    public var flightCouponStatus:String

    // @DataMember(Order=320)
    public var dateLastChecked:Date?

    // @DataMember(Order=330)
    public var pcc:String

    // @DataMember(Order=340)
    public var airlineCode:String

    // @DataMember(Order=500)
    public var owningCompanyCode:String

    // @DataMember(Order=510)
    public var creditCurrency:String

    // @DataMember(Order=520)
    public var creditValue:Double?

    // @DataMember(Order=530)
    public var flightServiceClassName:String

    // @DataMember(Order=540)
    public var flownKM:Int?

    // @DataMember(Order=550)
    public var bar:String

    // @DataMember(Order=560)
    public var pnrCreationDate:Date?

    // @DataMember(Order=570)
    public var agentivityRef:Int

    // @DataMember(Order=580)
    public var customFields:CustomFieldsCollection

    required public init(){}
}

public class CustomFieldsCollection : List<CustomFieldData>
{
    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

// @DataContract(Name="CustomField", Namespace="schemas.agentivity.com/types")
public class CustomFieldData : Codable
{
    // @DataMember(Order=20)
    public var fieldName:String

    // @DataMember(Order=30)
    public var fieldValue:String

    required public init(){}
}


Swift GetTicketCouponsByStatusCode DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /TicketCouponsByStatusCode HTTP/1.1 
Host: api.agentivity.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseMetadata":{"Success":false,"HasCache":false,"HasPaging":false,"CacheMetadata":{"IsFromCache":false,"CachedAt":"\/Date(-62135596800000-0000)\/","CacheExpiresAt":"\/Date(-62135596800000-0000)\/"},"PagingMetadata":{"Offset":"String","Limit":"String","TotalRecords":0,"ResponseRecords":0}},"ResponseReport":[{"CompanyName":"String","TktNumber":"String","RN":"String","AirTktSegId":"String","VndIssueDt":"\/Date(-62135596800000-0000)\/","RecordLocator":"String","Passenger":"String","TravAgntID":"String","OwningConsultantID":"String","FOPFare":"String","BaseFare":"String","FOP":"String","TotalTax":"String","Tax1Code":"String","Tax1Amt":"String","Tax2Code":"String","Tax2Amt":"String","Tax3Code":"String","Tax3Amt":"String","Tax4Code":"String","Tax4Amt":"String","Tax5Code":"String","Tax5Amt":"String","Account":"String","ExchangedForTicket":"String","CouponSequenceNbr":"String","Carrier":"String","BoardPoint":"String","OffPoint":"String","FlightDate":"\/Date(-62135596800000-0000)\/","FlightServiceClass":"String","FareBasis":"String","FlightCouponStatus":"String","DateLastChecked":"\/Date(-62135596800000-0000)\/","PCC":"String","AirlineCode":"String","OwningCompanyCode":"String","CreditCurrency":"String","CreditValue":0,"FlightServiceClassName":"String","FlownKM":0,"BAR":"String","PNRCreationDate":"\/Date(-62135596800000-0000)\/","AgentivityRef":0,"CustomFields":[{"FieldName":"String","FieldValue":"String"}]}],"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}