Service Address
/DealerSale/UpdateSale
Request Parameters
DealerSaleAuthentication
Parameter |
Explanation |
DealerCode(string) |
Dealer code issued by the Moka system |
Username (string) |
Api username given by Moka system |
Password (string) |
Api password given by Moka system |
CheckKey (string) |
The control key (DealerCode + "MK" + Username + "PD" + Password) is created by passing this information, combined as a String, through the SHA-256 hash algorithm.
Click here to go to the trial screen. |
DealerSaleRequest
Parameter |
Explanation |
DealerSaleId (integer) |
Not required if SaleCode is submitted. |
SaleCode (string) |
Not required if DealerSaleId is submitted. (Max 100 chars) |
Amount (decimal) |
The amount to be charged on each payment. (Note: it is not the total sales amount!) (For example: It is written in 25.45 format.) |
CustomerCode (string) |
Not required if DealerCustomerId is sent. |
DealerCustomerId (integer) |
CustomerCode gönderilirse zorunlu değil. |
ProductCode (string) |
Not required if CustomerCode is sent. |
DealerProductId (integer) |
Not required if ProductCode is submitted. |
SaleCode (string) |
It is not required, if not sent, a new guid is created. (Max 100 chars) |
Currency (string) |
It is not mandatory, if not sent, TL is accepted. (TL, USD, EUR) |
InstallmentNumber (integer) |
It is not mandatory, if not sent, one shot is accepted. (1..12) |
DealerSaleScheduleId (integer) |
The ID of the time program (If PlanType : 2 is to be given, the system will reset it to zero even if the value is entered in this field, so it will work even if it is not sent at all) |
SaleDate (date) |
Date of sale (in YYYYMMDD format, ex: "20170918") |
BeginDate (date) |
From what date will the payments for this sale begin? (in YYYYMMDD format, ex: "20170918") |
EndDate (date) |
What date will the payments for this sale end? If an end date is not given (an empty string is sent or this field is not sent at all), regular withdrawals will continue until the sale is deleted or the EndDate is updated (in YYYYMMDD format, eg "19901218") |
HowManyTrial (integer) |
Not required, 1 is accepted if not submitted. (How many more days will be attempted if the card is unsuccessful) |
Description (string) |
Not required, description detail field (Max 200 chars) |
PlanType (integer) |
It is not mandatory, it is accepted as 1 if it is not sent (1: Payment steps are created automatically according to the given time schedule, 2: Payment steps must be created manually, 3: Payment steps can be created both manually and automatically.) If the payment step is to be created manually, this service will be DealerSaleScheduleId : 0 pulls to . |
DealerCustomerTypeId (integer) |
If payment is to be made by sending a payment request to the customer, not from a hidden card, the customer type ID is entered in this field. The Dealer-specific Customer type is created by Moka and this Id is forwarded to the dealer who will send the payment request in advance. |
DefaultCard1Token (guid) |
From which card will the payment be made? |
DefaultCard2Token (guid) |
If payment cannot be made from the first card, which card will be tried. |
DefaultCard3Token (guid) |
If the first 2 cards do not work, which card will be tried last. |
Sample Request (JSON)
{
"DealerSaleAuthentication": {
"DealerCode": "xxx",
"Username": "xxx",
"Password": "xxx",
"CheckKey": "aabbccddeeff"
},
"DealerSaleRequest": {
"DealerSaleId": "",
"SaleCode": "satis",
"Amount": "1",
"Currency": "TL",
"InstallmentNumber": "1",
"DealerSaleScheduleId": "1005",
"BeginDate": "20170821",
"EndDate": "20171230",
"HowManyTrial": "1",
"Description": "",
"PlanType": "3",
"DealerCustomerTypeId": "",
"DefaultCard1Token": "{9DE41BB0-E82F-4670-B36B-D71FF27A3111}",
"DefaultCard2Token": "",
"DefaultCard3Token": ""
}
}
Successful Request Result
If the sent request data has been processed successfully in Moka, "Success" information is written in the "ResultCode" field of the return object . The "Data" field contains the result of the returned operation. You can continue your flows by checking the information in "Data" .
Parameter |
Explanation |
DealerSaleId (integer) |
On the Moka side, it is the Unique ID of the sale. |
SaleCode (string) |
On the dealer side, it is the code of the sale. |
CustomerCode (string) |
On the dealer side, it's the customer's code. Not required if DealerCustomerId is sent. |
DealerCustomerId (integer) |
On the Moka side, it is the Unique ID of the customer. Not required if CustomerCode is sent. |
ProductCode (string) |
On the dealer side, it is the code of the product. Not required if DealerProductId is sent. |
DealerProductId (integer) |
On the Moka side, it is the Unique ID of the product. Not required if ProductCode is submitted |
Amount (decimal) |
The amount to be charged on each payment. (Note: it is not the total sales amount!) (For example: It is written in 25.45 format.) |
Currency (string) |
Not mandatory, if not sent, TL is accepted (TL, USD, EUR) |
InstallmentNumber (integer) |
Not mandatory, if not sent, one shot is accepted (1..12) |
DealerSaleScheduleId (integer) |
The ID of the time program (If PlanType : 2 is to be given, the system will reset it to zero even if the value is entered in this field, so it will work even if it is not sent at all) |
SaleDate (date) |
Date of sale (in YYYYMMDD format, ex: "20170918") |
BeginDate (date) |
From what date will the payments for this sale begin? (in YYYYMMDD format, ex: "20170918") |
EndDate (date) |
What date will the payments for this sale end? If an end date is not given (an empty string is sent or this field is not sent at all), regular withdrawals will continue until the sale is deleted or the EndDate is updated (in YYYYMMDD format, eg "19901218") |
HowManyTrial (integer) |
Not required, 1 is accepted if not submitted. (How many more days will be attempted if the card is unsuccessful) |
Description (string) |
Not required, description detail field (Max 200 chars) |
PlanType (integer) |
It is not mandatory, it is accepted as 1 if it is not sent (1: Payment steps are created automatically according to the given time schedule, 2: Payment steps must be created manually, 3: Payment steps can be created both manually and automatically.) If the payment step is to be created manually, this service will be DealerSaleScheduleId : 0 pulls to . |
DealerCustomerTypeId (integer) |
If payment is to be made by sending a payment request to the customer, not from a hidden card, the customer type ID is entered in this field. The Dealer-specific Customer type is created by Moka and this Id is forwarded to the dealer who will send the payment request in advance.. |
DefaultCard1Token (guid) |
From which card will the payment be made? |
DefaultCard2Token (guid) |
If payment cannot be made from the first card, which card will be tried. |
DefaultCard3Token (guid) |
If the first 2 cards do not work, which card will be tried last. |
Successful Result Example
{
"Data": {
"DealerSaleId": 1003,
"SaleCode": "satis",
"DealerCustomerId": 1034,
"CustomerCode": "Customer",
"DealerProductId": 1009,
"ProductCode": "Product01",
"Amount": 1,
"Currency": "TL",
"InstallmentNumber": 1,
"DealerSaleScheduleId": 1005,
"SaleDate": "20170821",
"BeginDate": "20170821",
"EndDate": "20171230",
"HowManyTrial": 1,
"Description": "",
"PlanType": 3,
"DealerCustomerTypeId": 0,
"DefaultCard1Token": "9de41bb0-e82f-4670-b36b-d71ff27a3111",
"DefaultCard2Token": "",
"DefaultCard3Token": ""
},
"ResultCode": "Success",
"ResultMessage": "",
"Exception": null
}
Failed Request Result
If the sent request data could not be processed in Moka streams, the "ResultCode" field of the return object contains one of the error codes in the table below.
When an unexpected software error occurs, EX is written in the "ResultCode" field and the error message (Exception) is displayed in the "ResultMessage" field
In both cases, the "Data" object arrives as null.
ResultCode | Explanation |
DealerSale.UpdateSale.InvalidRequest | The CheckKey may be bad, or the object may be bad, or the JSON may be corrupt |
DealerSale.UpdateSale.SaleCodeOrDealerSaleIdMustBeGiven | Sales code or dealer sales id must be entered. |
DealerSale.UpdateSale.DealerSaleNotFound | No dealers found. |
DealerSale.UpdateSale.SaleCodeDoesntMatchDealerSaleId | Sales code and dealer sales id do not match. |
DealerSale.UpdateSale.EndDatePassed | The payment due date has passed |
DealerSale.UpdateSale.BeginDatePassed | The date on which the payments for the sale began has passed. |
DealerSale.UpdateSale.InvalidCurrencyCode | The currency code is invalid. |
DealerSale.AddSale.InvalidDealerCustomerTypeId | Customer type id is invalid. |
DealerSale.UpdateSale.RequestedBeginDatePassed | The Requested Start Date Has Expired. |
EX | An unexpected error has occurred |
Example of Failed Result
{
"Data": null,
"ResultCode": "DealerSale.UpdateSale.RequestedBeginDatePassed",
"ResultMessage": "",
"Exception": null
}