Skip to main content

Create a Payin

Collect funds from a third party (end-user) to be tokenized into stablecoin tokens.

warning

This API spec is a Work in Progress and is subject to change during Q2 2025.

Request

Endpoint

POST /v1/payins
Scope

payins:create

Structure

NameTypeDescription
tokenstringThe stablecoin token to be used for the payin. Valid values are:
COPM for Colombian Pesos.
amountstringThe amount of funds to be collected and tokenized.
payment<payment>Payment object (method, details, etc.)
destination_source_iduuidThe ID of the Customer's wallet to send the stablecoin tokens to.
purposestringA description of why the payin is being made.
final_urlstringURL to redirect the end-user to, after the Payin's payment is completed. ID of the Payin will be appended as a query parameter to this URL.
recipient<recipient>The end-user or ultimate beneficiary who's completing the payment for the payin.
See below for more details.

The payment object

This object is filled depending on the payment method chosen by the Customer.

Required attributes for PSE
NameTypeDescription
methodstringPSE (Pagos Seguros En línea)
bankstringThe bank to be used for the payin.

The recipient object

NameTypeDescription
full_namestringThe full name of the recipient.
legal_identifier_typestringThe type of legal ID of the recipient. Valid values are:
CC for Colombian Cedula de Ciudadanía.
CE for Colombian Cedula de Extranjería.
NIT for Colombian NIT.
PP for Passport.
legal_identifierstringThe legal ID of the recipient.
country_isostringThe ISO 3166-1 alpha-2 country code of the recipient. Valid values are:
CO for Colombia.
emailstringThe email address of the recipient.

Example JSON Request Body

{
"token": "COPM",
"amount": "127000",
"destination_source_id": "2af83836-43ea-407b-ab4e-9c64ee817b28", // Customer's Wallet
"purpose": "Top-up on behalf of John Doe",
"final_url": "https://yoursite.com/payin-completed",
"payment": {
"method": "PSE",
"bank": "BANCO_FALABELLA"
},
"recipient": {
"full_name": "John Doe",
"legal_identifier_type": "CC",
"legal_identifier": "1099075610",
"country_iso": "CO",
"email": "john@example.com"
}
}

Response

The important thing to note in the received response, is the action field, which states the next action to be taken by the end-user completing the Payin.

Currently, the only possible action is to redirect the end-user (recipient) to a URL where they will complete the payment for the Payin. For this, you will need to use the action.redirect_url field, so that the end-user is redirected to such URL.

Structure

NameTypeDescription
outputPayinThe Payin object.
codestringThe response status code text.

The action object

Below are the attributes of the action object when the action type is REDIRECT:

NameTypeDescription
typestringThe type of action to be taken. Currently, the only possible value is REDIRECT.
redirect_urlstringThis URL is the one that you need to redirect the end-user (recipient) to, in order for them to complete the payment.

Once the end-user (recipient) has completed the payment, they will be redirected to the final_url that you provided when creating the Payin.

Example Response

{
"output": {
"id": "ffb50d6c-09f1-4f08-9b91-cbce466bed52",
"action": {
"type": "REDIRECT",
"redirect_url": "https://api.minteo.finance/payins/redirect/ffb50d6c-09f1-4f08-9b91-cbce466bed52"
},
"status": "PENDING",
// ^ Newly returned attributes -----
"destination_source_id": "2af83836-43ea-407b-ab4e-9c64ee817b28", // Customer's Wallet
"amount": "127000",
"token": "COPM",
"purpose": "Top-up on behalf of John Doe",
"final_url": "https://yoursite.com/payin-completed",
"payment": {
"method": "PSE",
"bank": "BANCO_FALABELLA"
},
"recipient": {
"full_name": "John Doe",
"legal_identifier_type": "CC",
"legal_identifier": "1099075610",
"country_iso": "CO",
"email": "john@example.com"
}
},
"code": "CREATED"
}