Skip to content

Instantly share code, notes, and snippets.

@andidev
Last active May 8, 2020 14:13
Show Gist options
  • Save andidev/88a19d0872968184880f366dabe145f8 to your computer and use it in GitHub Desktop.
Save andidev/88a19d0872968184880f366dabe145f8 to your computer and use it in GitHub Desktop.

OliPay Emida API

Base URL for REST API for testing:

https://apiemida-test.azurewebsites.net/api/

All API calls can made with request method GET or POST. If using get pass data with query parameters. If using POST request data could be passed in body.

All example api calls in this document pass the data with query parameters to they can easily be tested in the browser.

Credentials

To be able to call the REST API, credentials has to be passed as a query parameter code in the url. Credentials for test environment is pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==.

Here is an example of calling the comTest api method with the Gulf credentials

https://apiemida-test.azurewebsites.net/api/commTest?code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

Emida Credentials to test Top Ups

The following Emida credentials can be used to test Top Ups with pinDistSale api method

terminalId=4669182
clerkId=54234
merchantId=310696525579

The API call examples in this document mentioned below will all contain these Emida credentials.

Emida Credentials to test Bill Payments

The following Emida credentials can be used to test Bill Payments with billPaymentUserFee api method

terminalId=9913580
clerkId=59720
merchantId=550304778561

The API call examples in this document mentioned below will all contain these Emida credentials.



API Methods


commTest

request:

-

response:

type Response = {
    status: "OK",
};

example api call:

https://apiemida-test.azurewebsites.net/api/commTest?code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    status: "OK"
}


getAccountBalance

request:

type Request = {
    terminalId: string,
    merchantId: string,
};

response:

type Response = {
    version: string,
    responseCode: string,
    terminalId: string,
    merchantId: string,
    legalBusinessname: string,
    dba: string,
    availableBalance: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/getAccountBalance?terminalId=4669182&merchantId=310696525579&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    version: "01",
    responseCode: "00",
    terminalId: "4669182",
    merchantId: "310696525579",
    legalBusinessname: "OPERACIONES EN LINEA",
    dba: "A1 - OPERACIONES EN LINEA",
    availableBalance: "7601.0"
}


productFlowInfoService

request:

type Request = {
    terminalId: string,
    clerkId: string,
    invoiceNo: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    version: string,
    responseCode: string,
    products: Array<{
        flowType: "A" | "B",
        productCategory: string,
        productSubCategory: string,
        carrierName: string,
        productId: string,
        productName: string,
        productUFee: string,
        currencyCode: string,
        amount: string,
        amountMin: string,
        amountMax: string,
        paymentType: string,
        referenceParameters: {
            reference1: {
                referenceName: string,
                fieldType: string,
                lengthMin: string,
                lengthMax: string,
                prefix: string,
                toolTip: string,
                urlImage: string,
                extraReference1: {
                    mandatory: string,
                    referenceName: string,
                    fieldType: string,
                    lengthMin: string,
                    lengthMax: string,
                    prefix: string,
                    toolTip: string,
                    urlImage: string,
                }
            }
        }
    }>,
};

example api call:

Top Ups (Flow Type A)

https://apiemida-test.azurewebsites.net/api/productFlowInfoService?terminalId=4669182&clerkId=54234&invoiceNo=1&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

Bill Payments (Flow Type B)

https://apiemida-test.azurewebsites.net/api/productFlowInfoService?terminalId=9913580&clerkId=59720&invoiceNo=2&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

Top Ups (Flow Type A)

{
    version: "01",
    responseCode: "00",
    products: [
        {
            flowType: "A",
            productCategory: "RECARGAS",
            productSubCategory: "NA",
            carrierName: "MOVISTAR",
            productId: "5100030",
            productName: "Recarga Movistar T 30",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "30.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/ldid94bzctu2e5k/movistar.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "A",
            productCategory: "Todo en Uno",
            productSubCategory: "NA",
            carrierName: "MOVISTAR",
            productId: "5116100",
            productName: "Internet Movistar 3 dias",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "50.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/ldid94bzctu2e5k/movistar.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "A",
            productCategory: "Tarjetas Regalo",
            productSubCategory: "NA",
            carrierName: "Cinepolis",
            productId: "5100300",
            productName: "Tarjeta Cinepolis 1 Entrada",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "49.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/dyf9znlhl97jtiu/cinepolis.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "A",
            productCategory: "RECARGAS",
            productSubCategory: "NA",
            carrierName: "MOVISTAR",
            productId: "5100110",
            productName: "Recarga Movistar 10",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "10.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/ldid94bzctu2e5k/movistar.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "A",
            productCategory: "RECARGAS",
            productSubCategory: "NA",
            carrierName: "VIRGIN",
            productId: "5120200",
            productName: "Recarga Virgin 20",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "20.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/w6dr77pk0f4qebs/virgin.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "A",
            productCategory: "RECARGAS",
            productSubCategory: "NA",
            carrierName: "Telcel",
            productId: "5100050",
            productName: "Recarga Telcel T 50",
            productUFee: "0.0000",
            currencyCode: "MXP",
            amount: "100.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "10",
                    lengthMax: "10",
                    prefix: "NA",
                    toolTip: "Vigencia 5 dias",
                    urlImage: "https://dl.dropboxusercontent.com/s/hfaiyalg0m1q5nd/telcel.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "NA",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        }
    ]
}

Bill Payments (Flow Type B)

{
    version: "01",
    responseCode: "00",
    products: [
        {
            flowType: "B",
            productCategory: "PAGO SERVICIOS",
            productSubCategory: "Transpote",
            carrierName: "Televia",
            productId: "5121004",
            productName: "Pago TAG TELEVIA 200",
            productUFee: "5.0000",
            currencyCode: "MXP",
            amount: "200.0000",
            amountMin: "0",
            amountMax: "0",
            paymentType: "Totales",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de TAG",
                    fieldType: "NM",
                    lengthMin: "13",
                    lengthMax: "13",
                    prefix: "NA",
                    toolTip: "Numero de Referencia",
                    urlImage: "https://dl.dropboxusercontent.com/s/uv12fujdv3vm4iu/Recibo%20TELEVIA.jpg?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "#",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "B",
            productCategory: "PAGO SERVICIOS",
            productSubCategory: "Television Por Cable",
            carrierName: "SKY",
            productId: "5121003",
            productName: "Pago SkyVTV",
            productUFee: "9.0000",
            currencyCode: "MXP",
            amount: "0",
            amountMin: "5.0000",
            amountMax: "10000.0000",
            paymentType: "Parciales Totales y Vencidos",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Cuenta",
                    fieldType: "NM",
                    lengthMin: "12",
                    lengthMax: "12",
                    prefix: "NA",
                    toolTip: "Numero de cuenta de 12 Digitos",
                    urlImage: "https://dl.dropboxusercontent.com/s/pgsgj00oqfor8qa/Recibo%20SKY.jpg?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "#",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        },
        {
            flowType: "B",
            productCategory: "PAGO SERVICIOS",
            productSubCategory: "Telefono",
            carrierName: "TELMEX",
            productId: "5121001",
            productName: "Pago TELMEX",
            productUFee: "9.0000",
            currencyCode: "MXP",
            amount: "0",
            amountMin: "5.0000",
            amountMax: "10000.0000",
            paymentType: "Parciales Totales y Vencidos",
            referenceParameters: {
                reference1: {
                    referenceName: "Numero de Telefono",
                    fieldType: "NM",
                    lengthMin: "12",
                    lengthMax: "12",
                    prefix: "NA",
                    toolTip: "Numero de Telefono a 12 Digitos",
                    urlImage: "https://dl.dropboxusercontent.com/s/6dwa3xgqk4w3pul/Recibo%20TELMEX.png?dl=0",
                    extraReference1: {
                        mandatory: "NO",
                        referenceName: "NA",
                        fieldType: "NA",
                        lengthMin: "NA",
                        lengthMax: "NA",
                        prefix: "#",
                        toolTip: "NA",
                        urlImage: "NA",
                    }
                }
            }
        }
    ]
}


pinDistSale

request:

type Request = {
    terminalId: string,
    clerkId: string,
    productId: string,
    accountId: string,
    amount: string,
    invoiceNo: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    version: string,
    invoiceNo: string,
    responseCode: string,
    pin: string,
    controlNo: string,
    carrierControlNo: string,
    customerServiceNo: string,
    transactionDateTime: string,
    h2hResultCode: string,
    responseMessage: string,
    transactionId: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/pinDistSale?terminalId=4669182&clerkId=54234&productId=5100030&accountId=1234567890&amount=30&invoiceNo=3&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    version : "01" ,
    invoiceNo : "1" ,
    responseCode : "00" ,
    pin : "1234567890" ,
    controlNo : "71885043" ,
    carrierControlNo : "" ,
    customerServiceNo : "" ,
    transactionDateTime : "08/05/2020 01: 55: 54: 220" ,
    h2hResultCode : "0" ,
    responseMessage : "Validity 30 days. For any questions or clarification dial * 611 from your Movistar or 01-800 8888366 from a landline." ,
    transactionId : "308071900"
}


billPaymentUserFee

request:

type Request = {
    terminalId: string,
    clerkId: string,
    productId: string,
    accountId: string,
    amount: string,
    invoiceNo: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    version: string,
    invoiceNo: string,
    responseCode: string,
    pin: string,
    controlNo: string,
    carrierControlNo: string,
    customerServiceNo: string,
    transactionDateTime: string,
    h2hResultCode: string,
    responseMessage: string,
    transactionId: string,
    amount: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/billPaymentUserFee?terminalId=9913580&clerkId=59720&productId=5121004&accountId=1234567890123&amount=200&invoiceNo=4&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    version : "01" ,
    invoiceNo : "4" ,
    responseCode : "00" ,
    pin : "1234567890123" ,
    controlNo : "137091230" ,
    carrierControlNo : "" ,
    customerServiceNo : "" ,
    transactionDateTime : "08/05/2020 02: 41: 04: 643" ,
    h2hResultCode : "0" ,
    responseMessage : "OPERATION SUCCESSFUL THE PERIOD FOR THE APPLICATION OF THE PAYMENT IS 24 HRS FOR ANY DOUBT CALL 01 800 083 6432 AND 0155 22823810" ,
    transactionId : "308071957" ,
    amount : "205.00"
}


lookupTransactionByInvoiceNo

request:

type Request = {
    terminalId: string,
    clerkId: string,
    invoiceNo: string,
};

response:

type Response = {
    version: string,
    invoiceNo: string,
    responseCode: string,
    pin: string,
    controlNo: string,
    carrierControlNo: string,
    customerServiceNo: string,
    transactionDateTime: string,
    h2hResultCode: string,
    responseMessage: string,
    transactionId: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/lookupTransactionByInvoiceNo?terminalId=9913580&clerkId=59720&invoiceNo=4&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    version: "01",
    invoiceNo: "4",
    responseCode: "00",
    pin: "1234567890124",
    controlNo: "137091230",
    carrierControlNo: "1234567890123",
    customerServiceNo: ",
    transactionDateTime: "2020-05-08 02:41:04.643",
    h2hResultCode: "00",
    responseMessage: "OPERACION EXITOSA\r\nEL PERIODO PARA LA APLICACION DEL PAGO ES DE 24 HRS PARA CUALQUIER DUDA LLAME A AL 01 800 083 6432 Y 0155 22823810",
    transactionId: "308071957"
}


submitPaymentNotificationUtil

request:

type Request = {
    terminalId: string,
    clerkId: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    responseCode: string,
    responseMessage: string,
    banks: Array<{|
        id: string,
        description: string,
    |}>,
    depositTypes: Array<{|
        bankId: string,
        code: string,
        depositTypeId: string,
        description: string,
        transferAccount: string,
        fieldLength: string,
        fieldType: string,
        fieldPrefix: string,
        imageName: string,
    |}>,
    invoiceTypes: Array<{|
        code: string,
        description: string,
    |}>,
    properties: Array<{|
        code: string,
        description: string,
    |}>,
};

example api call:

https://apiemida-test.azurewebsites.net/api/submitPaymentNotificationUtil?terminalId=9913580&clerkId=59720&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    responseCode: "00",
    responseMessage: "Success",
    banks: [],
    depositTypes: [],
    invoiceTypes: [
        {
            code: "NINV",
            description: "No Invoice",
        },
        {
            code: "INV",
            description: "Billing",
        }
    ],
    properties: [
        {
            code: "ACCOUNT_TYPE_TRANSFER_LABEL_2",
            description: "Account Types",
        },
        {
            code: "PAYMENTREQUEST_MESSAGE_1",
            description: "The payment application is from Monday to Friday from 9 am to 6 pm and Saturdays from 9 am to 1 pm, within the next hour from the moment of receiving the payment report. this schedule will be applied the next business day.",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_LABEL_1",
            description: "Account Type",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_OPTIONS_2",
            description: "KEY = INTERBANK CLABE, PERSONAL = ACCOUNT NUMBER",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_CLAVE_MESSAGE_1",
            description: "The account number must be a minimum of 6 Digits",
        },
        {
            code: "PAYMENTREQUEST_MESSAGE_2",
            description: "The payment application is from Monday to Friday from 9 am to 6 pm and Saturdays from 9 am to 1 pm, within the next hour from the moment of receiving the payment report. Deposits made on Holidays and outside these hours they will be applied to the following business day ",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_CLAVE_LENGTH",
            description: "6",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_CLAVE_MESSAGE_2",
            description: "The account number clabe must be a minimum of 18 Digits",
        },
        {
            code: "ACCOUNT_TYPE_TRANSFER_OPTIONS_1",
            description: "KEY = Account Key, PERSONAL = Personal Account",
        }
    ]
}


submitPaymentNotificationExt

request:

type Request = {
    terminalId: string,
    clerkId: string,
    amount: string,
    documentNumber: string,
    documentDate: string,
    bankCode: string,
    invoiceType: string,
    depositCode: string,
    accountType: string,
    transferAccount: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    responseCode: string,
    responseMessage: string,
    additionalInfo: string,
    paymentRequestId: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/submitPaymentNotificationExt?terminalId=4669182&clerkId=54234&amount=1000&documentNumber=T12345679&documentDate=12/04/2017&bankCode=5000005&invoiceType=INV&depositCode=TRANSOB&accountType=PERSONAL&transferAccount=123456&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    responseCode: "24",
    responseMessage: "ERROR WHEN CREATING REQUEST",
    additionalInfo: "Bank code, Deposit code or invoice type are invalids"
}


getActiveMessage

request:

type Request = {
    terminalId: string,
    clerkId: string,
    marca: string,
    invoiceNo: string,
    language?: "1" | "2", // Default is "1" english, "2" is spanish 
};

response:

type Response = {
    responseStatus: string,
    responseCode: string,
    responseMessage: string,
};

example api call:

https://apiemida-test.azurewebsites.net/api/getActiveMessage?terminalId=4669182&clerkId=54234&marca=terrecargamos&invoiceNo=5&code=pO2M8MNcqLkd8hOIIcribo3ewVklet5x5Wf5jVJfh0OaSWHYDeHjog==

example response:

{
    responseStatus: "0",
    responseCode: "1520",
    responseMessage: "There's no new messages"
}

OliPay Emida REST API mappings to Emida Saop API

Some of the input/output parameter names are different in the OliPay Emida REST API. This is to simplify usage of the REST API since the Emida Soap API is very inconsistent with their namings. This document is suppose to show the differences between the API input/output names.

Main changes are described in text here:

  • All input/output parameter names starts with a lower cased character since this is a REST defacto standard and cause Emida sometimes start their names with upper cased letters and sometimes with lower cased letter.
  • SNAKE_CASE replaced with camelCase
  • Parameter siteId changed to terminalId since Emida uses both of the names to refer to terminalId.
  • Parameter version has been removed in the REST API and is hard coded in the REST API implementation instead since there is no need to pass different version values for the REST API user.
  • Parameter TRANSACTION changed to transactionId since Emida uses both of the names to refer to transactionId.
  • Parameter languageOption and languageId changed to language since Emida uses all names to refer to language.
  • Parameter ResultCode changed to h2hResultCode since Emida uses both of the names to refer to h2hResultCode.
  • Parameter AdditionalInfo for response of operation SubmitPaymentNotificationExt is missing in emida docs
  • There is no need to pass different version values for the REST API user.
  • All language parameters has been made optional with a default value "1" english translation. So in the rest api if the langauge is omitted the language will default english.

Exact changes are shown in each api method section below, changes to the parameter names are commented on the same libe showing the mappings. Larger changes follow the following pattern:

    emida soap parameter name -> rest parameter name            // comment on change

Lower cased name changes however are only commented like this

    rest parameter name            // capital letter lower-cased

API Methods


commTest

Nothing much really changed here. Emida actually responses with a string saying "OK" while the rest api returns an object with a property called status set to "OK"

request:

-

response:

type Response = {
    status,
};


getAccountBalance

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    merchantId
};

response:

type Response = {                                       
    version                                         // capital letter lower-cased        
    responseCode                                    // capital letter lower-cased                                        
    siteId -> terminalId                            // siteId changed to terminalId            
    merchantId                                        
    legalBusinessname                                      
    dba                                      
    availableBalance                                        
};


productFlowInfoService

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    invoiceNo
    language 
};

response:

type Response = {
    version                                         // capital letter lower-cased        
    responseCode                                    // capital letter lower-cased                                        
    products: Array<{                               // capital letter lower-cased
        flowType                                    // capital letter lower-cased                                        
        productCategory                             // capital letter lower-cased                   
        productSubCategory                          // capital letter lower-cased                           
        carrierName                                 // capital letter lower-cased           
        productId                                   // capital letter lower-cased       
        productName                                 // capital letter lower-cased           
        productUFee                                 // capital letter lower-cased           
        currencyCode                                // capital letter lower-cased               
        amount                                      // capital letter lower-cased             
        amountMin                                   // capital letter lower-cased       
        amountMax                                   // capital letter lower-cased       
        paymentType                                 // capital letter lower-cased           
        referenceParameters: {                      // capital letter lower-cased   
            reference1: {                           // capital letter lower-cased               
                referenceName                       // capital letter lower-cased                   
                fieldType                           // capital letter lower-cased               
                lengthMin                           // capital letter lower-cased               
                lengthMax                           // capital letter lower-cased               
                prefix                              // capital letter lower-cased           
                toolTip                             // capital letter lower-cased           
                URLImage -> urlImage                // URL abrevation lower-cased                 
                extraReference1: {                  // capital letter lower-cased                       
                    mandatory                       // capital letter lower-cased                   
                    referenceName                   // capital letter lower-cased                       
                    fieldType                       // capital letter lower-cased                   
                    lengthMin                       // capital letter lower-cased                   
                    lengthMax                       // capital letter lower-cased                   
                    prefix                          // capital letter lower-cased               
                    toolTip                         // capital letter lower-cased               
                    URLImage -> urlImage            // URL abrevation lower-cased                   
                }
            }
        }
    }>,
};


pinDistSale

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    productId
    accountId
    amount
    invoiceNo
    languageOption -> language                      // Changed to language
};

response:

type Response = {
    version                                         // capital letter lower-cased
    invoiceNo                                       // capital letter lower-cased                   
    responseCode                                    // capital letter lower-cased                           
    pin                                             // capital letter lower-cased       
    controlNo                                       // capital letter lower-cased                   
    carrierControlNo                                // capital letter lower-cased                                   
    customerServiceNo                               // capital letter lower-cased                                   
    transactionDateTime                             // capital letter lower-cased                                       
    H2H_RESULT_CODE -> h2hResultCode                // SNAKE_CASE replaced with camelCase                               
    responseMessage                                 // capital letter lower-cased                               
    transactionId                                   // capital letter lower-cased                           
};


billPaymentUserFee

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    productId
    accountId
    amount
    invoiceNo
    languageOption -> language                      // Changed to language
};

response:

type Response = {
    version                                         // capital letter lower-cased                
    invoiceNo                                       // capital letter lower-cased                    
    responseCode                                    // capital letter lower-cased                            
    pin                                             // capital letter lower-cased        
    controlNo                                       // capital letter lower-cased                    
    carrierControlNo                                // capital letter lower-cased                                    
    customerServiceNo                               // capital letter lower-cased                                    
    transactionDateTime                             // capital letter lower-cased                                        
    H2H_RESULT_CODE -> h2hResultCode                // SNAKE_CASE replaced with camelCase                                
    responseMessage                                 // capital letter lower-cased                                
    TRANSACTION -> transactionId                    // SNAKE_CASE replaced with camelCase and added suffix Id
    amount                                          // capital letter lower-cased                                    
};


lookupTransactionByInvoiceNo

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    invoiceNo
};

response:

type Response = {
    version                                         // capital letter lower-cased               
    invoiceNo                                       // capital letter lower-cased                   
    responseCode                                    // capital letter lower-cased                           
    PIN -> pin                                      // SNAKE_CASE replaced with camelCase       
    controlNo                                       // capital letter lower-cased                   
    carrierControlNo                                // capital letter lower-cased                                   
    customerServiceNo                               // capital letter lower-cased                                   
    transactionDateTime                             // capital letter lower-cased                                       
    ResultCode -> h2hResultCode                     // ResultCode replaced with h2hResultCode                       
    responseMessage                                 // capital letter lower-cased                               
    transactionId                                   // capital letter lower-cased                           
};


submitPaymentNotificationUtil

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    languageOption -> language                      // Changed to language
};

response:

type Response = {
    responseCode                                    // capital letter lower-cased                           
    responseMessage                                 // capital letter lower-cased                           
    banks: Array<{|                                 // capital letter lower-cased                
        id                                          // capital letter lower-cased        
        description                                 // capital letter lower-cased                
    |}>,                                            // capital letter lower-cased        
    depositTypes: Array<{|                          // capital letter lower-cased                        
        bankId                                      // capital letter lower-cased            
        code                                        // capital letter lower-cased            
        depositTypeId                               // capital letter lower-cased                    
        description                                 // capital letter lower-cased                
        transferAccount                             // capital letter lower-cased                    
        fieldLength                                 // capital letter lower-cased                
        fieldType                                   // capital letter lower-cased                
        fieldPrefix                                 // capital letter lower-cased                
        imageName                                   // capital letter lower-cased                
    |}>,                                            // capital letter lower-cased        
    invoiceTypes: Array<{|                          // capital letter lower-cased                        
        code                                        // capital letter lower-cased            
        description                                 // capital letter lower-cased                
    |}>,                                            // capital letter lower-cased        
    properties: Array<{|                            // capital letter lower-cased                        
        code                                        // capital letter lower-cased            
        description                                 // capital letter lower-cased                
    |}>,                                            // capital letter lower-cased        
};


submitPaymentNotificationExt

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    amount
    documentNumber
    documentDate
    bankCode
    invoiceType
    depositCode
    accountType
    transferAccount
    languageId -> language                          // Changed to language
};

response:

type Response = {
    responseCode                                    // capital letter lower-cased    
    responseMessage                                 // capital letter lower-cased        
    additionalInfo                                  // additionalInfo is missing in emida docs, capital letter lower-cased        
    paymentRequestId                                // capital letter lower-cased            
};


getActiveMessage

request:

type Request = {
    version -> *removed*                            // removed
    terminalId
    clerkId
    marca
    invoiceNo
    languageOption -> language                      // Changed to language
};

response:

type Response = {
    responseStatus                                  // capital letter lower-cased
    responseCode                                    // capital letter lower-cased
    responseMessage                                 // capital letter lower-cased
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment