Crear una transferencia

Request para crear una transferencia

Para crear una transferencia se necesita hacer un request al recurso Payment Intent

curl --request POST "https://api.fintoc.com/v1/payment_intents" \
-- header 'Authorization: sk_live_0000000000000000' \
-- header 'Content-Type: application/json' \
--data-raw '{
  "amount": 1000,
  "currency": "CLP",
  "recipient_account": {
    "holder_id": "111111111",
    "number": "123123123",
    "type": "checking_account",
    "institution_id": "cl_banco_de_chile"
  }
}'
const fetch = require('node-fetch');

const payment_intent = {
  amount: 1000,
  recipient_accout: {
    holder_id: "111111111",
    number: "123123123",
    type: "checking_account",
    institution_id: "cl_banco_de_chile"
  },
}

fetch('https://api.fintoc.com/v1/payment_intents', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
      'Authorization': 'sk_live_000000000000'
    },
    body: JSON.stringify(payment_intent),
  },
)
import requests

payment_intent = {
  'amount': 1000,
  'currency': 'clp',
  'recipient_account': {
    'holder_id': '111111111',
    'number': '123123123',
    'type': 'checking_account',
    'institution_id': 'cl_banco_de_chile'
  }
}

headers = {
  'Accept': 'application/json', 'Authorization': 'sk_live_000000000000'
}

r = requests.post(
  'https://api.fintoc.com/v1/payment_intents',
  data=payment_intent,
  headers=headers
)
require 'net/http'
require 'uri'
require 'json'

payment_intent = {
  amount: 1000,
  currency: 'clp',
  recipient_account: {
    holder_id: '111111111',
    number: '123123123',
    type: 'checking_account',
    institution_id: 'cl_banco_de_chile'
  }
}

header = {
  Accept: 'application/json', Authorization: 'sk_live_000000000000'
}

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = payment_intent.to_json

response = http.request(request)

En el request se deben enviar 3 datos importantes: amount, currency y recipient_account

Parámetro

Ejemplo

Explicación

amount

10000

monto por el que se quiere hacer la transferencia

currency

CLP

tipo de moneda por el que se quiere hacer la transferencia

recipient_account

Objeto Account

cuenta que recibirá la transferencia

El recipient_account se conforma por 4 atributos: holder_id, number, type y institution_id.

Parámetro

Ejempllo

Explicación

holder_id

193426816

RUT de la cuenta

number

1836027172

Número de la cuenta

type

checking_account

Tipo de cuenta. Corresponde a checking_account para cuenta corriente, y sight_account para cuenta vista o chequera electronica.

institution_id

cl_banco_de_chile

Banco que recibe la transferencia. Puedes ver los códigos de banco en Fintoc acá.

Respuesta al crear una transferencia

El request del Payment Intent cuando recién fue creado responde con un objeto muy parecido al siguiente:

{
  "id": "pi_BO381oEATXonG6bj",
  "object": "payment_intent",
  "amount": 1000,
  "currency": "CLP",
  "widget_token": "pi_BO381oEATXonG6bj_sec_a4xK32BanKWYn",
  "status": "created",
  "reference_id": null,
  "recipient_account": {
    "holder_id": "183917137",
    "number": "123456",
    "type": "checking_account",
    "institution_id": "cl_banco_de_chile"
  },
  "sender_account": null,
  "created_at": "2021-10-15T15:23:11.474Z",
}

Los valores de los atributos reference_id y sender_account se reciben como null. A medida que la transferencia se realiza estos datos se van poblando.

Cuando una transferencia se completa exitosamente se obtiene el reference_id que equivale al número de operación que le asigna el banco a la transferencia.

📘

Widget Token

Este es el único momento en que se recibe el widget token. Este es el token que se debe utilizar para instanciar el cliente del widget.