Skip to main content

Overview

A presentation request is a single-use instance of a presentation template. It generates authorization URIs that you present to the youth, allowing them to share their credentials with your application.

Endpoint

POST https://test.didxtech.com/me-creds/api/presentations/request

Request

curl -X POST "https://test.didxtech.com/me-creds/api/presentations/request" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "presentationTemplateId": "cm2ytsdid009u4ke3t30aiuvc"
  }'

Request Body

FieldTypeDescription
presentationTemplateIdstringThe id from the presentation template created in Step 1

Response

HTTP 200 OK
{
  "data": {
    "id": "cmbhsgi6c00cls60120oyb8tl",
    "createdAt": "2025-06-04T10:12:20.101Z",
    "updatedAt": "2025-06-04T10:12:20.101Z",
    "status": "requested",
    "error": null,
    "presentationTemplateId": "cm2ytsdid009u4ke3t30aiuvc",
    "credentials": [],
    "expiresAt": "2025-07-04T10:12:20.088Z",
    "authorizationRequestUri": "https://didx.co.za/invitation?request_uri=...",
    "authorizationRequestQrUri": "https://didx.co.za/invitation?request_uri=...&qr=true"
  }
}

Key Response Fields

FieldDescription
idUnique presentation request identifier — save for Step 4 and webhook correlation
statusrequested initially; transitions when the youth responds
authorizationRequestUriLink the youth can paste into their wallet
authorizationRequestQrUriQR-optimized version for scanning with a wallet app
expiresAtRequest expires after 30 days

What Happens on the Youth’s Side

When the youth scans the QR code or taps the link:
  1. Their wallet launches and displays the verification request
  2. They see which organisation is asking and what’s being requested
  3. Their wallet shows all credentials that match the requested type
  4. They choose which credential to present
  5. They can selectively disclose attributes — sharing programme name while withholding assessment score
  6. They confirm or decline
Save both the id (for verification in Step 4) and the authorizationRequestQrUri (for display in Step 3).