         self.payer = PXPayer(email: payerEmail)
     }
 
-    internal init(id: String, items: [PXItem], payer: PXPayer, paymentPreference: PXPaymentPreference?, siteId: String, expirationDateTo: Date?, expirationDateFrom: Date?, site: PXSite?, differentialPricing: PXDifferentialPricing?, marketplace: String?, branchId: String?, processingModes: [String] = PXServicesURLConfigs.MP_DEFAULT_PROCESSING_MODES, collectorId: String?) {
+    internal init(id: String, items: [PXItem], payer: PXPayer, paymentPreference: PXPaymentPreference?, siteId: String, expirationDateTo: Date?, expirationDateFrom: Date?, site: PXSite?, differentialPricing: PXDifferentialPricing?, marketplace: String?, branchId: String?, processingModes: [String] = PXServicesURLConfigs.MP_DEFAULT_PROCESSING_MODES, collectorId: String?, orderId: String?, merchantOrderId: String?) {
         self.id = id
         self.items = items
         self.payer = payer

    open var collectorId: String?

    open var backUrls: PXBackUrls?
    internal var binaryModeEnabled: Bool = false
    internal var pxAdditionalInfo: PXAdditionalInfo?


        case branchId = "branch_id"
        case processingModes = "processing_modes"
        case collectorId = "collector_id"
        case orderId = "order_id"
        case merchantOrderId = "merchant_order_id"
    }

    required public convenience init(from decoder: Decoder) throws {
