White Label

The purpose of this guide is to explain how to create a white label transaction in Peru step by step. Monnet has 3 payment methods available in Peru: Online (Internet Banking), Cash (Pay in cash) and Wallet (Digital Wallet).

1200

Currently, the Monnet Payin API has 1 version:

📘

URL

API v3 (for JSON format with an url as response):

Certification:https://cert.monnetpayments.com/api-payin/v3/online-payments

Production: https://payin.api.monnetpayments.com/api-payin/v3/online-payments

V3: Create a Transaction

To create an online payment using Monnet Payments API, you must call the method online-payments as shown in the following example:

🚧

GENERAL 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 and payinCustomerPhone on each case. This four fields must NOT be sent with empty values on any case.


📘

For Card on file and One Shot:

Pay special attention to the following fields: payinProductoDescripcion, which must indicate the user experience (MOBILE or WEB) based on the channel; processorCode (optional), required when distinguishing between different processor configurations and which must contain the correct value, never empty or invalid; payinMerchantOperationNumber, which must be a valid value used to identify payments processed through Yape and required when requesting refunds; subscription.chargeType, required to differentiate the type of charge, considering that the same user may have both charge types enabled (ON_DEMAND and RECURRENT); and payinCustomerPhone, which must contain the customer's mobile phone number in a valid format. All of these fields must always contain valid, non-empty values.

Available Processors

ProcessorProcessorCodeDescription
Yape OCPYape_on_fileAllows merchants to charge users after a one-time consent is stored. Best for recurring or on-demand payments without further user interaction
Yape OSYape_one_shotEnables real-time push payment requests. Each transaction must be explicitly approved by the user in the Yape app. No stored consent

Creation - 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: BankTransfer, Cash, Wallet.
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) (max 250 chars)
payinTransactionErrorURLString (Required)
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 (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/v1/online-payments
Value in prod environment:
https://payin.api.monnetpayments.com/api-payin/v1/online-payments
typePost (For API v3)String (Required)
Value: json
processorCodeString (Optional)
Allowed values: "Yape_on_file", "Yape_one_shot"
Example:: Yape_on_file
subscriptionObject (Condicional)
Only apply for subcriptions workflow.
chargeTypeString (Requiered) Part of subscription object
Allowed values: ON_DEMAND/RECURRENT
Example: ON_DEMAND

Sample request

Pay attention to the field name format — it must be in lowerCamelCase, as shown below:

data: {
  "payinMerchantID": "00",
  "payinAmount": "00.00",
  "payinCurrency": "PEN",
  "payinMerchantOperationNumber": "0000",
  "payinMethod": "BankTransfer",
  "payinVerification": "string",
  "payinCustomerName": "string",
  "payinCustomerLastName": "string",
  "payinCustomerEmail": "[email protected]",
  "payinCustomerPhone": "9862312321",
  "payinCustomerTypeDocument": "DNI",
  "payinCustomerDocument": "00000000",
  "payinRegularCustomer": "string",
  "payinCustomerID": "string",
  "payinDiscountCoupon": "string",
  "payinLanguage": "ES",
  "payinExpirationTime": "000",
  "payinDateTime": "YYYY-MM-DD",
  "payinTransactionOKURL": "https://test.com",
  "payinTransactionErrorURL": "https://test.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/v1/online-payments",
  "typePost": "json"
}

Response

🚧

V3

For V3, the system will return in the response all the necessary information for the merchant to build and customize their own checkout experience. This includes the payment URL and the detailed instructions generated by our system, enabling the merchant to fully control the payment flow and presentation within their own environment.

{
    "url": "https://test.test",
    "payinErrorCode": "0000",
    "payinErrorMessage": "Successfull process"
    "payinTrxOperation": "MONTRX4214729724051762681",
    "experienceVoucher": {
        "paymentCode": "13238534",
        "status": "PENDIENTE_PAGO",
        "expiration": "2024-05-17 18:58:17",
        "merchant": "Monnet WU",
        "amount": "1.00",
        "currencyCode": "PEN",
        "currencyISO": "S/",
        "operationNumber": "42147297",
        "voucherConfig":"{\"bankList\":[{\"bankCode\":\"BCP\",\"nroOrder\":1,\"hexColor\":\"#002D74\",\"paymentMethodInstructions\":[{\"method\":\"BankTransfer\",\"instructions\":[{\"order\":1,\"value\":\"Ingresa a tu Banca Web o aplicación móvil del BCP\"},{\"order\":2,\"value\":\"Selecciona la opción \\\"Pago de Servicios\\\" y busca la empresa/institución \<strong\>Monnet Pagos\</strong\>.\"},{\"order\":3,\"value\":\"Elige el tipo de moneda del servicio e ingresa tu código de pago \<strong\>13238534\</strong\>\"},{\"order\":4,\"value\":\"Valida el monto a pagar y confírmalo\"}]}]},{\"bankCode\":\"IBK\",\"nroOrder\":2,\"hexColor\":\"#00A24F\",\"paymentMethodInstructions\":[{\"method\":\"BankTransfer\",\"instructions\":[{\"order\":1,\"value\":\"Ingresa a tu Banca Web o aplicación móvil de Interbank\"},{\"order\":2,\"value\":\"Elige la opción \\\"Operaciones\\\", luego \\\"Servicios\\\" y finalmente \\\"Instituciones\\\". Busca la empresa \<strong\>Monnet Pagos\</strong\>.\"},{\"order\":3,\"value\":\"Elige el tipo de moneda del servicio e ingresa tu código de pago \<strong\>13238534\</strong\>\"},{\"order\":4,\"value\":\"Selecciona la deuda a pagar y confírmalo\"}]}]},{\"bankCode\":\"BBVA\",\"nroOrder\":3,\"hexColor\":\"#002D74\",\"paymentMethodInstructions\":[{\"method\":\"BankTransfer\",\"instructions\":[{\"order\":1,\"value\":\"Ingresa a tu Banca Web o aplicación móvil del BBVA\"},{\"order\":2,\"value\":\"Selecciona la opción \\\"Pagar Servicio\\\" y elige \\\"Agregar servicio a pagar\\\".\"},{\"order\":3,\"value\":\"Busca el servicio \<strong\>Monnet pagos Soles o Monnet pagos Dolares\</strong\>, ingresa tu código \<strong\>13238534\</strong\>\"},{\"order\":4,\"value\":\"Valida el monto a pagar y confírmalo\"}]}]},{\"bankCode\":\"YAPE\",\"nroOrder\":4,\"hexColor\":\"#680177\",\"paymentMethodInstructions\":[{\"method\":\"BankTransfer\",\"instructions\":[{\"order\":1,\"value\":\"Ingresa a tu app YAPE y selecciona la opción \<strong\>\\\"Yapear servicios\\\"\</strong\>\"},{\"order\":2,\"value\":\"Elige categoría \<strong\>\\\"Compras por Internet\\\"\</strong\> y selecciona \<strong\>\\\"Monnet Pagos\\\"\</strong\>\"},{\"order\":3,\"value\":\"Ingresa el código de pago \<strong\>13238534\</strong\>\"},{\"order\":4,\"value\":\"Selecciona el recibo y ¡listo!\"}]}]}],\"instruction_payment_methods\":[\"BankTransfer\"]}"
    }
}

Request Yape OCP

data: {
  "payinMerchantID": "00",
  "payinAmount": "10.00",
  "payinCurrency": "PEN",
  "payinMerchantOperationNumber": "Merchant-20-00001",
  "payinMethod": "Wallet",
  "payinVerification": "string",
  "payinCustomerName": "string",
  "payinCustomerLastName": "string",
  "payinCustomerEmail": "[email protected]",
  "payinCustomerPhone": "9862312321",
  "payinCustomerTypeDocument": "DNI",
  "payinCustomerDocument": "00000000",
  "payinRegularCustomer": "string",
  "payinCustomerID": "string",
  "payinDiscountCoupon": "string",
  "payinLanguage": "ES",
  "payinExpirationTime": "000",
  "payinDateTime": "YYYY-MM-DD",
  "payinTransactionOKURL": "https://test.com",
  "payinTransactionErrorURL": "https://test.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": "MOBILE",
  "payinProductAmount": "0000",
  "payinProductSku": "string",
  "payinProductQuantity": "0000",
  "URLMonnet": "https://cert.monnetpayments.com/api-payin/v1/online-payments",
  "typePost": "json",
  "processorCode":"Yape_on_file",
  "subscription":
  {
		chargeType:"ON_DEMAND"
	}
}

🚧

V3

For the Yape On File integration, in On_Demand or RECURRENTmode, the system will process the payment request and return a response indicating the result of the operation. The response will either be successful or contain error details, allowing the merchant to manage the confirmation flow, notifications, and payment experience according to their own processes.

Response Yape OCP

{
    "payinErrorCode": "0000",
    "payinErrorMessage": "Successfull process",
    "payinTrxOperation": "MONTRX4214729724051762681"
}

Request Yape one Shot

data: {
  "payinMerchantID": "00",
  "payinAmount": "10.00",
  "payinCurrency": "PEN",
  "payinMerchantOperationNumber": "Merchant-20-00001",
  "payinMethod": "Wallet",
  "payinVerification": "string",
  "payinCustomerName": "string",
  "payinCustomerLastName": "string",
  "payinCustomerEmail": "[email protected]",
  "payinCustomerPhone": "9862312321",
  "payinCustomerTypeDocument": "DNI",
  "payinCustomerDocument": "00000000",
  "payinRegularCustomer": "string",
  "payinCustomerID": "string",
  "payinDiscountCoupon": "string",
  "payinLanguage": "ES",
  "payinExpirationTime": "000",
  "payinDateTime": "YYYY-MM-DD",
  "payinTransactionOKURL": "https://test.com",
  "payinTransactionErrorURL": "https://test.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": "MOBILE",
  "payinProductAmount": "0000",
  "payinProductSku": "string",
  "payinProductQuantity": "0000",
  "URLMonnet": "https://cert.monnetpayments.com/api-payin/v1/online-payments",
  "typePost": "json",
  "processorCode":"Yape_one_shot,
}

🚧

V3

For the Yape One Shot integration, available in MOBILE and WEB experiences, the system will process the payment request and return a response indicating whether the operation was successful or if it contains error details. Depending on the selected experience:

MOBILE: The payment flow will be triggered via a deep link to the Yape app, requiring the user to authenticate and confirm the transaction.

WEB: The payment flow will be initiated from Yape app, allowing the user to complete the transaction inside.

Response Yape One Shot

{
  "payinErrorCode": "0000",
  "payinErrorMessage": "Successfull process",
  "payinTrxOperation": "MONTRX4214729724051762681",
  "deepLinks": [
    {
      "processor": "YapeOS",
      "processoCode": "Yape_one_shot",
      "deepLink": "https://www.yape.com.pe/app/checkout/oneshot/token123",
      "order": 1
    }
  ]
}

Experiencia One Shot

📘

User Experience by Platform

Mobile Experience:
Redirect the user to the processor’s app using the URL (deeplink) provided in the response.

Web Experience:
Display clear instructions to the user so they can complete the payment manually from their processor’s app.

Payment

🚧

payinMerchantOperationNumber

The payinMerchantOperationNumber returned in the response is the unique identifier for the transaction inside of Monnet's system. It is not needed to complete the payment, so it shouldn't be shown to the shopper because it may confuse him.

The following table describes the fields that our system will send to the merchant for creating the payment experience:

FieldDescriptionExample
paymentCodePayment code13238164
statusPayment statusPENDING_PAYMENT
expirationExpiration date and time2024-05-17 18:05:11
merchantMerchant nameMonnet WU
amountPayment amount1.00
currencyCodeCurrency codePEN
currencyISOISO currency codeS/
operationNumberOperation number42144822
voucherConfigVoucher configurationSee details below

VoucherConfig Details

FieldDescriptionExample
bankList / CashList/ WalletListList of available banks,cash and walletsSee details below
instruction_payment_methodsAvailable payment methods["BankTransfer"]

BankList Details

BankCodeInstruction 1Instruction 2Instruction 3Instruction 4
BCPAccess your BCP web banking or mobile appSelect "Payment of Services" and search for the company/institution Monnet Pagos.Choose the currency type and enter your payment code 13238164Validate the amount to be paid and confirm
IBKAccess your Interbank web banking or mobile appSelect "Operations", then "Services", and finally "Institutions". Search for the company Monnet PagosChoose the currency type and enter your payment code 13238164Select the debt to be paid and confirm
BBVAAccess your BBVA web banking or mobile appSelect "Pay Service" and choose "Add service to pay".Search for the service Monnet pagos Soles or Monnet pagos Dólares, enter your code 13238164Validate the amount to be paid and confirm
YAPEAccess your YAPE app and select the option "Yapear services"Choose category "Internet Purchases" and select "Monnet Pagos"Enter the payment code 13238164Select the receipt and you're done!

CashList Details

BankCodeInstruction 1Instruction 2Instruction 3Instruction 4
BCPGo to a BCP agent and indicate you want to pay for the service Monnet PagosIndicate the service currencyProvide your payment code 13246792Provide the total amount to be paid and complete the payment
IBKGo to an Interbank agent and indicate you want to pay for the service Monnet PagosIndicate the service currencyProvide your payment code 13246792Provide the total amount to be paid and complete the payment
BBVAGo to a BBVA agent and indicate you want to pay for the service Monnet PagosIndicate the service currency.Provide your payment code 13246792Provide the total amount to be paid and complete the payment
KSNTGo to a KASNET agent and indicate you want to pay for the service Monnet PagosProvide the Monnet Agent Code 220158Provide your payment code 13246792Provide the total amount to be paid and complete the payment
TAMBOGo to a TAMBO store and indicate you want to pay for the service Monnet PagosIndicate the currency (Payment in soles or Payment in dollars)Provide your payment code 13246792Provide the total amount to be paid and complete the payment

WalletList Details

BankCodeInstruction 1Instruction 2Instruction 3Instruction 4
YAPEAccess your YAPE app and select the option "Yapear services"Choose category "Internet Purchases" and select "Monnet Pagos"Enter the payment code 13238164Select the receipt and you're done