Back to Back

Our Back to Back service enables seamless integration of your payment process by establishing a secure server-to-server connection to our services.

To take advantage of our server-to-server card payment service, it is imperative that your company is PCI certified. We ask that you share your AOC certification with your account manager before beginning the implementation process.

Currently, the Monnet Payin API has 1 version:

📘

URL

API v1 (for JSON format):

Certification:https://sandbox.pci-proxy.com/v1/push/7efeb612e5dda6f1

Production: https://api.pci-proxy.com/v1/push/32dfee54fc151dd3

V1: Payment Processing

To initiate payment processing using the Monnet Payments API, you must call the push method of the endopoint above.

This method receives the payment request and securely channels it through our PCI-compliant processor. The processor handles the transaction authorization flow and returns a response indicating whether the payment has been authorized or declined, based on the applied validation rules and risk parameters.

🌍Countries Available

  • AR Argentina
  • EC Ecuador
  • CL Chile
  • MX Mexico
  • CO Colombia
  • PE Peru

3DS Authentication Flow

In some cases, the payment process may require an additional layer of 3D Secure (3DS) authentication to comply with security standards and enhance transaction protection.

When 3DS is triggered:

  • The API response will include a challenge_url.
  • The user must be redirected to the challenge_url to complete authentication.
  • Once completed, the result is used to finalize the transaction authorization.

This mechanism ensures the cardholder’s identity is validated before completing the transaction, reducing fraud and unauthorized payments.

🚧

IMPORTANT REMINDER:

All fields must be included on request no matter if they are required or optional. Also pay attention on payinCustomerName (fist name), payinCustomerLastName , payinCustomerEmail, payinCustomerPhone, payinMethod, payinPan, payinCvv and payinCardExpiration on each case. This eight fields must NOT be sent with empty values on any case.

Payment Processing - Online

Request

FieldDescription
payinMerchantIDInteger (Required)
Merchant Identifier for the Payin API.
payinAmountDecimal (Required)
The amount of the transaction. Use 2 decimals.
payinCurrencyString (Required, ISO-4217)
The currency of the transaction
Example
PEN
payinMerchantOperationNumberString (Required, max-lenght = 50)
Reference number of the sale.
This value is used to notify Merchants about a payment.
payinMethodString (Required)
Payment Method Identifier for the Payin API.
EX: TCTD, TC, TD.
Full List
payinVerificationString (Required)
HASH SHA512 of:
payinMerchantID+
payinMerchantOperationNumber+
payinAmount+
payinCurrency+
KeyMonnet
payinTransactionOKURLString (Required) (max 250 chars)
URL where the customer will be redirected from the online banking if payment was successful (Must be Https)
payinTransactionErrorURLString (Required) (max 250 chars)
URL where the customer will be redirected from the online banking if payment was wrong.(Must be Https)
payinExpirationTimeInteger (Required)
Time in minutes to expire the token.
Minimum Suggested:
Online: 30 minutes
Cash: 2 hours
payinLanguageString (Required, ISO 639-1)
Example: EN, ES, PT, DE, etc.
payinCustomerEmailString (Required)
Contains the customer's email
payinCustomerNameString (Required)
Contains the customer's first name Max. 30 digit
payinCustomerLastNameString (Required)
Contains the customer's last name. Max. 30 digit
payinCustomerTypeDocumentString (Required)
Contains the customer's type of document. payinCustomerTypeDocument
payinCustomerDocumentString (Required)
Contains the customer's document number
payinCustomerPhoneString (Required)
Contains the customer's mobile number (8-9 digits)
payinCustomerAddressString (Required)
Customer information
payinCustomerCityString (Required)
Customer information
payinCustomerRegionString (Required)
Customer information (Default value is "Lima" unless different value is indicated by integration team)
payinCustomerCountryString (Required)
Customer information
payinCustomerZipCodeString (Required)
Customer information
payinCustomerShippingNameString (Required)
Customer information
payinCustomerShippingPhoneString (Required)
Customer information
payinCustomerShippingAddressString (Required)
Customer information
payinCustomerShippingCityString (Required)
Customer information
payinCustomerShippingRegionString (Required)
Customer information
payinCustomerShippingCountryString (Required)
Customer information
payinCustomerShippingZipCodeString (Required)
Customer information
payinRegularCustomerString (Optional)
Customer information
payinCustomerIDString (Optional)
Customer information (PSPs must complete submerchant name mandatory)
payinDiscountCouponString (Requied)
Customer information
payinFilterByString (Optional)
Customer information
payinProductIDString (Required)
Product information. Can not be empty, could send a default value i.e. "0"
payinProductDescriptionString (Required)
Product information. Can not be empty, could send a default value i.e. "0"
payinProductAmountString (Required)
Product information. Can not be empty, could send a default value i.e. "0"
payinDateTimeString (Required)
Date of the transaction. Can not be empty, could send a default value i.e. current date
payinProductSkuString (Required)
Product information. Can not be empty, could send a default value i.e. "0"
payinProductQuantityString (Required)
Product information. Can not be empty, could send a default value i.e. "0"
URLMonnet (For API v3)String (Required)
Value in cert environment: https://cert.monnetpayments.com/api-payin/v3/online-payments
Value in prod environment:
https://payin.api.monnetpayments.com/api-payin/v3/online-payments
typePost (For API v3)String (Required)
Value: json
payinPanString (Required)
Enter the card number without separators (MAX. 19; MIN. 8) - This option is available exclusively for PCI certified merchants.
payinCvvString (Required)
Enter the card security code (MAX. 4; MIN. 3) - This option is only available for PCI certified merchants.
payinCardExpirationString (Required)
Year and month of card expiration (AAAA-MM) - This option is available exclusively for PCI certified merchants.
installmentsInteger (Optional)
Specifies the number of payment installments. Defaults to a single payment if omitted.

Sample request

Pay attention on fields name format, must be case as shown below:

data: {
  "payinMerchantID": "00",
  "payinAmount": "00.00",
  "payinCurrency": "PEN",
  "payinMerchantOperationNumber": "0000",
  "payinMethod": "TCTD",
  "payinVerification": "string",
  "payinCustomerName": "string",
  "payinCustomerLastName": "string",
  "payinCustomerEmail": "[email protected]",
  "payinCustomerPhone": "0000",
  "payinCustomerTypeDocument": "DNI",
  "payinCustomerDocument": "00000000",
  "payinRegularCustomer": "string",
  "payinCustomerID": "string",
  "payinDiscountCoupon": "string",
  "payinLanguage": "ES",
  "payinExpirationTime": "000",
  "payinDateTime": "YYYY-MM-DD",
  "payinTransactionOKURL": "https://OkUrl.com",
  "payinTransactionErrorURL": "https://ErrorUrl.com",
  "payinFilterBy": "string",
  "payinCustomerAddress": "string",
  "payinCustomerCity": "string",
  "payinCustomerRegion": "string",
  "payinCustomerCountry": "Peru",
  "payinCustomerZipCode": "0000",
  "payinCustomerShippingName": "string",
  "payinCustomerShippingPhone": "0000",
  "payinCustomerShippingAddress": "string",
  "payinCustomerShippingCity": "string",
  "payinCustomerShippingRegion": "string",
  "payinCustomerShippingCountry": "Peru",
  "payinCustomerShippingZipCode": "0000",
  "payinProductID": "0000",
  "payinProductDescription": "string",
  "payinProductAmount": "0000",
  "payinProductSku": "string",
  "payinProductQuantity": "0000",
  "URLMonnet": "https://cert.monnetpayments.com/api-payin/v3/online-payments",
  "typePost": "json",
  "payinPan": "4517721004856075",
  "payinCvv": "123",
  "payinCardExpiration": "2025-07",
  "installments":"3"
}

Standard Response

FieldDescription
urlString
No apply, will return empty
payinErrorCodeString
Payin Error code
Example
00, 99, 999
View Errors Code - payinErrorCode table
payinErrorMessageString
Payin Error description
Example
Transacción creada
payinTrxOperationString
Transaction ID generated by Monnet
Example
MONTRX207249992409275755
errordetailsObject (Will be returned only for TC/TD/ TCTD methods and ARG Country)
See codeErrorTrx, messageErrorTrx
codeErrorTrxString (is part of errordetail object)
Detail Error Code
Example
9090, 9093
View Error Codes - errordetails table
messageErrorTrxString (is part of errordetails object)
Detail Error description
Example
Refer to card issuer's specials conditions
View Error Codes - errordetails table

Response - 3DS challenge

FieldDescription
urlString
No apply, will return empty
payinErrorCodeString
Payin Error code
Example
00, 99, 999
View Errors Code - payinErrorCode table
payinErrorMessageString
Payin Error description
Example
Transacción creada
payinTrxOperationString
Transaction ID generated by Monnet
Example
MONTRX207249992409275755
challengeObject (Will be returned only for TC/TD/ TCTD methods)
See url
urlString (is part of challenge object)
url returned by processor
Example
https://uat-auth.processorCard.com?token=6938098d6fc8454ebc7ddfb69f5432a5&merchantId=a4c8f5f483b74c598f947a7d98bffc75&bin=NDQ1NjUyODA=&callbackUrl=https://cert.payin.experience.monnet.io/api/v1/payin-checkout-experience/common/redirect/url-commerce/KUSHKIPCI?id=MjA4MzQ5NjMsMTUwMDAuMDAsODgx&isSandbox=true%22

🚧

v1

For v1 The service response will confirm whether the transaction was approved or declined.

Sample Success Response

{
    "url": "",
    "payinErrorCode": "00",
    "payinErrorMessage": "Transaccion autorizada",
    "payinTrxOperation": "MONTRX207249992409275755"
}

Standard Sample Error response

{
    "url": "",
    "payinErrorCode": "99",
    "payinErrorMessage": "Transaccion denegada",
    "payinTrxOperation": "MONTRX207249992409275755",
}

Extended Sample Error response

{
    "url": "",
    "payinErrorCode": "99",
    "payinErrorMessage": "Transaccion denegada",
    "payinTrxOperation": "MONTRX207249992409275755",
    "errordetails":{
      "codeErrorTrx":"9090",
      "messageErrorTrx":"Issuer or switch is inoperative"
     }
}

Sample Pending response (3DS Validation)

{
    "url": "",
    "payinErrorCode": "01",
    "payinErrorMessage": "Transaccion Pendiente",
    "payinTrxOperation": "MONTRX2083496325052754650",
    "challenge": {
        "url": "https://uat-auth.processorCard.com?token=6938098d6fc8454ebc7ddfb69f5432a5&merchantId=a4c8f5f483b74c598f947a7d98bffc75&bin=NDQ1NjUyODA=&callbackUrl=https://cert.payin.experience.monnet.io/api/v1/payin-checkout-experience/common/redirect/url-commerce/KUSHKIPCI?id=MjA4MzQ5NjMsMTUwMDAuMDAsODgx&isSandbox=true"
    }
}

Error Codes - payinErrorCode

CodeMessage ErrorDescription
00Transaccion autorizadaConfirmed payment
01Transaccion PendienteTransaction with 3DS challenge
99Transaccion denegadaTransaction was declined
999ErrorGeneric error

Error Codes - errordetails

codeErrorTrxmessageErrorTrx
9001Refer to card issuer
9002Refer to card issuer's special conditions
9003Invalid merchant
9007Pick-up card, special condition
9012Invalid transaction
9013Invalid amount
9014Card number does not exist
9015Issuer or bin number does not exist
9017Customer cancellation
9019Retry Transaction
9025Unable to locate record on file
9030Format error
9039No credit account
9051Not sufficient funds
9052Non-existing current account
9054Expired card
9055Incorrect personal identification number
9057Transaction not permitted to cardholder
9061Effective advance is exceeded
9062Restricted card
9065Merchant has exceeded the number of daily transactions
9075Allowable number of PIN tries exceeded
9078Card not activated
9080Card expiration date invalid
9089Customer info invalid
9092Financial institution or intermediate network facility cannot be found for routing
9093Transaction cannot be completed
9094Duplicate transmission
9096System malfunction
9097Operation Timeout
9099Error
9005Do not honor
9020Invalid response
9031Bank not supported by switch
9034Suspected fraud
9040Requested function not supported
9041Lost card
9043Stolen card, pick-up
9056No card record
9058Transaction not permitted to terminal
9062Restricted card
9066Card acceptor call acquirer's security department
9068Response received too late
9094Duplicate transmission
9090Issuer or switch is inoperative