Skip to main content

Channel Partner API - SOAP Guide

The SOAP interface for the channel partner API is intended to allow interaction with the API by using the standard SOAP Web Service model available to most programming languages like Java, C#, PHP, etc. Make sure to read the parent page about configuring the custom channel partner before starting coding.

warning

All incoming SOAP interfaces are designated deprecated. UltraCart does not have a sunset date for this interface, but new Channel Partners should make use of the REST API instead of this one. The SOAP interface will be removed in the future.

WSDL

The URL for the SOAP WSDL is:

https://secure.ultracart.com/axis/services/ChannelPartnerAPIV1?wsdl

Methods

The SOAP web service has the current methods available:

MethodDescription
ImportResult importOrder(Credentials credentials, Order order);Import an order
CancelResult cancelOrderByUltraCartOrderId(Credentials credentials, String orderId);Cancel an order based upon the UltraCart orderId returned by importOrder.
CancelResult cancelOrderByChannelPartnerOrderId(Credentials credentials, String channelPartnerOrderId);Cancel an order based upon the Channel Partner's orderId passed in to importOrder.

Objects

Credentials

FieldDescriptionRequired
merchantIdUtlraCart Merchant IDY
channelPartnerCodeCode of the custom channel partnerY
channelPartnerPasswordAPI passwordY

Order

FieldDescriptionRequired
channelPartnerOrderIdA unique order ID from the external system.Y
paymentMethodThe method of payment. Credit Card or Purchase OrderY
noRealtimePaymentProcessingLeaves the order in Accounts Receivable instead of processing the card in real-time.
skipPaymentProcessingSkip over the payment processing and move the order on to shipping.
considerRecurringIf set to true, we will pass the recurring flag to gateways that support it (Authorize.Net and PayPal Web Payments Pro)
autoApprovePurchaseOrderAutomatically approve the purchase order.
storeIfPaymentDeclinesStore the order in Accounts Receivable if the credit card declinesRecommend - Y
treatWarningsAsErrorsIf true, the wanrings are considered errors and will prevent the order from importing. Most common warning is the pre-order warning.
storeCompletedStore the order in the Completed Orders stage. This is used for importing historical orders.
creditCardAuthorizationReferenceNumberIf you authorized the order outside of UltraCart, this is the transaction identifier that UltraCart will use to capture the order.
creditCardAuthorizationAmountIf you authorized the order outside of UltraCart, this is the amount of the authorization.
creditCardAuthorizationDtsIf you authorized the order outside of UltraCart, this is the timestamp of the authorization.
creditCardTypeVisa, MasterCard, AMEX, or DiscoverY - CC Orders
creditCardNumber15 or 16 digit credit card number (spaces or dashes OK)Y - CC Orders
creditCardTokenToken of the credit card (Stripe.com or other tokenizing gateway supported by UltraCart).
creditCardExpirationMonthMonth 1 through 12 (January = 1, December = 12)Y - CC Orders
creditCardExpirationYearFour Digit YearY - CC Orders
creditCardVerificationNumber
rotatingTransactionGatewayCodeThe rotating transaction gateway code to use for this order.
purchaseOrderNumberThe purchase order number.Y- Purchase Order
billToFirstNameY
billToLastNameY
billToTitle
billToCompany
billToAddress1Y
billToAddress2
billToCityY
billToStateY
billToPostalCodeY
billToCountryUse the full spelling that UltraCart uses or provide the ISO-3166 two letter country code.Y
billToDayPhone
billToEveningPhone
email
ccEmail
associatedWithCustomerProfileIfPresentIf this is yes, the order will be associated with the customer profile that has the same email (if it exists) and they will receive their discounted pricing.
:::warning
This will fail if the customer profile has a null or empty string password. Some merchants will create customer profiles with such passwords to prevent actual logins. However, the order creation process does simulate a customer login during the creation and this will fail silently with an invalid password. If you are creating orders and they are not being tied to an existing customer profile when this value is set to 'Y', the customer password may be the issue.
:::
shipToFirstNameY - physical goods
shipToLastNameY - physical goods
shipToTitle
shipToCompany
shipToAddress1Y - physical goods
shipToAddress2
shipToCityY - physical goods
shipToStateY - physical goods
shipToPostalCodeY - physical goods
shipToCountryUse the full spelling that UltraCart uses or provide the ISO-3166 two letter country code.Y - physical goods
shipToPhoneY - physical goods
shipToEveningPhone
shippingMethodIf the order requires shipping then you either need to specify the name of the method in this field, or pass order.leastCostRoute = true and let UltraCart pick the method of shipmentMaybe
arbitraryTaxThe tax charged by the external system
arbitraryTaxableSubtotalThe taxable subtotal the tax was based upon by the external system
arbitraryTaxRateThe tax rate used by the external system
arbitraryShippingHandlingTotalThe shipping/handling cost charged by the external system
taxExempt
giftMessage
deliveryDateIf specified, use the format MM/DD/YYYY
shipOnDate
ipAddressThe IP address of the remote customer (pass 127.0.0.1) if not availableY
shipToResidentialWill default to a business if not specifiedRecommended
mailingListOptInWill default to opted out if not specifiedRecommended
specialInstructionsSpecial instructions from the customer about shipment
screenBrandingThemeCodeThe screen branding theme code to associate the order with.Y
advertisingSource
customField1Custom value such as the DNIS of the caller up to 50 characters.
customField2Custom value up to 50 characters.
customField3Custom value up to 50 characters.
customField4Custom value up to 50 characters.
customField5Custom value up to 50 characters.
customField6Custom value up to 50 characters.
customField7Custom value up to 50 characters.
taxCountyTax county name if the state the order is going to charges tax at the county level.
affiliateIdThe affiliate ID to associate the order with.
giftTrue/False if the order is a gift (defaults to false)
giftEmailEmail to send the gift receipt to.
leastCostRouteEither this needs to be True or the name of a shipping method must be specified in *order.shippingMethod*Maybe
leastCostRouteShippingMethods[]Array of shipping methods to restrict the least cost routing calculation to.
coupons[]Coupons to apply to the order.
items[]Items they orderedY

OrderItem

FieldDescriptionRequired
itemIdItem ID of the itemY
quantityQuantity to purchaseY
arbitraryUnitCostSpecific price for the item.
autoOrderScheduleAuto order schedule if the item is a customer selectable auto order.
upsellFlag indicating the item was an upsell (default to false)
autoOrderLastRebillDateThe last time the order was rebilled. This will determine when the next shipment occurs. This is used for importing historical auto orders from another system.
options[]Options associated with the itemY - if the item has options

OrderItemOption

FieldDescriptionRequired
nameName of the optionY
valueValue of the optionY

ImportResult

FieldDescriptionRequired
successfulTrue/false flag indicating the success of the importY
errors[]Array of one or more errors if the import failed
orderIdUltraCart order ID if the import was successful

CancelResult

FieldDescriptionRequired
successfulTrue/false flag indicating the success of the cancellationY
errors[]Array of one or more errors preventing the cancellation attempt

Retries

If you API call fails, you should code your system to gracefully retry in the future. Give yourself time to review the failure in your logs before hitting the order repeatedly against the system.

Was this page helpful?