Endpoint Creación de Retiro

Endpoint Creación de Retiro

POST https://api-stg.tupayonline.com/v3/cashout

Headers

NameTypeDescription

Content-Type*

string

application/json

Payload-Signature*

string

Control signature

Request Body

NameTypeDescription

login*

string

(max length: 32)

Tupay "Retiros" login key, encontrada en el merchant panel bajo Configuración -> API Access.

pass*

string

(max length: 32)

Tupay "Retiros" Passphrase key, encontrada en el merchant panel bajo Configuracion -> API Access.

bank_account*

string

(max length: 20)

CCI - Cuenta Interbancaria, únicamente números.

account_type*

string

(C/S)

"C" Cuenta Corriente (Checking) "S" Cuenta de ahorros (Savings)

amount*

decimal

(hasta 2 decimales)

Monto del retiro en la moneda especificada

currency*

string

(PEN / USD)

Tipo de moneda del Retiro (ISO 4217 format)

document_type*

string

country*

string

(PE)

País del retiro

beneficiary_name

string

(max length: 100)

Apellido del beneficiario

beneficiary_lastname*

string

(max length: 100)

Nombre del beneficiario

comments

string

(max length: 200)

Comentarios

notification_url

string

(max length: 300)

Si la URL de notificación es distinta a la configurada en el merchant panel, se puede configurar con este parámetro

external_id

string

(max length: 100)

ID único para retiros del lado de su lado

document_id

string

(max length: 12)

Numero de Identidad del cliente

{
    "cashout_id": "8405147"
}

Request de ejemplo


{
  "login": "BcWeAdKs",
  "pass": "OGJSucxztCMEEPTdGPaxvdEzjWEM",
  "account_type": "S",
  "amount": "20",
  "bank_account": "00320001310356642337",
  "beneficiary_lastname": "Gonzales",
  "beneficiary_name": "Alex",
  "country": "PE",
  "currency": "PEN",
  "document_type": "DNI",
  "document_id": "71594743",
  "external_id": "65b3d062f0da510ead84f11d",
  "notification_url": "https://tupaypagos.com/0/notify/tupay",
  "comments":"Comentarios adicionales"
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"login\": \"tKoFCFdhgI\",\n    \"pass\": \"7/s!w8@S:hDC2v\",\n    \"external_id\":\"postmanV3Public5321\",\n    \"account_type\": \"DNI\",\n    \"amount\": \"20\",\n    \"bank_account\": \"00320001310356642337\",\n    \"beneficiary_lastname\": \"Gonzales\",\n    \"beneficiary_name\": \"Alex\",\n    \"country\": \"PE\",\n    \"currency\": \"PEN\",\n    \"document_type\": \"DNI\",\n    \"document_id\": \"71594743\",\n    \"notification_url\": \"https://tupaypagos.com/0/notify/tupay\",\n    \"comments\":\"Comentarios adicionales\"\n}");
Request request = new Request.Builder()
  .url("https://api-stg.tupayonline.com/v3/deposits")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Payload-Signature", "af9b8d360fa1adde79db12eb700629a28dcc2b0fb61d7ddbf0b8ecc88d212056")
  .addHeader("Cookie", "GCLB=CLODnJ__1rqLhQE")
  .build();
Response response = client.newCall(request).execute();

Validación de Tipo de Documento de Identidad

Dentro de la API de Tupay, será posible encontrar distintos tipos de documento de identidad, para ello se tiene una validación por la cantidad de dígitos. ,"document_id":"86970864"

document_type (valores)document (Longitud de caracteres)

PASS

Numérico 12 dígitos

RUC

Numérico 11 dígitos

CE

Numérico 9 dígitos

DNI

Numérico 8 dígitos

Código de Errores

Códigos de error de rechazo de retiro.

CodigoNombreDescription

800

ERROR_ACCOUNT_INCORRECT

Cuenta de banco inválida

801

ERROR_ACCOUNT_CLOSED

Cuenta de banco cerrada

802

ERROR_AMOUNT_INCORRECT

Monto invalido

803

ERROR_BANK_INVALID

Bank code inválido

804

ERROR_BANK_BRANCH_INCORRECT

Bank branch inválida

805

ERROR_BENEFICIARY_DOCUMENT_ID_INVALID

Documento del cliente inválido

806

ERROR_BENEFICIARY_NAME_INCORRECT

Nombre del cliente distinto al de la cuenta bancaria

807

ERROR_REJECTED_BY_BANK

Rechazado por el banco

808

ERROR_OTHER

Otro

809

WITHDRAWAL_EXPIRED

Reitro expirado

810

LIMIT_EXCEEDED

Limite excedido

811

RISK_POLICY

Marcado como operación riesgosa por el banco

812

BLOCKED_FROZEN_ACCOUNT

Cuenta bloqueada/congelada

813

DOCUMENT_ACCOUNT_MISMATCH

Documento del cliente no coincide

816

INVALID_ACCOUNT_OR_IFSC_CODE

Cuenta de banco o código IFSC inválidos

818

ACCOUNT_UNABLE

Esta cuenta no puede recibir transferencias

819

INVALID_ACCOUNT_TYPE

Tipo de cuenta inválido

Códigos de error internos de retiro

CodigoDescripción

300

Invalid params + [param name] + [reason]

302

Invalid control string.

303

Invalid bank code

401

Invalid credentials

402

Unregistered IP address (Go to API Access to whitelist the IP in the Merchant Panel)

502

Invalid request body - Please check that the JSON is well formatted

504

User unauthorized due to cadastral situation.

508

Limit exceeded: {TRANSACTION|DAILY|MONTHLY|USER MONTHLY QUANTITY}

509

Cashout not found with this ID

510

Invalid status: cashout is not Pending

511

External ID already used

514

Insufficient funds

515

Invalid user status: {BLACKLISTED|BLOCKED|SUSPENDED}

518

Country not available

519

Merchant not enabled. Contact your Account Manager

524

Invalid Credentials. Contact integration@tupaypagos.com

525

Close loop rejection

526

Invalid currency

533

Invalid Amount. The minimum amount is {currency} {amount} or equivalent in USD

537

Could not make the cashout. Contact integration@tupaypagos.com

538

Invalid account status: {BLACKLISTED}

539

Payout method unavailable. The country and/or bank selected is not available. Please check with your Account Manager

540

Beneficiary email or phone is required

541

email already used by another beneficiary

542

phone already used by another beneficiary

543

must be a valid phone number

702

Could not cancel cashout

703

Could not make the cashout. Contact integration@tupaypagos.com

Última actualización