---
title: "Create payment intent"
method: POST
path: "/payin/intent"
tags: ["payin"]
---

# Create payment intent

`POST /payin/intent`

## Request body

- IntentDataRequest
  - `destination_id` string, uuid, required — Merchant Account ID
  - `external_id` string, required — Id used to track the payin
  - `concept` string — Concept associated with the payment intent. This text will be reflected as a concept in the bank issuing the payment.
  - `currency` string, required — ISO-4217 currency code
  - `amount` number, double, required — String encoded decimal number
  - `payment_method` 'transfer' | 'qr' — **Required for Peru:** must be `"qr"`. Optional for other countries: defaults to `"transfer"`.
  - `customer` union, required
    - Customer
      - `name` string, required
      - `document_type` string, nullable
      - `document_number` string, nullable
      - `email` string, email, nullable
    - string, uuid — customer Id

## Response `201`

Intent Created

- IntentDataResponse
  - `id` string, uuid, required — Identifies a payin intent
  - `customer` PayinCustomer, required
    - `name` string — The customer name
    - `tax_id_type` 'rfc' | 'cnpj' | 'cpf' | 'ruc' | 'curp' | 'le' | 'dni' | 'lm' | 'pas' | 'ce' | 'nit' | 'cc' | 'pa' | 'ti' | 'nuip' | 'ppt' | 'pep' | 'cuil' | 'cuit' | 'other' — The type of tax identification of the customer
    - `tax_id` string — The customer's tax identification number
    - `external_id` string, required — An external ID to identify a user. It can be the merchant's user ID or other tracking ID.
    - `virtual_account` VirtualAccountDetails
      - `account_format` 'clabe' | 'bre_b' | 'alias', required — The type of customer's account
      - `account_number` string, required — The customer account number
      - `name` string — The customer name
      - `active` boolean — Account active flag
      - `branch` string
      - `bank` Bank
        - `code` string — The bank code number
        - `bicfi` string — The bank BICFI code
        - `name` string — The bank name
        - `country` string — ISO-3166-1 Alfa-2 country code
    - `qr_code` QRCodeDetails
      - `emv_code` string, required — The EMV code of the QR code
      - `img` string, required — The image of the QR code
      - `external_link` string — The external link of the QR code
      - `expire_date` string, date-time — The expire date of the QR code

## Other responses

- `400` — Bad Request - Invalid input or malformed data
- `401` — Unauthorized access due to missing or invalid API key
- `403` — Permission denied for the requested action.
- `404` — The requested resource does not exist.
- `405` — The HTTP method used is not allowed for this endpoint.
- `406` — The Accept header cannot be satisfied.
- `415` — The request's content type is not supported.
- `429` — Too many requests, the request has been throttled.
- `500` — A generic internal API error occurred.

---

[API](https://skmtc.net/prometeoapi/apis/account-validation-v2.md) · [All operations](https://skmtc.net/prometeoapi/apis/account-validation-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prometeoapi/account-validation-v2/revisions/9c278fe91cbd/schema)
