{"id":2043,"date":"2026-04-11T02:35:50","date_gmt":"2026-04-11T01:35:50","guid":{"rendered":"https:\/\/dpd.ma\/api-docs\/"},"modified":"2026-05-12T15:04:58","modified_gmt":"2026-05-12T14:04:58","slug":"api-docs","status":"publish","type":"page","link":"https:\/\/dpd.ma\/fr\/api-docs\/","title":{"rendered":"Api Docs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2043\" class=\"elementor elementor-2043 elementor-1164\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8091edd e-con-full e-flex e-con e-parent\" data-id=\"8091edd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fba05a2 elementor-widget elementor-widget-html\" data-id=\"fba05a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n\r\n<html lang=\"en\">\r\n<head><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@400;500;600;700;800&amp;display=swap\" rel=\"stylesheet\"\/>\r\n<meta charset=\"utf-8\"\/>\r\n<meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\"\/>\r\n<title>DPD Trust API Documentation<\/title>\r\n\r\n<style>\r\n:root{\r\n  --dpd-navy:#0A2540;\r\n  --dpd-dark:#071A2E;\r\n  --dpd-aurora:#15C6E2;\r\n  --dpd-yellow:#FED303;\r\n  --dpd-bg:#f6f8fb;\r\n  --dpd-card:#ffffff;\r\n  --dpd-text:#1f2d3d;\r\n  --dpd-muted:#64748b;\r\n  --dpd-border:#e2e8f0;\r\n  --dpd-code:#061525;\r\n  --dpd-radius:18px;\r\n  --dpd-shadow:0 16px 44px rgba(10,37,64,.07);\r\n  --dpd-soft:0 8px 24px rgba(10,37,64,.05);\r\n}\r\n\r\n*{margin:0;padding:0;box-sizing:border-box;}\r\nhtml{scroll-behavior:smooth;}\r\nbody{\r\n  font-family:\"Space Grotesk\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif !important;\r\n  line-height:1.65;\r\n  color:var(--dpd-text);\r\n  background:\r\n    radial-gradient(circle at 8% 4%, rgba(21,198,226,.10), transparent 26%),\r\n    radial-gradient(circle at 90% 8%, rgba(254,211,3,.08), transparent 28%),\r\n    var(--dpd-bg);\r\n  min-height:100vh;\r\n}\r\nbody *{font-family:\"Space Grotesk\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif !important;}\r\ncode,.code-block,.code-block pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace !important;}\r\n\r\n.shell{\r\n  max-width:1280px;\r\n  margin:0 auto;\r\n  padding:34px 22px 70px;\r\n  width:100%;\r\n}\r\n\r\n.layout{\r\n  display:grid;\r\n  grid-template-columns:280px minmax(0,1fr);\r\n  gap:28px;\r\n  align-items:start;\r\n}\r\n\r\n.sidebar{\r\n  position:sticky;\r\n  top:22px;\r\n  max-height:calc(100vh - 44px);\r\n  overflow:auto;\r\n  background:rgba(255,255,255,.94);\r\n  border:1px solid rgba(10,37,64,.08);\r\n  border-radius:22px;\r\n  box-shadow:var(--dpd-soft);\r\n}\r\n.sidebar::-webkit-scrollbar{width:10px;}\r\n.sidebar::-webkit-scrollbar-thumb{background:rgba(10,37,64,.16);border-radius:999px;border:3px solid transparent;background-clip:padding-box;}\r\n\r\n.side-header{\r\n  padding:18px 20px 14px;\r\n  border-bottom:1px solid rgba(255,255,255,.08);\r\n  background:linear-gradient(135deg,var(--dpd-dark),var(--dpd-navy));\r\n  border-radius:22px 22px 0 0;\r\n}\r\n.side-header h2{font-size:13px;color:#fff;letter-spacing:.08em;text-transform:uppercase;font-weight:700;}\r\n.search{padding:16px 18px;border-bottom:1px solid var(--dpd-border);}\r\n.search input{\r\n  width:100%;\r\n  padding:13px 14px;\r\n  border-radius:14px;\r\n  border:1px solid var(--dpd-border);\r\n  outline:none;\r\n  background:#fff;\r\n  color:var(--dpd-text);\r\n  font-size:14px;\r\n}\r\n.search input:focus{border-color:rgba(21,198,226,.75);box-shadow:0 0 0 4px rgba(21,198,226,.14);}\r\n.side-nav{padding:12px 8px 18px;}\r\n.side-group{padding:10px 12px 7px;font-size:11px;color:var(--dpd-muted);text-transform:uppercase;letter-spacing:.09em;font-weight:700;}\r\n.side-nav a{\r\n  display:flex;align-items:center;gap:10px;margin:5px 6px;padding:11px 12px;\r\n  border-radius:14px;text-decoration:none;color:var(--dpd-navy);transition:.2s ease;border:1px solid transparent;font-size:14px;font-weight:500;\r\n}\r\n.side-nav a:hover{background:rgba(21,198,226,.10);border-color:rgba(21,198,226,.22);transform:translateX(2px);}\r\n.side-nav a.active{background:linear-gradient(135deg,rgba(21,198,226,.14),rgba(254,211,3,.12));border-color:rgba(21,198,226,.28);color:var(--dpd-navy);}\r\n.dot{width:8px;height:8px;border-radius:999px;background:var(--dpd-aurora);box-shadow:0 0 0 4px rgba(21,198,226,.14);flex:0 0 auto;}\r\n.dot.green{background:var(--dpd-yellow);box-shadow:0 0 0 4px rgba(254,211,3,.18);}\r\n\r\nmain{min-width:0;}\r\n.section{\r\n  background:var(--dpd-card);\r\n  border:1px solid rgba(10,37,64,.08);\r\n  border-radius:24px;\r\n  padding:34px 38px;\r\n  margin-bottom:24px;\r\n  box-shadow:var(--dpd-soft);\r\n}\r\n.section h2{\r\n  color:var(--dpd-navy);margin-bottom:16px;padding-bottom:16px;border-bottom:3px solid rgba(21,198,226,.22);\r\n  letter-spacing:-.035em;line-height:1.15;font-size:clamp(26px,2.8vw,36px);font-weight:700;\r\n}\r\n.section h3{color:var(--dpd-dark);margin:28px 0 12px;font-size:21px;line-height:1.25;font-weight:700;letter-spacing:-.02em;}\r\np{color:var(--dpd-text);font-size:16px;}\r\n\r\n.endpoint{\r\n  background:linear-gradient(135deg,rgba(21,198,226,.10),rgba(254,211,3,.08));\r\n  border-left:4px solid var(--dpd-aurora);padding:18px;margin:20px 0;border-radius:18px;border:1px solid rgba(21,198,226,.20);\r\n}\r\n.method{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-weight:800;font-size:12px;margin-right:10px;letter-spacing:.04em;}\r\n.method.post{background:var(--dpd-yellow);color:var(--dpd-dark);}\r\n.method.get{background:var(--dpd-aurora);color:var(--dpd-dark);}\r\n\r\n.code-block{\r\n  background:var(--dpd-code) !important;\r\n  color:#dbeafe !important;\r\n  padding:20px;border-radius:18px;overflow:auto;margin:18px 0;font-size:14px;\r\n  border:1px solid rgba(21,198,226,.20);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);\r\n}\r\n.code-block pre{margin:0;color:#dbeafe !important;white-space:pre;}\r\n.code-block code{color:#dbeafe !important;}\r\n\r\n.table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--dpd-border);border-radius:18px;background:#fff;margin:18px 0;}\r\n.table-wrap table{width:100%;border-collapse:collapse;margin:0;border:none;min-width:720px;}\r\n.table-wrap th,.table-wrap td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--dpd-border);vertical-align:top;white-space:normal;font-size:14px;}\r\n.table-wrap th{background:#f5f9fc;font-weight:700;color:var(--dpd-navy);position:sticky;top:0;z-index:1;}\r\n.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;}\r\n.badge.required{background:rgba(239,68,68,.12);color:#991b1b;border:1px solid rgba(239,68,68,.22);}\r\n.badge.optional{background:rgba(21,198,226,.12);color:#075985;border:1px solid rgba(21,198,226,.22);}\r\n.alert{padding:18px;border-radius:18px;margin:20px 0;border:1px solid var(--dpd-border);}\r\n.alert.info{background:rgba(21,198,226,.10);border-left:4px solid var(--dpd-aurora);color:#083344;}\r\n.alert.success{background:rgba(254,211,3,.12);border-left:4px solid var(--dpd-yellow);color:#423307;}\r\n\r\n.mobile-topbar{display:none;position:sticky;top:0;z-index:50;background:rgba(7,26,46,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.10);}\r\n.mobile-topbar-inner{max-width:1280px;margin:0 auto;padding:12px 16px;display:flex;gap:10px;align-items:center;justify-content:space-between;}\r\n.btn{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);border-radius:14px;padding:10px 14px;cursor:pointer;color:#fff;font-weight:700;text-decoration:none;font-size:14px;}\r\n.drawer{display:none;border-top:1px solid rgba(255,255,255,.10);}\r\n.drawer .drawer-inner{max-width:1280px;margin:0 auto;padding:14px 16px 18px;display:grid;gap:14px;}\r\n.drawer .card{background:#fff;border:1px solid var(--dpd-border);border-radius:18px;box-shadow:var(--dpd-soft);overflow:hidden;}\r\n.drawer .card .card-head{padding:14px 16px;border-bottom:1px solid var(--dpd-border);font-weight:800;color:#fff;background:linear-gradient(135deg,#071A2E,#0A2540);}\r\n.drawer .card .card-body{padding:8px 6px 12px;}\r\n\r\n@media(max-width:900px){\r\n  .shell{padding:22px 16px 44px;}\r\n  .layout{grid-template-columns:1fr;}\r\n  aside.sidebar{display:none;}\r\n  .mobile-topbar{display:block;}\r\n  .section{padding:28px 24px;border-radius:24px;}\r\n  .table-wrap{max-height:340px;}\r\n  .table-wrap table{min-width:760px;}\r\n}\r\n@media(max-width:600px){\r\n  .shell{padding:16px 12px 36px;}\r\n  .section{padding:22px 18px;border-radius:20px;margin-bottom:16px;}\r\n  .section h2{font-size:24px;}\r\n  .section h3{font-size:19px;}\r\n  p{font-size:15px;}\r\n  .code-block{padding:16px;font-size:13px;border-radius:15px;}\r\n  .mobile-topbar-inner{gap:8px;}\r\n  .btn{padding:9px 11px;font-size:13px;}\r\n}\r\n\r\n\/* Fix Astra overriding code blocks *\/\r\n.dpd-api-docs pre,\r\n.dpd-api-docs code,\r\n.dpd-api-docs .code-block,\r\n.dpd-api-docs .code-block pre{\r\n  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", monospace !important;\r\n}\r\n\r\n.dpd-api-docs .code-block{\r\n  background:#071A2E !important;\r\n  color:#e5f6ff !important;\r\n  padding:18px 20px !important;\r\n  border-radius:16px !important;\r\n  overflow-x:auto !important;\r\n  border:1px solid rgba(21,198,226,.18) !important;\r\n}\r\n\r\n.dpd-api-docs .code-block pre{\r\n  background:transparent !important;\r\n  color:#e5f6ff !important;\r\n  margin:0 !important;\r\n  padding:0 !important;\r\n  max-width:none !important;\r\n  overflow:visible !important;\r\n  white-space:pre !important;\r\n  line-height:1.7 !important;\r\n  font-size:14px !important;\r\n}\r\n\r\n.dpd-api-docs .code-block code{\r\n  background:transparent !important;\r\n  color:inherit !important;\r\n  padding:0 !important;\r\n}\r\n\r\n\/* ===============================\r\n   DPD API Docs - Dark Navy Page Fix\r\n   Wrapper + Astra override safe\r\n================================ *\/\r\n.dpd-api-docs,\r\n.dpd-api-docs *{\r\n  box-sizing:border-box;\r\n}\r\n\r\nbody{\r\n  background:#030914 !important;\r\n}\r\n\r\n.dpd-api-docs{\r\n  --dpd-navy:#0A2540;\r\n  --dpd-dark:#030914;\r\n  --dpd-deep:#071A2E;\r\n  --dpd-aurora:#15C6E2;\r\n  --dpd-yellow:#FED303;\r\n  --dpd-card:#071A2E;\r\n  --dpd-card-2:#0A2540;\r\n  --dpd-text:#EAF6FF;\r\n  --dpd-muted:#A8B7C8;\r\n  --dpd-border:rgba(255,255,255,.10);\r\n  --dpd-code:#020B14;\r\n  --dpd-radius:18px;\r\n  --dpd-shadow:0 18px 55px rgba(0,0,0,.28);\r\n\r\n  font-family:\"Space Grotesk\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif !important;\r\n  color:var(--dpd-text);\r\n  background:\r\n    radial-gradient(circle at 8% 4%, rgba(21,198,226,.15), transparent 25%),\r\n    radial-gradient(circle at 94% 12%, rgba(254,211,3,.08), transparent 28%),\r\n    linear-gradient(180deg,#030914 0%,#05101f 100%);\r\n  min-height:100vh;\r\n}\r\n\r\n.dpd-api-docs .shell{\r\n  max-width:1280px;\r\n  margin:0 auto;\r\n  padding:34px 22px 70px;\r\n}\r\n\r\n.dpd-api-docs .layout{\r\n  display:grid;\r\n  grid-template-columns:280px minmax(0,1fr);\r\n  gap:28px;\r\n  align-items:start;\r\n}\r\n\r\n.dpd-api-docs .sidebar{\r\n  background:rgba(7,26,46,.96) !important;\r\n  border:1px solid var(--dpd-border) !important;\r\n  box-shadow:var(--dpd-shadow) !important;\r\n}\r\n\r\n.dpd-api-docs .side-header{\r\n  background:linear-gradient(135deg,#071A2E,#0A2540) !important;\r\n  border-bottom:1px solid rgba(255,255,255,.10) !important;\r\n}\r\n\r\n.dpd-api-docs .search{\r\n  border-bottom:1px solid rgba(255,255,255,.10) !important;\r\n}\r\n\r\n.dpd-api-docs .search input{\r\n  background:#030914 !important;\r\n  color:#fff !important;\r\n  border:1px solid rgba(255,255,255,.12) !important;\r\n}\r\n\r\n.dpd-api-docs .search input::placeholder{\r\n  color:rgba(255,255,255,.45) !important;\r\n}\r\n\r\n.dpd-api-docs .side-group{\r\n  color:rgba(255,255,255,.55) !important;\r\n}\r\n\r\n.dpd-api-docs .side-nav a{\r\n  color:rgba(255,255,255,.82) !important;\r\n}\r\n\r\n.dpd-api-docs .side-nav a:hover,\r\n.dpd-api-docs .side-nav a.active{\r\n  background:rgba(21,198,226,.12) !important;\r\n  border-color:rgba(21,198,226,.28) !important;\r\n  color:#fff !important;\r\n}\r\n\r\n.dpd-api-docs .section{\r\n  background:linear-gradient(180deg,rgba(10,37,64,.98),rgba(7,26,46,.98)) !important;\r\n  border:1px solid rgba(255,255,255,.10) !important;\r\n  box-shadow:var(--dpd-shadow) !important;\r\n  color:var(--dpd-text) !important;\r\n}\r\n\r\n.dpd-api-docs .section h2{\r\n  color:#fff !important;\r\n  border-bottom:3px solid rgba(21,198,226,.28) !important;\r\n}\r\n\r\n.dpd-api-docs .section h3{\r\n  color:#EAF6FF !important;\r\n}\r\n\r\n.dpd-api-docs p,\r\n.dpd-api-docs li,\r\n.dpd-api-docs td,\r\n.dpd-api-docs th,\r\n.dpd-api-docs small{\r\n  color:var(--dpd-muted) !important;\r\n}\r\n\r\n.dpd-api-docs .endpoint{\r\n  background:linear-gradient(135deg,rgba(21,198,226,.12),rgba(254,211,3,.08)) !important;\r\n  border:1px solid rgba(21,198,226,.20) !important;\r\n  border-left:4px solid var(--dpd-aurora) !important;\r\n}\r\n\r\n.dpd-api-docs .method.post{\r\n  background:var(--dpd-yellow) !important;\r\n  color:#071A2E !important;\r\n}\r\n\r\n.dpd-api-docs .method.get{\r\n  background:var(--dpd-aurora) !important;\r\n  color:#071A2E !important;\r\n}\r\n\r\n.dpd-api-docs pre,\r\n.dpd-api-docs code,\r\n.dpd-api-docs .code-block,\r\n.dpd-api-docs .code-block pre{\r\n  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace !important;\r\n}\r\n\r\n.dpd-api-docs .code-block{\r\n  background:#020B14 !important;\r\n  color:#E5F6FF !important;\r\n  padding:18px 20px !important;\r\n  border-radius:16px !important;\r\n  overflow-x:auto !important;\r\n  border:1px solid rgba(21,198,226,.22) !important;\r\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.04) !important;\r\n}\r\n\r\n.dpd-api-docs .code-block pre{\r\n  background:transparent !important;\r\n  color:#E5F6FF !important;\r\n  margin:0 !important;\r\n  padding:0 !important;\r\n  max-width:none !important;\r\n  overflow:visible !important;\r\n  white-space:pre !important;\r\n  line-height:1.7 !important;\r\n  font-size:14px !important;\r\n}\r\n\r\n.dpd-api-docs .code-block code{\r\n  background:transparent !important;\r\n  color:inherit !important;\r\n  padding:0 !important;\r\n}\r\n\r\n.dpd-api-docs .table-wrap{\r\n  background:#071A2E !important;\r\n  border:1px solid rgba(255,255,255,.10) !important;\r\n}\r\n\r\n.dpd-api-docs .table-wrap th{\r\n  background:#061525 !important;\r\n  color:#fff !important;\r\n}\r\n\r\n.dpd-api-docs .table-wrap td{\r\n  border-bottom:1px solid rgba(255,255,255,.08) !important;\r\n}\r\n\r\n.dpd-api-docs .table-wrap code{\r\n  color:#E5F6FF !important;\r\n}\r\n\r\n.dpd-api-docs .alert.info{\r\n  background:rgba(21,198,226,.10) !important;\r\n  border-left:4px solid var(--dpd-aurora) !important;\r\n  color:#EAF6FF !important;\r\n}\r\n\r\n.dpd-api-docs .alert.success{\r\n  background:rgba(254,211,3,.12) !important;\r\n  border-left:4px solid var(--dpd-yellow) !important;\r\n  color:#fff6cf !important;\r\n}\r\n\r\n.dpd-api-docs .badge.required{\r\n  background:rgba(239,68,68,.18) !important;\r\n  color:#fecaca !important;\r\n  border:1px solid rgba(239,68,68,.28) !important;\r\n}\r\n\r\n.dpd-api-docs .badge.optional{\r\n  background:rgba(21,198,226,.14) !important;\r\n  color:#BFF4FF !important;\r\n  border:1px solid rgba(21,198,226,.28) !important;\r\n}\r\n\r\n.dpd-api-docs .mobile-topbar{\r\n  display:none;\r\n  position:sticky;\r\n  top:0;\r\n  z-index:50;\r\n  background:rgba(3,9,20,.94);\r\n  backdrop-filter:blur(14px);\r\n  border-bottom:1px solid rgba(255,255,255,.10);\r\n}\r\n\r\n.dpd-api-docs .mobile-topbar-inner{\r\n  max-width:1280px;\r\n  margin:0 auto;\r\n  padding:12px 16px;\r\n  display:flex;\r\n  gap:10px;\r\n  align-items:center;\r\n  justify-content:space-between;\r\n}\r\n\r\n.dpd-api-docs .btn{\r\n  border:1px solid rgba(255,255,255,.14) !important;\r\n  background:rgba(255,255,255,.08) !important;\r\n  border-radius:14px;\r\n  padding:10px 14px;\r\n  cursor:pointer;\r\n  color:#fff !important;\r\n  font-weight:700;\r\n  text-decoration:none !important;\r\n  font-size:14px;\r\n}\r\n\r\n.dpd-api-docs .drawer{\r\n  display:none;\r\n  border-top:1px solid rgba(255,255,255,.10);\r\n}\r\n\r\n.dpd-api-docs .drawer .drawer-inner{\r\n  max-width:1280px;\r\n  margin:0 auto;\r\n  padding:14px 16px 18px;\r\n  display:grid;\r\n  gap:14px;\r\n}\r\n\r\n.dpd-api-docs .drawer .card{\r\n  background:#071A2E !important;\r\n  border:1px solid rgba(255,255,255,.10) !important;\r\n  border-radius:18px;\r\n  overflow:hidden;\r\n}\r\n\r\n.dpd-api-docs .drawer .card .card-head{\r\n  padding:14px 16px;\r\n  border-bottom:1px solid rgba(255,255,255,.10) !important;\r\n  font-weight:800;\r\n  color:#fff !important;\r\n  background:linear-gradient(135deg,#071A2E,#0A2540) !important;\r\n}\r\n\r\n.dpd-api-docs .drawer .card .card-body{\r\n  padding:8px 6px 12px;\r\n}\r\n\r\n@media(max-width:900px){\r\n  .dpd-api-docs .shell{\r\n    padding:22px 16px 44px;\r\n  }\r\n\r\n  .dpd-api-docs .layout{\r\n    grid-template-columns:1fr !important;\r\n  }\r\n\r\n  .dpd-api-docs aside.sidebar{\r\n    display:none !important;\r\n  }\r\n\r\n  .dpd-api-docs .mobile-topbar{\r\n    display:block !important;\r\n  }\r\n\r\n  .dpd-api-docs .section{\r\n    padding:28px 24px;\r\n    border-radius:24px;\r\n  }\r\n\r\n  .dpd-api-docs .table-wrap{\r\n    max-height:340px;\r\n  }\r\n\r\n  .dpd-api-docs .table-wrap table{\r\n    min-width:760px;\r\n  }\r\n}\r\n\r\n@media(max-width:600px){\r\n  .dpd-api-docs .shell{\r\n    padding:16px 12px 36px;\r\n  }\r\n\r\n  .dpd-api-docs .section{\r\n    padding:22px 18px;\r\n    border-radius:20px;\r\n    margin-bottom:16px;\r\n  }\r\n\r\n  .dpd-api-docs .section h2{\r\n    font-size:24px;\r\n  }\r\n\r\n  .dpd-api-docs .section h3{\r\n    font-size:19px;\r\n  }\r\n\r\n  .dpd-api-docs p{\r\n    font-size:15px;\r\n  }\r\n\r\n  .dpd-api-docs .code-block{\r\n    padding:16px !important;\r\n    font-size:13px !important;\r\n    border-radius:15px !important;\r\n  }\r\n}\r\n\r\n<\/style><\/head>\r\n<body>\r\n<div class=\"dpd-api-docs\">\r\n\r\n<!-- Mobile drawers -->\r\n<div aria-label=\"Mobile navigation\" class=\"mobile-topbar\">\r\n<div class=\"mobile-topbar-inner\"><button class=\"btn\" id=\"btnDocs\" type=\"button\">Docs<\/button><a class=\"btn\" href=\"#authentication\" style=\"text-decoration:none;\">Start<\/a><\/div>\r\n<div class=\"drawer\" hidden=\"\" id=\"drawer\">\r\n<div class=\"drawer-inner\">\r\n<div class=\"card\">\r\n<div class=\"card-head\">Documentation<\/div>\r\n<div class=\"card-body\" id=\"drawerDocsBody\"><\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"shell\">\r\n<div class=\"layout\">\r\n<!-- Left: Documentation Nav -->\r\n<aside aria-label=\"Documentation navigation\" class=\"sidebar\">\r\n<div class=\"side-header\"><h2>Documentation<\/h2><\/div>\r\n<div class=\"search\">\r\n<input aria-label=\"Search documentation sections\" id=\"navSearch\" placeholder=\"Rechercher des sections...\" type=\"search\"\/>\r\n<\/div>\r\n<nav class=\"side-nav\" id=\"sideNav\">\r\n<div class=\"side-group\">API<\/div>\r\n<a data-target=\"authentication\" href=\"#authentication\"><span class=\"dot\"><\/span>Authentification<\/a>\r\n<a data-target=\"phone-lookup\" href=\"#phone-lookup\"><span class=\"dot\"><\/span>Recherche de t\u00e9l\u00e9phone<\/a>\r\n<a data-target=\"events\" href=\"#events\"><span class=\"dot\"><\/span>Soumettre des \u00e9v\u00e9nements<\/a>\r\n<a data-target=\"license\" href=\"#license\"><span class=\"dot\"><\/span>V\u00e9rification de licence<\/a>\r\n<a data-target=\"admin\" href=\"#admin\"><span class=\"dot\"><\/span>Endpoints administrateur<\/a>\r\n<a data-target=\"errors\" href=\"#errors\"><span class=\"dot green\"><\/span>Codes d\u2019erreur<\/a>\r\n\r\n<\/nav>\r\n<\/aside>\r\n<!-- Main content -->\r\n<main aria-label=\"Documentation content\" id=\"content\">\r\n<section class=\"section\" id=\"authentication\">\r\n<h2>\ud83d\udd10 Authentification<\/h2>\r\n<p>Toutes les requ\u00eates API n\u00e9cessitent une authentification avec votre cl\u00e9 de licence ou cl\u00e9 administrateur.<\/p>\r\n<h3>License Key Authentification<\/h3>\r\n<p>For merchant endpoints (phone lookup, events, license verify):<\/p>\r\n<div class=\"code-block\"><pre>Authorization: Bearer YOUR_LICENSE_KEY\r\nX-Country: MA<\/pre><\/div>\r\n<h3>Admin Key Authentification<\/h3>\r\n<p>For admin endpoints (merchant management, manual blacklist):<\/p>\r\n<div class=\"code-block\"><pre>X-Admin-Key: YOUR_ADMIN_KEY\r\nX-Country: MA<\/pre><\/div>\r\n<div class=\"alert info\">\r\n<strong>\u2139\ufe0f Note:<\/strong> All requests must include <code>X-Country: MA<\/code> header. Currently, only Morocco (MA) is supported.\r\n          <\/div>\r\n<\/section>\r\n<section class=\"section\" id=\"phone-lookup\">\r\n<h2>\ud83d\udcf1 Recherche de t\u00e9l\u00e9phone &amp; Risk Scoring<\/h2>\r\n<div class=\"endpoint\">\r\n<span class=\"method post\">POST<\/span>\r\n<code>\/v1\/phone\/lookup<\/code>\r\n<\/div>\r\n<p>V\u00e9rifiez le score de risque d\u2019un num\u00e9ro, les informations op\u00e9rateur et le statut de liste noire.<\/p>\r\n<h3>En-t\u00eates de requ\u00eate<\/h3>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Header<\/th><th>Value<\/th><th>Required<\/th><\/tr>\r\n<tr><td><code>Authorization<\/code><\/td><td><code>Bearer YOUR_LICENSE_KEY<\/code><\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<tr><td><code>X-Country<\/code><\/td><td><code>MA<\/code><\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<tr><td><code>Content-Type<\/code><\/td><td><code>application\/json<\/code><\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<\/table><\/div>\r\n<h3>Corps de la requ\u00eate<\/h3>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><th>Required<\/th><\/tr>\r\n<tr><td><code>phone<\/code><\/td><td>string<\/td><td>Phone number (+212661234567 or 0661234567)<\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<tr><td><code>include_timeline<\/code><\/td><td>boolean<\/td><td>Include last 5 events for this phone<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<\/table><\/div>\r\n<h3>Exemple de requ\u00eate<\/h3>\r\n<div class=\"code-block\"><pre>curl -X POST https:\/\/api.dpd.ma\/v1\/phone\/lookup \\\r\n  -H \"Content-Type: application\/json\" \\\r\n  -H \"X-Country: MA\" \\\r\n  -H \"Authorization: Bearer DPD-STARTER-TEST-002\" \\\r\n  -d '{\r\n    \"phone\": \"+212661234567\",\r\n    \"include_timeline\": true\r\n  }'<\/pre><\/div>\r\n<h3>R\u00e9ponse<\/h3>\r\n<div class=\"code-block\"><pre>{\r\n  \"ok\": true,\r\n  \"phone\": \"+212661234567\",\r\n  \"country\": \"MA\",\r\n  \"carrier\": { \"code\": \"IAM\", \"label\": \"Maroc Telecom\" },\r\n  \"risk_score\": 8,\r\n  \"is_blacklisted\": false,\r\n  \"blacklisted_reason\": null,\r\n  \"cache_ttl_seconds\": 3600,\r\n  \"timeline\": [\r\n    {\r\n      \"event_type\": \"DELIVERED\",\r\n      \"order_total\": \"299.50\",\r\n      \"currency\": \"MAD\",\r\n      \"region\": \"Casablanca\",\r\n      \"created_at\": \"2026-02-01T21:47:49.589Z\"\r\n    }\r\n  ]\r\n}<\/pre><\/div>\r\n<h3>Interpr\u00e9tation du score de risque<\/h3>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Score<\/th><th>Risk Level<\/th><th>Recommendation<\/th><\/tr>\r\n<tr><td>80-100<\/td><td>\u2705 Faible risque<\/td><td>S\u00fbr pour continuer<\/td><\/tr>\r\n<tr><td>50-70<\/td><td>\u26a0\ufe0f Risque moyen<\/td><td>V\u00e9rifier avant de continuer<\/td><\/tr>\r\n<tr><td>10-40<\/td><td>\ud83d\udeab Risque \u00e9lev\u00e9<\/td><td>Proc\u00e9der avec prudence ou rejeter<\/td><\/tr>\r\n<\/table><\/div>\r\n<\/section>\r\n<section class=\"section\" id=\"events\">\r\n<h2>\ud83d\udcca Soumettre des \u00e9v\u00e9nements<\/h2>\r\n<div class=\"endpoint\">\r\n<span class=\"method post\">POST<\/span>\r\n<code>\/v1\/phone\/lookup<\/code> <small>(with event_type)<\/small>\r\n<\/div>\r\n<p>Signalez les r\u00e9sultats des commandes pour am\u00e9liorer la pr\u00e9cision du score de risque.<\/p>\r\n<h3>Corps de la requ\u00eate (Additional Fields)<\/h3>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><th>Required<\/th><\/tr>\r\n<tr><td><code>event_type<\/code><\/td><td>string<\/td><td>DELIVERED, PAID_ONLINE, REFUSED_COD, CANCELLED, NO_ANSWER, FRAUD_CONFIRMED<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<tr><td><code>context.order_total<\/code><\/td><td>number<\/td><td>Order amount<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<tr><td><code>context.currency<\/code><\/td><td>string<\/td><td>Currency code (MAD)<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<tr><td><code>context.region<\/code><\/td><td>string<\/td><td>Delivery region<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<tr><td><code>context.note<\/code><\/td><td>string<\/td><td>Additional notes<\/td><td><span class=\"badge optional\">Optional<\/span><\/td><\/tr>\r\n<\/table><\/div>\r\n<h3>Exemple de requ\u00eate<\/h3>\r\n<div class=\"code-block\"><pre>curl -X POST https:\/\/api.dpd.ma\/v1\/phone\/lookup \\\r\n  -H \"Content-Type: application\/json\" \\\r\n  -H \"X-Country: MA\" \\\r\n  -H \"Authorization: Bearer DPD-STARTER-TEST-002\" \\\r\n  -d '{\r\n    \"phone\": \"+212661234567\",\r\n    \"event_type\": \"DELIVERED\",\r\n    \"context\": {\r\n      \"order_total\": 299.50,\r\n      \"currency\": \"MAD\",\r\n      \"region\": \"Casablanca\"\r\n    }\r\n  }'<\/pre><\/div>\r\n<div class=\"alert success\">\r\n<strong>\u2705 Best Practice:<\/strong> Submit events for all orders to improve scoring accuracy and help the entire merchant community.\r\n          <\/div>\r\n<\/section>\r\n<section class=\"section\" id=\"license\">\r\n<h2>\ud83d\udd11 V\u00e9rification de licence<\/h2>\r\n<div class=\"endpoint\">\r\n<span class=\"method post\">POST<\/span>\r\n<code>\/v1\/license\/verify<\/code>\r\n<\/div>\r\n<p>V\u00e9rifiez le statut de votre licence et les limites d\u2019utilisation quotidiennes.<\/p>\r\n<h3>Corps de la requ\u00eate<\/h3>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><th>Required<\/th><\/tr>\r\n<tr><td><code>site_url<\/code><\/td><td>string<\/td><td>Your registered website URL<\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<tr><td><code>email<\/code><\/td><td>string<\/td><td>Your registered email<\/td><td><span class=\"badge required\">Required<\/span><\/td><\/tr>\r\n<\/table><\/div>\r\n<\/section>\r\n<section class=\"section\" id=\"admin\">\r\n<h2>\u2699\ufe0f Endpoints administrateur<\/h2>\r\n<div class=\"alert info\">\r\n<strong>\u2139\ufe0f Administrateur uniquement :<\/strong> Ces endpoints n\u00e9cessitent <code>X-Admin-Key<\/code> authentication.\r\n          <\/div>\r\n<\/section>\r\n<section class=\"section\" id=\"errors\">\r\n<h2>\u274c Codes d\u2019erreur<\/h2>\r\n<div class=\"table-wrap\"><table>\r\n<tr><th>Error Code<\/th><th>HTTP Status<\/th><th>Description<\/th><\/tr>\r\n<tr><td><code>LICENSE_MISSING<\/code><\/td><td>401<\/td><td>Jeton Bearer Authorization manquant<\/td><\/tr>\r\n<tr><td><code>LICENSE_INVALID<\/code><\/td><td>403<\/td><td>Licence invalide ou inactive<\/td><\/tr>\r\n<tr><td><code>LICENSE_EXPIRED<\/code><\/td><td>403<\/td><td>Abonnement expir\u00e9, renouvellement requis<\/td><\/tr>\r\n<tr><td><code>COUNTRY_NOT_ALLOWED<\/code><\/td><td>403<\/td><td>X-Country header must be MA<\/td><\/tr>\r\n<tr><td><code>DAILY_LIMIT_REACHED<\/code><\/td><td>429<\/td><td>Limite quotidienne d\u2019utilisation API d\u00e9pass\u00e9e<\/td><\/tr>\r\n<tr><td><code>INVALID_PAYLOAD<\/code><\/td><td>400<\/td><td>La validation du corps de requ\u00eate a \u00e9chou\u00e9<\/td><\/tr>\r\n<tr><td><code>ADMIN_UNAUTHORIZED<\/code><\/td><td>401<\/td><td>X-Admin-Key manquant ou invalide<\/td><\/tr>\r\n<\/table><\/div>\r\n<\/section>\r\n\r\n<\/main>\r\n<!-- Right: On this page -->\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  const content = document.getElementById('content');\r\n  const sideNav = document.getElementById('sideNav');\r\n  if(!content || !sideNav) return;\r\n\r\n  const navLinks = Array.from(sideNav.querySelectorAll('a[data-target]'));\r\n  const search = document.getElementById('navSearch');\r\n\r\n  const drawerDocsBody = document.getElementById('drawerDocsBody');\r\n  if(drawerDocsBody) drawerDocsBody.appendChild(sideNav.cloneNode(true));\r\n\r\n  const btnDocs = document.getElementById('btnDocs');\r\n  const drawer = document.getElementById('drawer');\r\n  let open = false;\r\n\r\n  function setDrawer(state){\r\n    if(!drawer) return;\r\n    open = state;\r\n    drawer.hidden = !open;\r\n    drawer.style.display = open ? 'block' : 'none';\r\n  }\r\n\r\n  btnDocs && btnDocs.addEventListener('click', function(){ setDrawer(!open); });\r\n\r\n  drawer && drawer.addEventListener('click', function(e){\r\n    const a = e.target.closest('a[href^=\"#\"]');\r\n    if(!a) return;\r\n    setDrawer(false);\r\n  });\r\n\r\n  const sections = Array.from(content.querySelectorAll('section[id]'));\r\n  const observer = new IntersectionObserver(function(entries){\r\n    const visible = entries.filter(function(en){ return en.isIntersecting; })\r\n      .sort(function(a,b){ return b.intersectionRatio - a.intersectionRatio; })[0];\r\n    if(!visible) return;\r\n    const secId = visible.target.id;\r\n    navLinks.forEach(function(a){ a.classList.toggle('active', a.dataset.target === secId); });\r\n\r\n    const drawerNav = drawer && drawer.querySelector('.side-nav');\r\n    if(drawerNav){\r\n      Array.from(drawerNav.querySelectorAll('a[data-target]'))\r\n        .forEach(function(a){ a.classList.toggle('active', a.dataset.target === secId); });\r\n    }\r\n  }, { rootMargin:'-38% 0px -55% 0px', threshold:[0.02,0.08,0.15] });\r\n  sections.forEach(function(s){ observer.observe(s); });\r\n\r\n  search && search.addEventListener('input', function(){\r\n    const q = (search.value || '').toLowerCase().trim();\r\n    navLinks.forEach(function(a){\r\n      const txt = a.textContent.toLowerCase();\r\n      a.style.display = (!q || txt.includes(q)) ? '' : 'none';\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n<\/div>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DPD Trust API Documentation DocsStart Documentation Documentation API Authentification Recherche de t\u00e9l\u00e9phone Soumettre des \u00e9v\u00e9nements V\u00e9rification de licence Endpoints administrateur Codes d\u2019erreur \ud83d\udd10 Authentification Toutes les requ\u00eates API n\u00e9cessitent une authentification avec votre cl\u00e9 de licence ou cl\u00e9 administrateur. License Key Authentification For merchant endpoints (phone lookup, events, license verify): Authorization: Bearer YOUR_LICENSE_KEY X-Country: MA [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2042,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2043","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/pages\/2043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/comments?post=2043"}],"version-history":[{"count":3,"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/pages\/2043\/revisions"}],"predecessor-version":[{"id":2050,"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/pages\/2043\/revisions\/2050"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/media\/2042"}],"wp:attachment":[{"href":"https:\/\/dpd.ma\/fr\/wp-json\/wp\/v2\/media?parent=2043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}