What's new?
Release Notes
All releases in 2017
3.15 - Released: 30.11.2017
Changed:
- Limited "careOf" field in Address object to 50 characters
Fixed:
- Correct 400.XXX error code returned when "Quantity" in Order object is set to null
3.14 - Released: 21.11.2017
Added:
- Added "Read More" links to available installment plans
Changed:
- Relaxed e-mail validation rules
Fixed:
- Limited field StreetNumberAdditional in Address object to 10 characters
- Added error message to Authorize response when SSN is missing
- Unified fieldReferences for error messages
- Changed Authorize call to return 5 separate error messages instead of one
3.13.1 - Released: 17.11.2017
Fixed:
- Fixed rounding of price data
3.13 - Released: 10.11.2017
Fixed:
- Corrected error code when sending in empty checkoutId to Authorize request
- Technical refactoring
3.12 - Released: 09.11.2017
Added:
- MerchantImageUrl added to the Order
- Consolidated invoice added
- Refunding with a negative total amount should not be allowed
- Field references added to MissingValue, IncorrectFormat and ValueOutOfLegalRange error messages
Changed:
- Payment methods response updated to respond more detailed installment info
- Gross and Net amount requirements and calculation unified across requests
- Performance improvements
- 404 error responses are removed
- Whitespaces are not causing validation errors for Identification numbers
Fixed:
- Now returning 400.xxx error, if the order cannot be cancelled because the order is already partially or fully capured
- Now returning 400.xxx error, if the order cannot be cancelled because the balance of the linked order is 0
- Now returning 400.xxx error, if the order cannot be cancelled because the specified capture has higher amount than the reserved amount
- Now returning 400.002 error, if the Identification code is not specified
- Rating failure response fixed
- First name in Authorize request is not replaced with empty string
- Missing identification code error message fixed
- Missing email returns 400.002 (MissingValue) error code instead of 400.004 (InvalidFormat)
- Email validation rules changed, single digit domain names are allowed
3.11 - Released: 26.10.2017
Added:
- Added new configuration for future Risk Providers
- Authentication handling for new risk provider
- Implementation of Authorize call for new risk provider
- Exposing field length requirements for Developers Portal
- Allowing negative amount Authorize calls for payment type "ConsolidatedInvoice"
- Allowing full capture for negative authorizations, when payment type is "ConsolidatedInvoice"
- Implemented birth date extraction from SSN in Sweden
- Support for decimals in FastTrack Services AddEventToAccount quantity
- Changed the implementation of invoice date mappings
Changed:
- Made mobile phone field optional in Authorize
- Made mobile phone field optional in AvailablePaymentMethods
- Technical refactoring
Fixed:
- Showing fieldReference in FastTrack Services ApplyForAccountCredit when customer.firstName is longer than 50 characters
- Returning 400.XXX error when order cancellation fails
- Now returning business error when using installment profile number which doesn't exist
- Now returning correct error message when using installment profile which doesn't exist
- Allowing no body to be sent into VoidAuthorizationRequest
3.10 - Released: 01.09.2017
Changed:
- Technical refactoring
3.9 - Released: 29.08.2017
Changed:
- Provide additional metrics for monitoring
Fixed:
- Refunding invoice when customer already paid
- Updated integration with risk providers
3.8 - Released: 03.08.2017
Changed:
- Changed how "CreditNoteNumber" is generated during Refund operation
Fixed:
- Restricting sending enum values
- Wrong error codes in authorize method fixed
3.7 - Released: 15.08.2017
Added:
- New field "ConsolidatedInvoiceAllowed" added to the payment method "ConsolidatedInvoice"
Changed:
- Handling of international data in JSON REST API
Fixed:
- Consolidated Invoice created if payment type is "ConsolidatedInvoice"
- 400.127 error code instead of "RefundAmountTooHigh"
- Refunding regular invoice with total negative amount is not allowed
- Length validation for "DirectDebitSwift" field
- Length validation for "ItemDescription" field
- "System.NullReferenceException" in RSS21 risk provider fixed
- REST API returns correct header on incorrect request
- "ChannelType" errors in OrderRisk fixed
3.6 - Released: 11.07.2017
Added:
- Voucher number" field added to Refund
3.5 - Released: 28.06.2017
Changed:
- Unified behavior of TotalNetAmount for installments and invoices
- Installment period is now optional
3.4 - Released: 15.06.2017
Changed:
- Increased InvoiceNo length in CaptureRequest to 19
- Updated developer portal with new error codes
- Removed ssn from getOrder response
- customerLookup now returns textual representation of country code
- The way system errors are logged
- The length of ParentTransactionReference is now 50 in authorize, available, capture, void and refund requests
Fixed:
- Fixed a case where Authorize Request received an empty Response
3.3 - Released: 08.06.2017
Added:
- Implement new risk provider
Changed:
- Invalid risk provider credentials error now returns 500
- Behavior of 400.099 that it is always BusinessError
- Updated Developer portal tutorial page with new response code structures
- Allow negative grossUnitPrice on capture for consolidated invoice
Fixed:
- InstallmentPlans now return an error if amount is 0
- Finnish SSN validation failed with small letters
- A memory leak in eCommerceWebApi
- Available payment methods now follow account profile usage
- Available installment plans don't take the amount into account
3.2 - Released: 22.05.2017
Changed:
- Changed branching strategy
Fixed:
- Fixed usage of InstallmentDetails
- Fixed null reference exception in PaymentRequest
3.1 - Released: 20.03.2017
Added:
- "directDebit" field to AvailablePaymentMethodResponse indicating when Invoice is available with Direct Debit
- Functionalities for sending error messages to Slack
- New Relic monitoring
- Sending Google Analytics data to Phoenix
- Sanoma ledger functionality
- ProductType to GetAvailablePaymentMethods
- ProductType to AuthorizePayment
- ProductType to Capture
- ProductType to Void
- "additionaData" field in AuthorizePayment
- Costcenter to CaptureRequest
- Relocated CustomerIndividualScore to CustomerRisk
- MarketPlace element to AvailablePaymentMethods additionalData element
- AdditionalData element to AvailablePaymentMethods
- Age validation for CustomerCheck requests
- InvoiceDate to CaptureRequest.References
- Increased logging for Update database updater
- partnerData to additional data in availablePaymentMethods
- partnerData to additional data in authorizePayments
- 400.002 (MissingValue) customer facing message
- 400.003 (ValueOutOfLegalRange) customer facing message
- 400.004 (IncorrectFormat) customer facing message
- parentTransactionRefelence to Order objec
- marketPlaceSellerId to orderItem
- customerIndividualScire to orderRisk
- ParentTransactionReference to Authorize request
- ParentTransactionReference to Available Payments request
- ParentTransactionReference to Refund request
- 400.101 (with field reference order.netAmount) is now returned if netAmount does not match quantity * netUnitPrice over orderLines
- 400.102 (with field reference order.grossAmount) is now returned if grossAmount does not match quantity * grossUnitPrice over orderLines
- 400.100 (with field reference order.orderNumber) is now returned if "order number is already in use for client"
- 400.103 (with field reference customer.customerNumber) is now returned if customer number differs from CustomerNo in checkout
- 400.109 (with field reference contractID) is now returned when invalid contract id is given
- 400.115 (with field reference none) is now returned when reservation is not found
- 400.131 (with field reference none) is now returned when order is not found
- 400.132 (with field reference none) is now returned when capture is not found
- 400.117 (with field reference none) is now returned if Full Capture can not be done in full amount
- 400.120 (with field reference none) is now returned if Invoice has already been created
- 400.119 (with field reference orderItems) is now returned if no order items are provided when capture number is set
- 400.108 (with field reference payment.type) is now returned if invalid payment method is selected
- 400.111 (with field reference none) is now returned when installment profile plans are missing
- 400.112 (field reference: none) is now returned when monthly installment amount is invalid
- 400.113 (field reference: none) is now returned when duration is sent as amount
- 400.114 (field reference: payment.account.AccountProfileNo) is now returned when invalid AccountProfileNo is sent
- "readMore"field in installmentInfo response
- partnerData field added to additionalData
Changed:
- Internal customer lookup logic for all markets
- Updated all customer-facing messages
- Behavior of Bank detail saving for DirectDebit Agreements
- Payment method not supported responds now with 400 error
- Customer not found in external database now forwards the error from external system
- Wrong payment method returns now a 400 error
- When grossUnitPrice is missing in partial capture a 400 error is returned
- If contract already exists in system 400.136 error is now returned
- If address is not found 400.135 error is now returned
- If technical timeout occurs, a 500 error is returned
- Empty request now gets 400.001 response code
- "phoneNumber" field changed to "mobilePhone"
- Remove SSN from customerLookup response
- If order is not found a 400.131 error is returned
- If customer is not found internally using identification number the "address not found" error will be returned
- Mapping of Error Codes
- Currency, Country and Language enums
- Rounding for AvailablePaymentMethodsResponse to use only 2 decimal places
- StreetNumberAdditional length changed from 5 to 50
- How system logs different errors
- CustomerCategory behavior to facilitate "Company" value
- Allow empty GroupId in OrderItem
- Checkout process when customer is not found
- Naming of fields in ValidateBankAccount (bankCode, bankAccount)
- Payment items are now required for debit invoice
- Rename invoiceCampaignNumber to campaignNumber in CaptureReques
- Rename merchantTransactionId to parentTransactionId in CaptureRequest
- Relocated CustomerIndividualScore to CustomerRisk
- Removed IntermediarId from AdditionalData
- DevPortal updated with new eCommerceServices.Contracts nuspec package
- Made payment items required for partial refund
- Allow full refund with empty payment items
- Updated response codes for reservation not found
- Update response code for reservation missing checkout
- Updated response code for capture number not specified
- Updated response code for positive gross or net unit price
- Update response code for reservation mismatch
- Update response code for refund amount is higher than invoice balance
- Updated response code for invoice(s) not found
- Updates for void response codes and automated tests
- Updated response codes for getCapture
- Update response code for invoice not found
- Updated response code for missing order items
- Order number missing response is now 400.002
- PhoneNumber field changed to MobilePhone
- IdentificationNumber has been removed from customer lookup response
- Cleanup job for non-captured reservations is now configurable between 30-1095 instead of fixed 90 days
- Make payment items required for partial refund
- Allow full refund with empty payment items
Fixed:
- Error on high volumes of requests (@100/sek per client)
- Performance improvements
- Error if no CountryCode present in AvailablePaymentMethods request
- System.NullReferenceException in GetRiskProvider
- Exception in AuthorizePayment when calculatingTax fields
- CreateContract now returns Error 500 instead of SystemError
- Finnish SSN validation updated to check for length
- DeleteShippingDetails returned incorrect response code when capture was not found
- GetAllShipments returned incorrect response code when capture was not found
- GetShipments returned incorrect response code when capture was not found
- OrderManagementOperationBase returned "InvoiceLinesMissing" instead of 400.xxx
- "OrderItemsMissingResponse" code instead of 400.xxx
- NotImplementedException in Denmark for Required Customer field
- Forward contractDate and InvoiceDate to proper places in backend system
- DirectDebit does not return error anymore when client settings allow it without contract
- Updated Developer Portal to reflect TotalGrossAmounnt and grossUnitPrice requirement on OrderItems
- Empty LookupCustomer request give Internal Server Error
- Authorize no longer returns [] when outcome is rejected
- No access to service no longer gives code 0 but now gives 401