HomeGuidesAPI ReferenceChangelogDiscussions
GuidesiMIS ProfessionaliMIS EnterpriseClient SupportLog In
Discussions

Discussions

Ask a Question
Back to All

Adding to Open Credit

I'm using ComboOrder to apply a payment to the invoice and would like to apply any remaining balance left over as an Open Credit. Below is just a sample.

{ "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts", "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2, "ExtensionData": { "$type": "System.Runtime.Serialization.ExtensionDataObject, System.Runtime.Serialization" } }, "Order":{}, "Invoices": { "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Commerce.DataContracts.LegacyInvoiceSummaryData, Asi.Contracts", "BillingLogKey": "2ed92ffa-514f-47d7-b255-9ab78642dbb9", "LockedEffectiveDate": "2025-02-01T00:00:00", "InvoiceId": "CASH:97189:2ED92FFA-514F-47D7-B255-9AB78642DBB9-1", "FinancialEntity": { "$type": "Asi.Soa.Commerce.DataContracts.FinancialEntitySummaryData, Asi.Contracts", "FinancialEntityId": "ABC", "Name": "ABC Corp", "EntityCode": "ABC", "IsDefault": true }, "InvoiceNumber": "Cash-97189", "InvoiceDate": "2023-11-21T00:00:00", "BillToParty": { "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts", "CityName": "Halifax", "CountryName": "United States", "CountrySubEntityName": "MA", "Email": "", "Phone": "", "PartyId": "97189", "Id": "97189", "UniformId": "ee90f1b0-8005-4edf-ae60-5fae724ea53d", "Status": { "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts", "PartyStatusId": "A", "Name": "Active", "Description": "Active" }, "Name": "John Doe", "Sort": "DOE, JOHN", "IsMarkedForDelete": false }, "SoldToParty": { "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts", "CityName": "Halifax", "CountryName": "United States", "CountrySubEntityName": "MA", "Email": "", "Phone": "", "PartyId": "97189", "Id": "97189", "UniformId": "ee90f1b0-8005-4edf-ae60-5fae724ea53d", "Status": { "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts", "PartyStatusId": "A", "Name": "Active", "Description": "Active" }, "Name": "John J. Doe", "Sort": "DOE, JOHN", "IsMarkedForDelete": false }, "Description": "Renewal Fees", "InvoicePurpose": 9, "InvoiceAmount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 1075.44, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "OriginalInvoiceAmount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 1075.44, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "PaymentAmount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 310.2000, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "PendingPaymentAmount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "AdjustmentAmount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "Balance": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 765.24, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "PreviousBalance": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "IsAmountDefined": true }, "AdditionalAttributes": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "BillingMemberType", "Value": "M" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "SourceSystem", "Value": "DUES" } ] } } ] }, "Payments": { "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts", "$values": [{ "$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts", "Amount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 1000.00, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2, "ExtensionData": { "$type": "System.Runtime.Serialization.ExtensionDataObject, System.Runtime.Serialization" } }, "IsAmountDefined": true }, "PaymentToken": "", "PaymentTokenSummary": "", "PaymentMethod": { "$type": "Asi.Soa.Commerce.DataContracts.PaymentMethodData, Asi.Contracts", "Name": "PayRoll Deduction", "PaymentMethodId": "PAYROLL", "PaymentType": "Cash", "Message": "Cash" }, "PayorParty": { "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts", "PartyId": "97189" }, "ReferenceNumber": "123456789", "Message": "Cash", "Note":"Notes" }] } }

When I POST to ComboOrder I get the following 400 validation error.

{"$type":"Asi.Soa.Core.DataContracts.ValidationResultsData, Asi.Contracts","Errors":{"$type":"Asi.Soa.Core.DataContracts.ValidationResultDataCollection, Asi.Contracts","$values":[{"$type":"Asi.Soa.Core.DataContracts.ValidationResultData, Asi.Contracts","Message":" \r\n Object reference not set to an instance of an object."}]},"Warnings":{"$type":"Asi.Soa.Core.DataContracts.ValidationResultDataCollection, Asi.Contracts","$values":[]}}

If I change the payment to below the balance of the invoice it works. Does the credit need to be its own separate call?

I found a resolution in the post call to /api/ComboOrder/

The below body request adds $15 to the open credit balance.

{ "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts", "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "Order": { "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts", "BillToCustomerParty": { "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts", "PartyId": "51498" } }, "Invoices": { "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts", "$values": [] }, "Payments": { "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts", "Amount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 15.00, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2, "ExtensionData": { "$type": "System.Runtime.Serialization.ExtensionDataObject, System.Runtime.Serialization" } }, "IsAmountDefined": true }, "PaymentMethod": { "$type": "Asi.Soa.Commerce.DataContracts.PaymentMethodData, Asi.Contracts", "Message": "CASH", "Name": "Main Checking Account", "PaymentMethodId": "CASH", "PaymentType": "CASH" }, "PayorParty": { "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts", "PartyId": "51498" } } ] } }

ο»Ώ

Contact us
Copyright Β© Advanced Solutions International, All rights reserved.