H Honor
ES
DiDi finanzas

Documentos

Proporciona pautas de integración, documentación de API, instrucciones de prueba y otra información necesaria a lo largo del proceso de integración

2.2 Prescreen

2.2 Prescreen

  • Ruta: /external/prescreen/V1

  • Método: POST

  • Descripción DE LA API: El socio puede usar esta API para verificar si el usuario puede usar el método de pago DiDi Paga Después.Si se devuelve el resultado = ÉXITO, significa que el método de pago DiDi Paga Después puede utilizarse para este usuario.Esto es para que los usuarios comprueben previamente si tienen permiso para usar DiDi BNPL.

Mensaje de solicitud

Encabezados de solicitud

Nombre del campo Descripción del campo Valor del parámetro Presente(Obligatorio / Opcional / Condicional) Observaciones
Content-Type Tipo de contenido aplicación/json Obligatorio
Authorization Este es el valor de autenticación de identidad del socio. Portador {ACCESS-TOKEN} Obligatorio Para obtener detalles, consulte "Parte 2 Configuración de socio de DiDi BNPL y Env. Configuración".
El socio puede obtener el valor ACCESS-TOKEN de la llamada Token API.
Cuando el acceso expire, vuelva a llamar a la API de token para obtener el nuevo token de acceso.
X-Paylater-Request-Id UUID UUID.
Ejemplo: 550e8400-e29b-41d4-a716-446655440000
Obligatorio Cadena UUID V4 obligatoria. DiDi rechazará las solicitudes con un formato no válido.

Cuerpo de la solicitud

Nombre del campo Tipo Descripción del campo Presente(Obligatorio / Opcional / Condicional) Observaciones
partnerUid Cadena ID de usuario del lado del comerciante Obligatorio Esperar UID del lado del comerciante
partnerOrderId Cadena ID de orden de pago del lado del comerciante (clave Idempotent). Obligatorio Clave IDempotente.
El Número de serie de pago único generado por el comerciante para esta transacción específica.
⚠️ CRÍTICO PARA OPERACIONES:
Este ID debe ser explícitamente visible y se puede buscar dentro de su Servicio de Atención al Cliente (CS) y Sistema de gestión de pedidos (OMS).
Servirá como el número de referencia principal para la reconciliación multiplataforma, la solución de problemas y el manejo de las quejas de los clientes.
NO utilice ID de backend ocultos ni claves primarias de bases de datos, ya que esto causará una fricción severa y altos costos de comunicación durante las escalaciones de CS.
partnerOrderAmount Largo Monto del pedido Obligatorio El importe real del pago después de aplicar todos los descuentos para comerciantes.
Cálculo: La cantidad bruta debe ser multiplicada por 100. (NO pase números de punto flotante/decimales).
Moneda y Unidad: Debe corresponder al Peso Mexicano (MXN). La unidad requerida es centavos (la unidad monetaria mínima).
Ejemplo: Para un valor de pedido de 99,99 MXN, el valor debe ser transmitido 9999.
currency Cadena Moneda Obligatorio MXN México
extendInfo Objeto Información ampliada Obligatorio
deviceInfo Obligatorio
deviceId Cadena ID del dispositivo Condicional Identificador de dispositivo utilizado para la prevención del fraude y la evaluación del riesgo crediticio.
  • Lógica de negocios:

  • SioperateSource = APP: Obligatorio. Debe pasar el identificador de hardware nativo real (por ejemplo, IDFA/IDFV para iOS o Android ID/OAID para Android).

  • SioperateSource = WEB/WAP: Opcional.
androidId Cadena Deviceid androide Opcional Utilizado para la identificación del dispositivo Android.
iosId Cadena IOS deviceid Opcional IDFA/idfv
Utilizado para la identificación del dispositivo IOS.
gps Cadena Coordenadas de latitud y longitud Opcional Las coordenadas geográficas en tiempo real del usuario final en el proceso de pago.
ip Cadena IP pública Obligatorio La dirección IP pública del usuario final en la caja, crucial para la validación regional antifraude.
Lógica de negocios:
-If operateSource = APP: La dirección IP pública actual del dispositivo móvil del consumidor.
-If operateSource = WEB/WAP: La dirección IP pública actual del ordenador/navegador del consumidor.
CRÍTICO:
NO pase la IP de su servidor backend o las IP internas de LAN (por ejemplo, 127.0.0.1, 192.168.x. X), ya que esto causará un rechazo inmediato contra el fraude.
operateSource Cadena Fuente de operación (página web/APP) Obligatorio Canal o contexto de plataforma donde el usuario final inicia la transacción.
Formato y reglas: debe coincidir con uno de los siguientes valores de enumeración exactos:
-WAP: Entorno de navegador móvil (por ejemplo, el usuario abre Shein a través de Safari o Chrome en un teléfono móvil sin descargar la aplicación nativa).
-WEB: entorno de escritorio o navegador de PC.
-APP: Cliente de aplicación móvil nativa.
lang Cadena Idioma Opcional Valor de enumeración:
en-US
es-MX
Si no se pasa o si el valor pasado no es válido, el valor predeterminado es es-MX.
userInfo Objeto Información del usuario Obligatorio
partnerEmail Cadena Correo electrónico de usuario del lado del comerciante Condicional Normalmente, este campo es opcional.
Este campo será obligatorio solo cuando su empresa:
  • No puede proporcionar el partnerPhone debido al diseño de su plataforma, y

  • Obtenga la aprobación del equipo de soporte de DiDi BNPL para eliminar el partnerPhone EN LA API Crear orden de pago.
partnerPhone Cadena Número de teléfono móvil del usuario Obligatorio Este es un campo obligatorio. La información de campo debe ser:
1. Mejor escenario: el número de teléfono del último Inicio de sesión del usuario: El mejor y el más fácil que puede proporcionar.

2. Opción alternativa: El NÚMERO DE TELÉFONO introducido por el usuario al cambiar su teléfono vinculado.

3. Opción inferior: el número de teléfono proporcionado originalmente durante el registro del usuario: si se cambió este número de teléfono, actualice el nuevo para DiDi.

Este número de teléfono es uno de los campos más importantes para la transacción BNPL. Este campo es obligatorio.
P.D. Si su empresa no puede proporcionar este campo a DiDi debido a alguna razón específica, comuníquese con el equipo de soporte de DiDi BNPL para explicar la razón.
phoneCountryCode Cadena Código de país del número de teléfono móvil del usuario Obligatorio Las mismas reglas que el campo "partnerPhone".
regTime Cadena Tiempo de Registro del usuario Condicional La marca de tiempo cuando el usuario final registró su cuenta en la plataforma del comerciante.
Formato: ISO 8601 aaaa-MM-dd'T'HH: mm:ss.SSSXXX. El Desplazamiento de zona horaria es estrictamente obligatorio.
Ejemplo: 2025-12-08T01:11:33.000-06:00
Reglas:
Este campo es obligatorio si newUserFlag está ausente.
Este campo es opcional si newUserFlag está presente.
newUserFlag Cadena Nuevo usuario o no Condicional La bandera que indica si el usuario final es Un usuario recién registrado en la plataforma del comerciante en los últimos 30 días.
Formato y reglas: Valor de cadena de enumeración:
-1: usuario Nuevo (registrado en los últimos 30 días).
-0: Usuario existente (registrado hace más de 30 días).
Reglas:
Este campo es obligatorio si regTime está ausente.
Este campo es opcional si regTime está presente.
nickName Cadena Usuario apodo Opcional
userLevel Cadena Calificación del usuario Opcional La clasificación completa del usuario o nivel de lealtad en la plataforma del comerciante.
Cadena de texto libre que representa el sistema interno de clasificación de usuarios del comerciante.
Ejemplo: VIP_LEVEL_3 o PLATINUM_MEMBER o HIGH_CREDIT_SCORE u otros.
smeTag Booleano Etiqueta de pequeña empresa Opcional Valores de enumeración: true / false / null
Verdadero-La empresa es una pequeña o micro empresa.
Falso: La empresa no es una pequeña o micro empresa.
NULL-No hay datos disponibles.
lastSuccInstrument Cadena Último método de pago exitoso Opcional El instrumento de pago utilizado por el usuario (en la plataforma del comerciante) durante su última transacción exitosa.
fees List <Objeto> Elemento de gasto Opcional Una lista detallada de los gastos adicionales de los pedidos (por ejemplo, envío, impuestos) utilizados para la visualización detallada y la auditoría.
type Cadena Tipo Opcional La clasificación de la categoría específica del artículo de la tarifa, actualmente restringida al valor de la enumeración POSTAGE-POSTAGE (tarifa de envío/entrega).
Enum:
ENVÍO-ENVÍO
amount Largo Cantidad de dinero Opcional El valor financiero exacto del artículo de tarifa, representado como un entero largo en la unidad más pequeña de la Moneda (e.Por ejemplo, centavos por MXN.
additionalRiskData Cadena Datos adicionales de riesgo Opcional Datos de riesgo adicionales
marketingFlag Cadena Bandera de marketing Opcional Indicador que indica si se aplican a esta transacción promociones de marketing, descuentos o campañas.
1 - Marketing
0 - No es Marketing
items Lista de objetos Información de las mercancías Opcional Si hay varias cantidades de la misma SKU, sólo es necesario cambiar la cantidad.
categoryId Cadena Identificador único para el catálogo de mercancías Opcional
categoryName Cadena Nombre del catálogo de mercancías Opcional
skuId Cadena Identificador único para SKU de mercancías Opcional
skuName Cadena Nombre del SKU de las mercancías Obligatorio Mercancías SKU nombre
goodsName Cadena Campo de visualización visible por el usuario Opcional Nombre de las mercancías
unitPrice Largo Precio unitario real (después del descuento) Opcional La unidad de cantidad es el céntimo. Por ejemplo, si es 99,99 pesos, el valor aquí debe ser 9999.9. Debe transmitirse si existe.
skuCurrency Cadena Moneda Opcional Estándar ISO 4217-México MXN
quantity Entero Número Opcional
pictureUrl Cadena Imagen URL de las mercancías Opcional
shippingAddress Cadena Dirección de recepción Opcional A la dirección de la calle
shippingAddress2 Cadena Dirección de recepción Opcional A dirección de unidad
shippingPostcode Cadena Código postal del recibo Opcional
shippingPhoneNumber Cadena Recibir el número de teléfono móvil Opcional
shippingPhoneCountryCode Cadena Código de país del número de teléfono móvil de recepción Opcional cincuenta y dos
seller Objeto Información del vendedor Opcional
sellerId Cadena ID de vendedor único Condicional El identificador único del vendedor real o sub-comerciante/tienda que realiza la transacción.
-Comerciantes modelo de plataforma (por ejemplo, mercados): Estrictamente obligatorio (M) para rastrear subtiendas individuales.
Comerciantes de venta directa al consumidor (DTC) /venta directa: Opcional (O).
sellerName Cadena Nombre del vendedor Opcional
sellerRegTime Cadena Tiempo de registro del vendedor Opcional Patrón: aaaa-MM-dd 'T'HH:mm:ss.SSSXXX Ej., '2025-12-08T01:11:33.000-06:00' El desfase horario es obligatorio.
mccCode Cadena Código de categoría de comerciante Condicional Tipo de negocio mercantil.
-Comerciantes modelo de plataforma (por ejemplo, mercados): Estrictamente obligatorio (M) para rastrear subtiendas individuales.
Comerciantes de venta directa al consumidor (DTC) /venta directa: Opcional (O).
type Cadena Tipo de las mercancías Opcional Valor de enumeración:
PHYSICAL_GOOD
VIRTUAL_BUENO
metadata Cadena Información de metadatos Opcional DiDi Paga Después proporcionará esta información a través de la consulta y devolución de llamada de pedido
Formato JSON

Ejemplo de solicitud

{
  "partnerUid": "01213121131",
  "partnerOrderId": "ea7ed173-xxxx-11ef-b32d-ca3c6358d263",
  "partnerOrderAmount": 5000,
  "currency": "MXN",
  "extendInfo": {
    "deviceInfo": {
      "deviceId": "abcdef123456",
      "androidId": "4af23b10c29d58e1",
      "iosId": "E621E1F8-C36C-495A-93FC-0C247A3E6E5F",
      "gps": "19.4326,-99.1332",
      "ip": "187.137.42.155",
      "operateSource": "APP",
      "lang": "es-MX"
    },
    "userInfo": {
      "partnerEmail": "test@crecmexico.org",
      "partnerPhone": "5522612379",
      "phoneCountryCode": "+52",
      "regTime": "2025-07-12T10:25:06.509-06:00",
      "newUserFlag": "0",
      "nickName": "3wqqw121",
      "userLevel": "VIP_LEVEL_3",
      "smeTag": true,
      "lastSuccInstrument": "SPEI"
    },
    "fees": [
      {
        "type": "POSTAGE-POSTAGE",
        "amount": 100
      }
    ],
    "additionalRiskData": "{}",
    "marketingFlag": "1"
  },
  "items": [
    {
      "categoryId": "mx_mp_001",
      "categoryName": "Electronics",
      "skuId": "mx_mp_phone_001",
      "skuName": "Smartphones",
      "goodsName": "Premium Smartphone 128GB",
      "unitPrice": 4900,
      "skuCurrency": "MXN",
      "quantity": 1,
      "pictureUrl": "<https://img.merchant.com/p/phone001.jpg>",
      "shippingAddress": "Calle la asomada",
      "shippingAddress2": "47 Planta 2",
      "shippingPostcode": "54715",
      "shippingPhoneNumber": "5522612379",
      "shippingPhoneCountryCode": "52",
      "seller": {
        "sellerId": "11312131",
        "sellerName": "test-sell",
        "sellerRegTime": "2024-10-14T02:30:39.000-06:00",
        "mccCode": "5732"
      },
      "type": "PHYSICAL_GOOD"
    }
  ],
  "metadata": "{}"
}

Mensaje de respuesta

Encabezado de respuesta

Nombre del campo Descripción del campo Valor del parámetro Presente(Obligatorio / Opcional / Condicional) Observaciones
Content-Type Tipo de contenido aplicación/json Obligatorio

Cuerpo de la respuesta

Nombre del campo Tipo Descripción del campo Presente(Obligatorio / Opcional / Condicional) Observaciones
code Cadena Código de retorno Obligatorio Valor de enumeración:
SUCCESS
FAILED
RATE_LIMIT
INVALID_TOKEN
message Cadena Descripción del código de respuesta Obligatorio
error Objeto Error Opcional
errorCode Cadena Código de error Opcional Enumeración:
Excepción de parámetro IllegalParams
GeneralError-Error interno
PaylaterRuleRechazado-Rechazado por las reglas de Paylater
RiskRuleRechectado-Rechazado por las reglas de control de riesgos
Repago atrasado: el usuario tiene pagos atrasados
CreditNotEnough-Límite de crédito insuficiente
PaylaterRuleDisatisy-No satisface los requisitos de la regla Paylater
RiskControlRechazado: rechazado por el control de riesgos
errorMessage Cadena Descripción del código de error Opcional

Ejemplo de respuesta

{
  "code": "SUCCESS",
  "message": "SUCCESS",
  "error": null
}
Se copió correctamente.