> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Your Decision on a VASP

> Read your application's own approved, restricted or blocked decision on a Travel Rule counterparty VASP.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

<AgentPromptAccordion
  title="Get a VASP Decision API Prompt"
  prompt={`Read my application's decision on a Travel Rule counterparty VASP.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/decision/

Authentication:
Use the x-api-key header with my Didit API key.

vasp_id is the id GET /v3/travel-rule/vasps/ returns for a directory entry or a Didit network member.

What to read from the response:
- decision - null when no decision applies; otherwise {decision, reason, decided_by, updated_at, inherited_from}.
- decision.decision - APPROVED, RESTRICTED or BLOCKED.
- decision.inherited_from - {id, name} of the brand whose decision this entity follows, because I made none on the entity itself. Null when the decision is the counterparty's own.
- decision.decided_by - the console user who made or last changed it; empty when an API key did.

The decision is private to my application: no other Didit customer sees it, and it never changes the shared directory entry or how a transfer is routed. It acts only through my transaction rules (rule field counterparty_dd_status).

Failure modes:
- 404 - no directory entry or listed Didit network member has this id, or the id is my own VASP profile.

Full guide: /transaction-monitoring/travel-rule#your-decision-on-a-counterparty.`}
/>


## OpenAPI

````yaml GET /v3/travel-rule/vasps/{vasp_id}/decision/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/vasps/{vasp_id}/decision/:
    get:
      tags:
        - Travel Rule
      summary: Get your decision on a VASP
      description: >-
        Your application's decision on a counterparty (a directory entry or a
        Didit network member): approved, restricted or blocked. An entity of a
        brand with no decision of its own follows the brand's decision, named in
        inherited_from. Private to your application.
      operationId: getTravelRuleVaspDecision
      parameters:
        - name: vasp_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            The id of a row of GET /v3/travel-rule/vasps/: a directory entry or
            a Didit network member.
      responses:
        '200':
          description: The decision that applies, or null.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleCounterpartyDecisionResponse'
              examples:
                Own decision:
                  value:
                    decision:
                      decision: APPROVED
                      reason: Licensed in DE, questionnaire reviewed
                      decided_by: ''
                      updated_at: '2026-10-14T10:05:00Z'
                      inherited_from: null
                Inherited from the brand:
                  value:
                    decision:
                      decision: BLOCKED
                      reason: Group refused after review
                      decided_by: ''
                      updated_at: '2026-10-14T10:05:00Z'
                      inherited_from:
                        id: 5e4d3c2b-1a0f-4e9d-8c7b-6a5f4e3d2c1b
                        name: Example Group
                No decision:
                  value:
                    decision: null
        '404':
          description: >-
            No directory entry or listed Didit network member has this id. Your
            own VASP profile is never a counterparty of yours.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No directory entry or Didit network member has this id.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/decision/
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    TravelRuleCounterpartyDecisionResponse:
      type: object
      properties:
        decision:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyDecision'
          nullable: true
          description: >-
            The decision that applies to the counterparty for your application:
            its own, else (for an entity of a brand) the brand's. Null when
            there is none.
    TravelRuleCounterpartyDecision:
      type: object
      description: >-
        Your application's decision on a counterparty VASP. Private to your
        application: it never changes the shared directory entry and another
        customer never sees it. It acts only through your transaction rules (the
        counterparty_dd_status rule field and the
        travel-rule-counterparty-blocked and travel-rule-counterparty-restricted
        presets); it never changes how a transfer is routed.
      properties:
        decision:
          type: string
          enum:
            - APPROVED
            - RESTRICTED
            - BLOCKED
          description: >-
            APPROVED: your team cleared the counterparty. RESTRICTED: transfers
            to it may go ahead after review. BLOCKED: your team refused it.
        reason:
          type: string
          maxLength: 255
          description: Free-text reason you gave, empty when none.
        decided_by:
          type: string
          description: >-
            The console user who made or last changed the decision. Empty when
            an API key made it.
        updated_at:
          type: string
          format: date-time
        inherited_from:
          type: object
          nullable: true
          description: >-
            The brand whose decision this entity follows because you made none
            on the entity itself. Null when the decision is the counterparty's
            own.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your application's API key, from Developers -> API keys in the Business
        Console. The primary key has full access. A named key can be scoped:
        none, read or write per resource, limited to some workflows or to
        approved sessions, to a list of IP addresses, and to an expiry date. 401
        means the key is missing, wrong, revoked or expired; 403 means the key
        has no access to this resource or action, or the request came from an
        address outside its IP list; 404 on a session route means the session is
        outside the key's workflows or statuses. A key without media access
        receives image, video and PDF URLs as null, and a key without sessions
        write receives session links and tokens as null. See
        https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.