curl -X POST \
https://verification.didit.me/v3/session/3fa85f64-5717-4562-b3fc-2c963f66afa6/decision-email-preview/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"new_status": "Approved", "email_language": "en"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
new_status: "Approved",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.PreviewDecisionEmail(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.SessionsPreviewDecisionEmailParams{
NewStatus: "Approved",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsPreviewDecisionEmailParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", SessionsPreviewDecisionEmailParams.builder()
.newStatus(SessionsPreviewDecisionEmailParams.NewStatus.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->previewDecisionEmail('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'new_status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status: "Approved"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.PreviewDecisionEmailAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new SessionsPreviewDecisionEmailParams
{
NewStatus = "Approved",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"recipient": "person@example.com",
"recipient_source": "email_verification",
"sender": "Example App <no-reply@mail.example.com>",
"sender_name": "Example App",
"sender_email": "no-reply@mail.example.com",
"sender_kind": "customer",
"subject": "Your verification has been approved in Example App",
"html": "<!DOCTYPE html><html><body>...</body></html>",
"language": "en",
"will_be_sent": true,
"not_sent_reason": null,
"preview_token": "eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"
}Vista previa del email de decisión: aprobado y rechazado
Didit te muestra el email de aprobado o rechazado que recibe la persona, con destinatario, remitente e idioma, antes de cambiar el estado de la sesión.
curl -X POST \
https://verification.didit.me/v3/session/3fa85f64-5717-4562-b3fc-2c963f66afa6/decision-email-preview/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"new_status": "Approved", "email_language": "en"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
new_status: "Approved",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.PreviewDecisionEmail(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.SessionsPreviewDecisionEmailParams{
NewStatus: "Approved",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsPreviewDecisionEmailParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", SessionsPreviewDecisionEmailParams.builder()
.newStatus(SessionsPreviewDecisionEmailParams.NewStatus.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->previewDecisionEmail('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'new_status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status: "Approved"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.PreviewDecisionEmailAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new SessionsPreviewDecisionEmailParams
{
NewStatus = "Approved",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"recipient": "person@example.com",
"recipient_source": "email_verification",
"sender": "Example App <no-reply@mail.example.com>",
"sender_name": "Example App",
"sender_email": "no-reply@mail.example.com",
"sender_kind": "customer",
"subject": "Your verification has been approved in Example App",
"html": "<!DOCTYPE html><html><body>...</body></html>",
"language": "en",
"will_be_sent": true,
"not_sent_reason": null,
"preview_token": "eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"
}Approved o Declined con send_email: true.
También te indica quién lo recibe, quién lo envía y si al confirmar se envía realmente.
Quién recibe el correo
El correo se envía a la dirección de correo electrónico de la propia persona: la que verificó en un paso de verificación de correo electrónico del flujo o, en su defecto, la indicada encontact_details al crear la sesión.
recipient_source indica cuál de las dos se aplica (email_verification o contact_details).
Cuando la sesión no tiene ninguna dirección de correo electrónico de la persona, recipient, recipient_source y preview_token son cadenas vacías y no se puede enviar ningún correo.
El correo sale del dominio de remitente verificado de tu aplicación cuando se aplica tu configuración de marca blanca (sender_kind: customer) y, en caso contrario, del remitente de Didit (sender_kind: didit).
Si el correo se envía
will_be_sent es true cuando al confirmar el cambio con send_email: true se envía el correo.
Cuando es false, not_sent_reason indica el motivo:
not_sent_reason | Qué significa |
|---|---|
status_unchanged | La sesión ya tiene este estado, así que la actualización no cambia nada ni envía nada. |
notification_emails_disabled | La sesión se creó sin contact_details.send_notification_emails: true, así que no se envía ningún correo de decisión a la dirección indicada en contact_details. |
no_recipient | No se conoce ninguna dirección de la persona. |
sandbox | La sesión es una sesión de sandbox y el destinatario no ha aceptado recibir correos en sandbox, así que el correo solo se simula. Consulta aceptación para recibir correos. |
Confirmar la decisión
Invoca Update Session Status con estos campos:| Campo de Update Session Status | Valor |
|---|---|
new_status | El mismo new_status que previsualizaste |
send_email | true |
email_address | recipient de la previsualización |
email_language | language de la previsualización |
email_preview_token | preview_token de la previsualización |
409 antes de que cambie nada.
Vuelve a previsualizar y confirma con el nuevo comprobante.
Relacionado
- Update Session Status: aprueba o rechaza la sesión y envía el correo.
- Preview Resubmission Email: previsualiza el correo para un reenvío.
- Marca blanca: el remitente y la imagen de marca que usa el correo.
Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Parámetros de ruta
UUID de la sesión de verificación. Acepta ID de sesión tanto de usuario (KYC) como de empresa (KYB).
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
Cuerpo
La decisión cuyo correo electrónico quieres previsualizar.
Approved, Declined "Approved"
Idioma del correo electrónico, con el mismo valor predeterminado que Update Session Status. Un idioma que no se ofrece pasa a inglés; language en la respuesta indica cuál se usa.
"en"
Respuesta
Solo vista previa. La sesión no cambia y no se envía ningún correo electrónico.
La dirección a la que va el correo electrónico. Es una cadena vacía cuando no se conoce ninguna dirección de la persona: en ese caso no se puede enviar ningún correo y preview_token también está vacío. Pásala como email_address al confirmar.
"person@example.com"
De dónde procede recipient. email_verification: la dirección que la persona verificó en un paso de verificación de correo electrónico del flujo. contact_details: la dirección indicada en contact_details al crear la sesión. Una cadena vacía cuando no hay dirección.
email_verification, contact_details, "email_verification"
El encabezado From con el que se envía el correo electrónico.
"Example App <no-reply@mail.example.com>"
La parte del nombre visible de sender.
"Example App"
La parte de dirección de sender.
"no-reply@mail.example.com"
customer: el correo electrónico se envía desde el dominio de remitente verificado de tu aplicación (marca blanca). didit: se envía desde el remitente propio de Didit.
customer, didit "customer"
La línea de asunto exactamente como se envía.
"Your verification has been approved in Example App"
El HTML del correo electrónico exactamente como se envía, con su logotipo incrustado como data URL. Renderízalo en un frame aislado (sandbox), nunca directamente en el DOM de tu aplicación.
"<!DOCTYPE html><html><body>...</body></html>"
El texto del correo electrónico en texto plano, tal como lo conserva el hilo de Mensajes de la persona, para una vista previa compacta (el HTML sigue siendo el correo electrónico que recibe la persona).
"Verification Approved\n\nYour identity has been successfully verified with Acme Pay. No further action is needed on your part."
El idioma en el que está escrito el correo. Inglés (en) cuando el email_language que pediste no está disponible.
"en"
Indica si confirmar el cambio con send_email: true envía este correo electrónico. false cuando not_sent_reason está definido.
true
Por qué la confirmación no enviaría ningún correo electrónico, o null cuando se enviará. status_unchanged: la sesión ya tiene este estado, así que la actualización no cambia nada y no envía nada. notification_emails_disabled: la sesión se creó sin contact_details.send_notification_emails: true, así que no se envía ningún correo de decisión a la dirección indicada en contact_details. no_recipient: no se conoce ninguna dirección de la persona. sandbox: una sesión de sandbox cuyo destinatario no ha aceptado la entrega de correos en sandbox, así que el envío solo se simula.
status_unchanged, notification_emails_disabled, no_recipient, sandbox, null null
Recibo firmado para este correo electrónico exacto, válido durante 15 minutos. Pásalo como email_preview_token a Actualizar el estado de la sesión. Una cadena vacía cuando no hay destinatario.
"eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"