Trendsic Platform Service

<back to all web services

CustomerAppInvoicePayRequest

The following routes are available for this service:
POST/v1/c/app/invoices/{Uid}/pay
import Foundation
import ServiceStack

public class CustomerAppInvoicePayRequest : CustomerAppSessionRequest
{
    public var uid:String

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

    private enum CodingKeys : String, CodingKey {
        case uid
    }

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

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

public class CustomerAppSessionRequest : Codable
{
    public var slug:String
    public var profile:String

    required public init(){}
}

public class CustomerAppResponse : Codable
{
    public var boot:CustomerAppBoot
    public var customer:CustomerAppMe
    public var addresses:[CustomerAppAddress] = []
    public var cards:[CustomerAppCard] = []
    public var notif:CustomerAppNotif
    public var recurring:[CustomerAppRecurrence] = []
    public var booked:CourierBookOrderResponse
    public var sent:Bool
    public var token:String
    public var needsName:Bool
    public var name:String
    public var url:String
    public var clientSecret:String
    public var publishableKey:String
    public var message:String
    public var reopenStep:String
    public var customers:[CourierCustomerRow] = []
    public var run:RunResult
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class CustomerAppBoot : Codable
{
    public var profile:String
    public var available:Bool
    public var reason:String
    public var authMethod:String
    public var slug:String
    public var page:CourierBookPageView
    public var manifestUrl:String

    required public init(){}
}

public class CourierBookPageView : Codable
{
    public var available:Bool
    public var bookingOn:Bool
    public var business:CourierTrackBusiness
    public var profile:CourierBookProfile
    public var profiles:[CourierBookProfileLink] = []
    public var cardEnabled:Bool
    public var publishableKey:String
    public var appUrl:String
    public var today:String
    public var weekday:Int
    public var nowMin:Int

    required public init(){}
}

public class CourierTrackBusiness : Codable
{
    public var name:String
    public var phone:String

    required public init(){}
}

public class CourierBookProfile : Codable
{
    public var code:String
    public var name:String
    public var shape:String
    public var template:String
    public var unitOne:String
    public var unitMany:String
    public var unitOneEs:String
    public var unitManyEs:String
    public var facilityNoun:String
    public var facilityNounEs:String
    public var facilityName:String
    public var levels:[CourierBookLevel] = []
    public var asap:Bool
    public var recurring:Bool
    public var payTiming:String
    public var finalAfterCount:Bool
    public var cancelFee:Double
    public var missedFee:Double
    public var missedWaitMin:Int
    public var serviceArea:[String] = []
    public var zips:[String] = []
    public var handoffs:HandoffOptions

    required public init(){}
}

public class CourierBookLevel : Codable
{
    public var code:String
    public var name:String
    public var ready:String
    public var withinMin:Int
    public var inBy:String
    public var surcharge:Double
    public var days:[Int] = []
    public var deadlineMin:Int?

    required public init(){}
}

public class HandoffOptions : Codable
{
    public var hand:Bool
    public var porch:Bool
    public var desk:Bool
    public var sigRequired:Bool
    public var idRequired:Bool
    public var codeRequired:Bool

    required public init(){}
}

public class CourierBookProfileLink : Codable
{
    public var code:String
    public var name:String
    public var shape:String

    required public init(){}
}

public class CustomerAppMe : Codable
{
    public var contactId:Int
    public var firstName:String
    public var lastName:String
    public var name:String
    public var phone:String
    public var needsName:Bool
    public var billingMode:String
    public var accountCode:String
    public var addresses:[CustomerAppAddress] = []
    public var cards:[CustomerAppCard] = []
    public var notif:CustomerAppNotif
    public var orders:[CustomerAppOrder] = []
    public var recurring:[CustomerAppRecurrence] = []
    public var invoices:[CustomerAppInvoice] = []
    public var today:String
    public var nowMin:Int

    required public init(){}
}

public class CustomerAppAddress : Codable
{
    public var id:Int
    public var label:String
    public var street:String
    public var unit:String
    public var city:String
    public var zip:String
    public var lat:Double?
    public var lng:Double?
    public var inArea:Bool

    required public init(){}
}

public class CustomerAppCard : Codable
{
    public var id:Int
    public var label:String
    public var brand:String
    public var last4:String
    public var isDefault:Bool

    required public init(){}
}

public class CustomerAppNotif : Codable
{
    public var texts:Bool
    public var push:Bool
    public var promos:Bool

    required public init(){}
}

public class CustomerAppOrder : Codable
{
    public var id:Int
    public var code:String
    public var status:String
    public var state:String
    public var active:Bool
    public var levelCode:String
    public var levelName:String
    public var units:Int
    public var unitsFound:Int?
    public var address:String
    public var unit:String
    public var zip:String
    public var dropAddress:String
    public var recipientName:String
    public var handoff:String
    public var isAsap:Bool
    public var dayIx:Int
    public var dateText:String
    public var startMin:Int?
    public var endMin:Int?
    public var driverFirstName:String
    public var etaMin:Int?
    public var promise:String
    public var payMode:String
    public var amount:Double
    public var charged:Double?
    public var tip:Double?
    public var cardLast4:String
    public var recurrenceId:Int?
    public var steps:[CustomerAppStep] = []

    required public init(){}
}

public class CustomerAppStep : Codable
{
    public var key:String
    public var done:Bool
    public var time:String

    required public init(){}
}

public class CustomerAppRecurrence : Codable
{
    public var id:Int
    public var weekday:Int
    public var startMin:Int
    public var endMin:Int
    public var cadence:String
    public var levelCode:String
    public var units:Int
    public var handoff:String
    public var address:String
    public var paused:Bool
    public var payMode:String
    public var cardLast4:String
    public var nextDate:String
    public var skippedDate:String
    public var aheadDays:Int

    required public init(){}
}

public class CustomerAppInvoice : Codable
{
    public var uid:String
    public var number:String
    public var dateText:String
    public var total:Double
    public var balance:Double
    public var paid:Bool

    required public init(){}
}

public class CourierBookOrderResponse : Codable
{
    public var done:Bool
    public var needsAction:Bool
    public var clientSecret:String
    public var setupIntentId:String
    public var code:String
    public var trackUrl:String
    public var icsUrl:String
    public var windowText:String
    public var promise:String
    public var total:Double
    public var payTiming:String
    public var cardLast4:String
    public var repeats:String
    public var linkSentBy:String
    public var reopenStep:String
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class CourierCustomerRow : Codable
{
    public var contactId:Int
    public var name:String
    public var phone:String
    public var billingMode:String
    public var accountCode:String
    public var orders:Int
    public var lastOrderAt:Date?
    public var unbilled:Int
    public var unbilledAmount:Double
    public var cards:Int

    required public init(){}
}

public class RunResult : Codable
{
    public var invoices:Int
    public var orders:Int
    public var total:Double
    public var skipped:[String] = []

    required public init(){}
}


Swift CustomerAppInvoicePayRequest 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.

POST /v1/c/app/invoices/{Uid}/pay HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Uid":"00000000000000000000000000000000","Slug":"String","Profile":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Boot":{"Profile":"String","Available":false,"Reason":"String","AuthMethod":"String","Slug":"String","Page":{"Available":false,"BookingOn":false,"Business":{"Name":"String","Phone":"String"},"Profile":{"Code":"String","Name":"String","Shape":"String","Template":"String","UnitOne":"String","UnitMany":"String","UnitOneEs":"String","UnitManyEs":"String","FacilityNoun":"String","FacilityNounEs":"String","FacilityName":"String","Levels":[{"Code":"String","Name":"String","Ready":"String","WithinMin":0,"InBy":"String","Surcharge":0,"Days":[0],"DeadlineMin":0}],"Asap":false,"Recurring":false,"PayTiming":"String","FinalAfterCount":false,"CancelFee":0,"MissedFee":0,"MissedWaitMin":0,"ServiceArea":["String"],"Zips":["String"],"Handoffs":{"Hand":false,"Porch":false,"Desk":false,"SigRequired":false,"IdRequired":false,"CodeRequired":false}},"Profiles":[{"Code":"String","Name":"String","Shape":"String"}],"CardEnabled":false,"PublishableKey":"String","AppUrl":"String","Today":"String","Weekday":0,"NowMin":0},"ManifestUrl":"String"},"Customer":{"ContactId":0,"FirstName":"String","LastName":"String","Name":"String","Phone":"String","NeedsName":false,"BillingMode":"String","AccountCode":"String","Addresses":[{"Id":0,"Label":"String","Street":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"InArea":false}],"Cards":[{"Id":0,"Label":"String","Brand":"String","Last4":"String","IsDefault":false}],"Notif":{"Texts":false,"Push":false,"Promos":false},"Orders":[{"Id":0,"Code":"String","Status":"String","State":"String","Active":false,"LevelCode":"String","LevelName":"String","Units":0,"UnitsFound":0,"Address":"String","Unit":"String","Zip":"String","DropAddress":"String","RecipientName":"String","Handoff":"String","IsAsap":false,"DayIx":0,"DateText":"String","StartMin":0,"EndMin":0,"DriverFirstName":"String","EtaMin":0,"Promise":"String","PayMode":"String","Amount":0,"Charged":0,"Tip":0,"CardLast4":"String","RecurrenceId":0,"Steps":[{"Key":"String","Done":false,"Time":"String"}]}],"Recurring":[{"Id":0,"Weekday":0,"StartMin":0,"EndMin":0,"Cadence":"String","LevelCode":"String","Units":0,"Handoff":"String","Address":"String","Paused":false,"PayMode":"String","CardLast4":"String","NextDate":"String","SkippedDate":"String","AheadDays":0}],"Invoices":[{"Uid":"00000000000000000000000000000000","Number":"String","DateText":"String","Total":0,"Balance":0,"Paid":false}],"Today":"String","NowMin":0},"Addresses":[{"Id":0,"Label":"String","Street":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"InArea":false}],"Cards":[{"Id":0,"Label":"String","Brand":"String","Last4":"String","IsDefault":false}],"Notif":{"Texts":false,"Push":false,"Promos":false},"Recurring":[{"Id":0,"Weekday":0,"StartMin":0,"EndMin":0,"Cadence":"String","LevelCode":"String","Units":0,"Handoff":"String","Address":"String","Paused":false,"PayMode":"String","CardLast4":"String","NextDate":"String","SkippedDate":"String","AheadDays":0}],"Booked":{"Done":false,"NeedsAction":false,"ClientSecret":"String","SetupIntentId":"String","Code":"String","TrackUrl":"String","IcsUrl":"String","WindowText":"String","Promise":"String","Total":0,"PayTiming":"String","CardLast4":"String","Repeats":"String","LinkSentBy":"String","ReopenStep":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}},"Sent":false,"Token":"String","NeedsName":false,"Name":"String","Url":"String","ClientSecret":"String","PublishableKey":"String","Message":"String","ReopenStep":"String","Customers":[{"ContactId":0,"Name":"String","Phone":"String","BillingMode":"String","AccountCode":"String","Orders":0,"LastOrderAt":"0001-01-01T00:00:00.0000000","Unbilled":0,"UnbilledAmount":0,"Cards":0}],"Run":{"Invoices":0,"Orders":0,"Total":0,"Skipped":["String"]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}