SIRVA.Relocation.Services.InitiationGateway

<back to all web services

TransfereeInitiationRequest

Requires Authentication
The following routes are available for this service:
POST/Initiation/TransfereeInitiates a transferee.
import Foundation
import ServiceStack

public class TransfereeInitiationRequest : IRequireClientScoped, IPost, Codable
{
    /**
    * Transferee initiation info needed for creation.
    */
    // @ApiMember(Description="Transferee initiation info needed for creation.", IsRequired=true, ParameterType="body")
    public var initiationInfo:TransfereeInitiation

    required public init(){}
}

public class TransfereeInitiation : Codable
{
    /**
    * Client ID
    */
    // @ApiMember(Description="Client ID")
    public var clientId:String

    /**
    * External ID. This must be unique to the intiation's parent client
    */
    // @ApiMember(Description="External ID. This must be unique to the intiation's parent client", IsRequired=true)
    public var externalId:String

    /**
    * Transferee first name
    */
    // @ApiMember(Description="Transferee first name", IsRequired=true)
    public var firstName:String

    /**
    * Transferee last name
    */
    // @ApiMember(Description="Transferee last name", IsRequired=true)
    public var lastName:String

    /**
    * Assignment type
    */
    // @ApiMember(Description="Assignment type")
    public var assignmentType:String

    /**
    * Is this transferee pre-decision
    */
    // @ApiMember(Description="Is this transferee pre-decision")
    public var preDecision:Bool?

    /**
    * Is this transferee a VIP
    */
    // @ApiMember(Description="Is this transferee a VIP")
    public var vip:Bool?

    /**
    * Custom fields
    */
    // @ApiMember(Description="Custom fields")
    public var customFields:[CustomField] = []

    /**
    * Employee ID
    */
    // @ApiMember(Description="Employee ID")
    public var employeeId:String

    /**
    * Start date
    */
    // @ApiMember(Description="Start date")
    public var startDate:Date?

    /**
    * End date
    */
    // @ApiMember(Description="End date")
    public var endDate:Date?

    /**
    * Origin work location
    */
    // @ApiMember(Description="Origin work location", IsRequired=true)
    public var originWorkLocation:Location

    /**
    * Origin home address
    */
    // @ApiMember(Description="Origin home address", IsRequired=true)
    public var originHomeAddress:Address

    /**
    * Destination work location
    */
    // @ApiMember(Description="Destination work location", IsRequired=true)
    public var destinationWorkLocation:Location

    /**
    * Repat
    */
    // @ApiMember(Description="Repat")
    public var repat:String

    /**
    * Repat From City
    */
    // @ApiMember(Description="Repat From City")
    public var repatFromCity:String

    /**
    * Repat From State code
    */
    // @ApiMember(Description="Repat From State code")
    public var repatFromStateCode:String

    /**
    * Repat From Country Code
    */
    // @ApiMember(Description="Repat From Country Code")
    public var repatFromCountryCode:String

    /**
    * Repat To City
    */
    // @ApiMember(Description="Repat To City")
    public var repatToCity:String

    /**
    * Repat To State Code
    */
    // @ApiMember(Description="Repat To State Code")
    public var repatToStateCode:String

    /**
    * Repat To Country Code
    */
    // @ApiMember(Description="Repat To Country Code")
    public var repatToCountryCode:String

    /**
    * Transferee citizenship country
    */
    // @ApiMember(Description="Transferee citizenship country")
    public var citizenshipCountry:String

    /**
    * Transferee dual citizenship country
    */
    // @ApiMember(Description="Transferee dual citizenship country")
    public var dualCitizenshipCountry:String

    /**
    * Policy
    */
    // @ApiMember(Description="Policy", IsRequired=true)
    public var policy:String

    /**
    * Job title
    */
    // @ApiMember(Description="Job title")
    public var jobTitle:String

    /**
    * Marital status
    */
    // @ApiMember(Description="Marital status", Name="MaritalStatus")
    public var maritalStatus:MaritalStatus?

    /**
    * Pay grade
    */
    // @ApiMember(Description="Pay grade")
    public var payGrade:String

    /**
    * Assignment family size
    */
    // @ApiMember(Description="Assignment family size")
    public var assignmentFamilySize:Int?

    /**
    * Home owner status
    */
    // @ApiMember(Description="Home owner status", Name="HomeOwnerStatus")
    public var homeOwnerStatus:HomeOwnerStatus?

    /**
    * Line of business
    */
    // @ApiMember(Description="Line of business", IsRequired=true)
    public var lineOfBusiness:String

    /**
    * HostCurrency
    */
    // @ApiMember(Description="HostCurrency")
    public var hostCurrency:String

    /**
    * ServiceLevel
    */
    // @ApiMember(Description="ServiceLevel")
    public var serviceLevel:String

    /**
    * CompanyCodePrimary
    */
    // @ApiMember(Description="CompanyCodePrimary")
    public var companyCodePrimary:String

    /**
    * CompanyCodeSecondary
    */
    // @ApiMember(Description="CompanyCodeSecondary")
    public var companyCodeSecondary:String

    /**
    * CostCenterPrimary
    */
    // @ApiMember(Description="CostCenterPrimary")
    public var costCenterPrimary:String

    /**
    * CostCenterSecondary
    */
    // @ApiMember(Description="CostCenterSecondary")
    public var costCenterSecondary:String

    /**
    * CostCenterTertiary
    */
    // @ApiMember(Description="CostCenterTertiary")
    public var costCenterTertiary:String

    /**
    * Is the assignment confidential
    */
    // @ApiMember(Description="Is the assignment confidential")
    public var confidential:Bool?

    /**
    * Special Instructions
    */
    // @ApiMember(Description="Special Instructions")
    public var specialInstructions:String

    /**
    * Destination entity legal name
    */
    // @ApiMember(Description="Destination entity legal name")
    public var destinationEntityLegalName:String

    /**
    * Transferee mobile phone number
    */
    // @ApiMember(Description="Transferee mobile phone number", IsRequired=true)
    public var mobilePhoneNumber:String

    /**
    * Transferee work phone number
    */
    // @ApiMember(Description="Transferee work phone number")
    public var workPhoneNumber:String

    /**
    * Transferee home phone number
    */
    // @ApiMember(Description="Transferee home phone number")
    public var homePhoneNumber:String

    /**
    * Transferee primary email
    */
    // @ApiMember(Description="Transferee primary email", IsRequired=true)
    public var primaryEmail:String

    /**
    * Transferee secondary email
    */
    // @ApiMember(Description="Transferee secondary email")
    public var secondaryEmail:String

    /**
    * HR Contact First Name
    */
    // @ApiMember(Description="HR Contact First Name")
    public var hrContactFirstName:String

    /**
    * HR Contact Last Name
    */
    // @ApiMember(Description="HR Contact Last Name")
    public var hrContactLastName:String

    /**
    * HR contact full name
    */
    // @ApiMember(Description="HR contact full name")
    public var hrContactFullName:String

    /**
    * Transferee annual salary
    */
    // @ApiMember(Description="Transferee annual salary")
    public var annualSalary:String

    /**
    * Transferee spouse/partner
    */
    // @ApiMember(Description="Transferee spouse/partner")
    public var spousePartner:SpousePartner

    /**
    * Transferee dependents
    */
    // @ApiMember(Description="Transferee dependents")
    public var dependents:[Dependent] = []

    /**
    * Assignment Services
    */
    // @ApiMember(Description="Assignment Services")
    public var services:[Service] = []

    /**
    * Relocation Status
    */
    // @ApiMember(Description="Relocation Status")
    public var relocationStatus:String

    /**
    * Cancel
    */
    // @ApiMember(Description="Cancel")
    public var cancel:String

    required public init(){}
}

public class CustomField : Codable
{
    /**
    * Custom field name
    */
    // @ApiMember(Description="Custom field name", IsRequired=true)
    public var fieldName:String

    /**
    * Custom field value
    */
    // @ApiMember(Description="Custom field value")
    public var fieldValue:String

    required public init(){}
}

public class Location : Codable
{
    public var title:String
    public var city:String
    public var stateCode:String
    public var countryCode:String

    required public init(){}
}

public class Address : Location
{
    public var line1:String
    public var line2:String
    public var line3:String
    public var postalCode:String

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

    private enum CodingKeys : String, CodingKey {
        case line1
        case line2
        case line3
        case postalCode
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        line1 = try container.decodeIfPresent(String.self, forKey: .line1)
        line2 = try container.decodeIfPresent(String.self, forKey: .line2)
        line3 = try container.decodeIfPresent(String.self, forKey: .line3)
        postalCode = try container.decodeIfPresent(String.self, forKey: .postalCode)
    }

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

public enum MaritalStatus : String, Codable
{
    case Single
    case Married
    case DomesticPartner
    case Divorcee
    case Defacto
    case Other
    case Separated
    case Interdependent
    case Widowed
    case Divorced
}

public enum HomeOwnerStatus : String, Codable
{
    case Homeowner
    case Renter
}

public class SpousePartner : Codable
{
    public var firstName:String
    public var lastName:String
    public var birthDate:Date?

    required public init(){}
}

public class Dependent : Codable
{
    public var firstName:String
    public var lastName:String
    public var birthDate:Date?
    // @ApiMember(IsRequired=true, Name="RelationshipToAssignee")
    public var relationshipToAssignee:DependentAssigneeRelationship?

    required public init(){}
}

public enum DependentAssigneeRelationship : String, Codable
{
    case Child
    case Other
}

public class ServiceData : Codable
{
    /**
    * Service data field name
    */
    // @ApiMember(Description="Service data field name", IsRequired=true)
    public var fieldName:String

    /**
    * Service data field value
    */
    // @ApiMember(Description="Service data field value", IsRequired=true)
    public var fieldValue:String

    required public init(){}
}

public class TransfereeInitiationResponse : Codable
{
    public var responseStatus:ResponseStatus

    required public init(){}
}


Swift TransfereeInitiationRequest DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /Initiation/Transferee HTTP/1.1 
Host: initiation-api.sirva.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"initiationInfo":{"clientId":"String","externalId":"String","firstName":"String","lastName":"String","assignmentType":"String","preDecision":false,"vip":false,"customFields":[{"fieldName":"String","fieldValue":"String"}],"employeeId":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","originWorkLocation":{"title":"String","city":"String","stateCode":"String","countryCode":"String"},"originHomeAddress":{"line1":"String","line2":"String","line3":"String","postalCode":"String","title":"String","city":"String","stateCode":"String","countryCode":"String"},"destinationWorkLocation":{"title":"String","city":"String","stateCode":"String","countryCode":"String"},"repat":"String","repatFromCity":"String","repatFromStateCode":"String","repatFromCountryCode":"String","repatToCity":"String","repatToStateCode":"String","repatToCountryCode":"String","citizenshipCountry":"String","dualCitizenshipCountry":"String","policy":"String","jobTitle":"String","maritalStatus":"Single","payGrade":"String","assignmentFamilySize":0,"homeOwnerStatus":"Homeowner","lineOfBusiness":"String","hostCurrency":"String","serviceLevel":"String","companyCodePrimary":"String","companyCodeSecondary":"String","costCenterPrimary":"String","costCenterSecondary":"String","costCenterTertiary":"String","confidential":false,"specialInstructions":"String","destinationEntityLegalName":"String","mobilePhoneNumber":"String","workPhoneNumber":"String","homePhoneNumber":"String","primaryEmail":"String","secondaryEmail":"String","hrContactFirstName":"String","hrContactLastName":"String","hrContactFullName":"String","annualSalary":"String","spousePartner":{"firstName":"String","lastName":"String","birthDate":"0001-01-01T00:00:00.0000000"},"dependents":[{"firstName":"String","lastName":"String","birthDate":"0001-01-01T00:00:00.0000000","relationshipToAssignee":"Child"}],"services":[{"name":"String","data":[{"fieldName":"String","fieldValue":"String"}],"cancel":"String"}],"relocationStatus":"String","cancel":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}