Create Card Pushpayment (New)
In this documentation you will be able to see all the especifications that are needed to create a Pushpayment or Payouts to cards.
This endpoint is available to all merchants who wish to perform payouts to cards. The service provides a user interface (UI) where the beneficiary can securely enter their card details. To enable this flow, the merchant must specify "accountType": "Card"
in the request. Once the card data is entered, the card is tokenized and the payout order is executed to the corresponding card.
Below is a detailed description of the integration flow that must be followed to correctly implement this service:
Components & Integration Flow

The user clicks "Withdraw funds" on the merchant's site.
The site embeds an iframe pointing to its backend.
The backend requests the iframe from Monnet via REST API, using
api-key
andapi-secret
signed with HMAC-SHA256.Monnet generates the payout and responds with the iframe + JWT for subsequent frontend requests.
The iframe is rendered by the merchant in the frontend and connects via WebSocket to Monnet.
The iframe displays a card tokenization form and sends the token via REST API (using the previously issued JWT).
Monnet sends an Iframe event message indicating process status:
ok
orfail
.
The API keys used in this endpoint are the same as those used for the other endpoints.
Method: POST
URL: https://api.payout.monnet.io/api-payout-plus-real-time/{merchantId}
1717689600
true
false
PER
50001
PEN (Only available PEN or USD)
BJB_dcb7f190-dfe2-4f45-83b1-86345e0b6d1f
https://www.test.com
https://bukwebapp-enterprise-peru.s3.amazonaws.com/1477f69a-81f3-4930-87fd-340c1aa0cb07/generals/icono_grande_menu_lateral/icono_grande_menu_lateral.png?v=1682353126
Time in minutes before the iframe expires
03
Iframe created successfully
Bad request (missing fields or invalid data)
Unauthorized (invalid signature or API key)
Internal server error
POST /api-payout-plus-real-time/{merchantId} HTTP/1.1
Host: api.payout.monnet.io
monnet-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 530
{
"country": "PER",
"amount": 50001,
"currency": "PEN (Only available PEN or USD)",
"orderId": "BJB_dcb7f190-dfe2-4f45-83b1-86345e0b6d1f",
"beneficiary": {
"name": "Juan",
"lastName": "Prueba",
"email": "[email protected]",
"document": {
"type": 4,
"number": 20629932888
}
},
"destination": {
"bankAccount": {
"accountType": 5
}
},
"timeoutUrl": "https://www.test.com",
"merchantLogo": "https://bukwebapp-enterprise-peru.s3.amazonaws.com/1477f69a-81f3-4930-87fd-340c1aa0cb07/generals/icono_grande_menu_lateral/icono_grande_menu_lateral.png?v=1682353126",
"expirationTime": "03"
}
{
"iframe": "text",
"jwt": "text"
}
The parameters embed-jwt and proxy-requests must not both be set to False simultaneously.
Request Example:
{
"country": "PER",
"amount": 50001,
"currency": "PEN",
"orderId": `BJB_${crypto.randomUUID()}`,
"beneficiary": {
"name": "Juan",
"lastName": "Prueba",
"email": "[email protected]",
"document": {
"type": 4,
"number": "20629932888"
}
},
"destination": {
"bankAccount": {
"accountType": 5,
}
},
"timeoutUrl": "https://www.test.com",
"merchantLogo": "https://www.test.com",
"expirationTime": "03"
}
This method is only available for accountType = 5.
Response Example:
Iframe Events
The iframe communicates events using the JavaScript postMessage
system:
{ topic: "event_name", data: {} }
Note: The
data
variable is currently empty, but it may be used in the future for additional information.
Available Events:
topic
Meaning
mps-payout-finished-timeout
Payout timed out (It is triggered after 15 minutes without receiving information)
mps-payout-finished-ok
Payout completed successfully
mps-payout-finished-fail
Payout failed
The iframe events are not exclusive to the information sent via the webhook. The transaction response (status, error messages, reasons) will be received through the webhook.
Last updated