{
  "info": {
    "_postman_id": "1f91f05a-9140-4bf1-b08f-tradevowconnect",
    "name": "TradeVow Connect API v1",
    "description": "TradeVow Connect API request examples for authorised partner-institution integration. Import the collection, provide an approved API key where required, and use account routes through the secure first-party session. Keep API keys and one-time passcodes confidential.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-TradeVow-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "pm.variables.set('correlation_id', pm.variables.replaceIn('{{$guid}}'));",
          "pm.variables.set('idempotency_key', pm.variables.replaceIn('{{$guid}}'));",
          "for (const key of ['access_idempotency_key','key_idempotency_key']) if (!pm.collectionVariables.get(key)) pm.collectionVariables.set(key, pm.variables.replaceIn('{{$guid}}'));"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "https://sandbox-api.tradevow.com"
    },
    {
      "key": "organization_id",
      "value": "org_01TVSELLER01"
    },
    {
      "key": "seller_organization_id",
      "value": "org_01TVSELLER01"
    },
    {
      "key": "buyer_organization_id",
      "value": "org_01TVBUYER01"
    },
    {
      "key": "carrier_organization_id",
      "value": "org_01TVCARRIER01"
    },
    {
      "key": "transaction_id",
      "value": "TV-TXN-20260921-8A17367F"
    },
    {
      "key": "verification_id",
      "value": "ver_01TVKYB001"
    },
    {
      "key": "instrument_id",
      "value": "ins_01TVPO001"
    },
    {
      "key": "evidence_id",
      "value": "evd_01TVEBL001"
    },
    {
      "key": "shipment_id",
      "value": "shp_01TV001"
    },
    {
      "key": "requirement_id",
      "value": "req_origin_certificate"
    },
    {
      "key": "settlement_id",
      "value": "set_01TV001"
    },
    {
      "key": "api_key",
      "value": ""
    },
    {
      "key": "connect_url",
      "value": "https://connect.tradevow.com"
    },
    {
      "key": "sandbox_base_url",
      "value": "https://sandbox-api.tradevow.com"
    },
    {
      "key": "live_base_url",
      "value": "https://YOUR_APPROVED_LIVE_API_HOST"
    },
    {
      "key": "email",
      "value": ""
    },
    {
      "key": "otp_code",
      "value": ""
    },
    {
      "key": "challenge_id",
      "value": ""
    },
    {
      "key": "key_id",
      "value": ""
    },
    {
      "key": "access_idempotency_key",
      "value": ""
    },
    {
      "key": "key_idempotency_key",
      "value": ""
    },
    {
      "key": "case_snapshot_fingerprint",
      "value": "1ea854f0a2c308b959042f21df537f6e2abaf65b5a5f980dd6ce59458db754f9"
    }
  ],
  "item": [
    {
      "name": "A. Partner & organisation APIs",
      "item": [
        {
          "name": "Resolve or create organisation",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Organisation resolved or created', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                  "if (pm.response.code < 300) pm.collectionVariables.set('organization_id', pm.response.json().id);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"legal_name\": \"Kalahari Produce (Pty) Ltd\",\n  \"trading_name\": \"Kalahari Produce\",\n  \"country\": \"BW\",\n  \"identifiers\": [\n    {\"scheme\": \"company_registration.bw\", \"value\": \"BW000019842\", \"issuing_country\": \"BW\"}\n  ],\n  \"external_reference\": \"supplier-774\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/organizations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "organizations"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "B. KYB & trust APIs",
      "item": [
        {
          "name": "Submit KYB verification",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Verification accepted', () => pm.response.to.have.status(202));",
                  "if (pm.response.code === 202) pm.collectionVariables.set('verification_id', pm.response.json().id);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider_reference\": \"sumsub-applicant-38291\",\n  \"performed_at\": \"2026-09-05T09:15:00Z\",\n  \"valid_until\": \"2027-09-05T09:15:00Z\",\n  \"checks\": [\n    {\"type\": \"registry_status\", \"outcome\": \"pass\", \"checked_at\": \"2026-09-05T09:14:32Z\", \"source\": \"companies_registry.bw\", \"reason_codes\": []}\n  ],\n  \"provider_outcome\": \"pass\",\n  \"provider_reason_codes\": []\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/organizations/{{organization_id}}/verifications",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "organizations",
                "{{organization_id}}",
                "verifications"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "C. Transaction APIs",
      "item": [
        {
          "name": "Create transaction",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Transaction created', () => pm.response.to.have.status(201));",
                  "if (pm.response.code === 201) pm.collectionVariables.set('transaction_id', pm.response.json().id);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"source\": \"partner_platform\",\n  \"source_reference\": \"PO-89431\",\n  \"corridor\": {\"origin_country\": \"BW\", \"destination_country\": \"GB\", \"corridor_id\": \"cor_bw_gb\"},\n  \"parties\": [\n    {\"organization_id\": \"{{seller_organization_id}}\", \"role\": \"seller\"},\n    {\"organization_id\": \"{{buyer_organization_id}}\", \"role\": \"buyer\"}\n  ],\n  \"goods_or_services_description\": \"Speciality agricultural produce\",\n  \"commercial_value\": {\"amount\": \"48500.00\", \"currency\": \"GBP\"},\n  \"incoterm\": \"CIF\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/transactions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "transactions"
              ]
            }
          }
        },
        {
          "name": "Get institutional transaction review",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-TradeVow-API-Key",
                "value": "{{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{connect_url}}/api/v1/transactions/{{transaction_id}}/institutional-review?case_snapshot_fingerprint={{case_snapshot_fingerprint}}",
              "host": [
                "{{connect_url}}"
              ],
              "path": [
                "api",
                "v1",
                "transactions",
                "{{transaction_id}}",
                "institutional-review"
              ],
              "query": [
                {
                  "key": "case_snapshot_fingerprint",
                  "value": "{{case_snapshot_fingerprint}}"
                }
              ]
            },
            "description": "Retrieves the reviewed institutional transaction. Requires transactions:read permission and authorisation for the requested transaction. The response distinguishes current state, earlier reviews, completed remediation, the open action, later-stage conditions, provisional readiness and human review."
          },
          "response": [
            {
              "name": "Example institutional response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-TradeVow-API-Key",
                    "value": "{{api_key}}"
                  }
                ],
                "url": {
                  "raw": "{{connect_url}}/api/v1/transactions/{{transaction_id}}/institutional-review?case_snapshot_fingerprint={{case_snapshot_fingerprint}}",
                  "host": [
                    "{{connect_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{transaction_id}}",
                    "institutional-review"
                  ],
                  "query": [
                    {
                      "key": "case_snapshot_fingerprint",
                      "value": "{{case_snapshot_fingerprint}}"
                    }
                  ]
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": {\n    \"type\": \"institutional_review\",\n    \"id\": \"TV-TXN-20260921-8A17367F\",\n    \"attributes\": {\n      \"transaction\": {\n        \"reference\": \"TV-TXN-20260921-8A17367F\",\n        \"version\": 2,\n        \"status\": \"trade_agreed\",\n        \"corridor\": {\n          \"origin_country\": \"GB\",\n          \"origin_name\": \"United Kingdom\",\n          \"destination_country\": \"TN\",\n          \"destination_name\": \"Tunisia\",\n          \"route\": \"Southampton to Tunis\"\n        },\n        \"goods_description\": \"Packaging machine; Spare parts kit\",\n        \"commercial_value\": {\n          \"amount\": \"40000.00\",\n          \"currency\": \"GBP\"\n        },\n        \"expected_completion_date\": \"2026-12-01\"\n      },\n      \"participants\": [\n        {\n          \"role\": \"applicant\",\n          \"name\": \"Factor Inc\",\n          \"country\": \"Tunisia\",\n          \"kyb_status\": \"phase_1_evidence_review_complete\",\n          \"classification\": \"current\",\n          \"limitation\": \"External registry, sanctions, PEP, adverse-media and bank checks are outside this synthetic demonstration.\"\n        },\n        {\n          \"role\": \"beneficiary\",\n          \"name\": \"Seller Inc\",\n          \"country\": \"United Kingdom\",\n          \"kyb_status\": \"phase_1_evidence_review_complete\",\n          \"classification\": \"current\",\n          \"limitation\": \"External registry, sanctions, PEP, adverse-media and bank checks are outside this synthetic demonstration.\"\n        }\n      ],\n      \"commercial_source\": {\n        \"type\": \"purchase_order\",\n        \"reference\": \"TV-PO-YJTTZB6X\",\n        \"version\": 4,\n        \"underlying_status\": \"draft\",\n        \"transaction_use\": \"confirmed_for_sourcing\",\n        \"supplier_acceptance_asserted\": false,\n        \"classification\": \"current\"\n      },\n      \"evidence\": {\n        \"accepted_record_count\": 9,\n        \"status\": \"reviewed_for_phase_1\",\n        \"classification\": \"current\",\n        \"records\": [\n          {\n            \"reference\": \"EBRD-F-CONTRACT-001\",\n            \"version\": 1,\n            \"type\": \"sales_contract\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"EBRD-F-SPEC-001\",\n            \"version\": 1,\n            \"type\": \"quotation_and_specification\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"EBRD-F-PFI-001-v2\",\n            \"version\": 2,\n            \"type\": \"pro_forma_invoice\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"EBRD-G-LOG-001\",\n            \"version\": 1,\n            \"type\": \"planned_logistics_preparation\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"TV-PO-YJTTZB6X\",\n            \"version\": 4,\n            \"type\": \"purchase_order\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"TV-eBL-DPUCLYD5\",\n            \"version\": 2,\n            \"type\": \"electronic_bill_of_lading\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"TV-CUS-DEC-4GDC2559\",\n            \"version\": 7,\n            \"type\": \"customs_declaration_preparation\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"TV-RULES-20260925-8N0D54\",\n            \"version\": 18,\n            \"type\": \"provisional_rules_assessment\",\n            \"status\": \"reviewed_and_accepted\"\n          },\n          {\n            \"reference\": \"TV-COMP-20260925-ETIORI\",\n            \"version\": 10,\n            \"type\": \"provisional_compliance_assessment\",\n            \"status\": \"reviewed_and_accepted\"\n          }\n        ],\n        \"retrieval\": {\n          \"access\": \"separate_authorisation_required\",\n          \"note\": \"This response exposes metadata and lineage only. Evidence bytes require the existing controlled access and audit decision.\"\n        }\n      },\n      \"actions_and_conditions\": {\n        \"open_actions\": [\n          {\n            \"reference\": \"ACT-20260922-DB7D170D\",\n            \"title\": \"Retain official customs release after filing\",\n            \"status\": \"open\",\n            \"owner\": \"Factor Inc\",\n            \"due_at\": \"2026-12-15T00:00:00Z\",\n            \"classification\": \"open_action\",\n            \"readiness_effect\": \"disclosed_future_stage_condition\"\n          }\n        ],\n        \"completed_remediation\": [\n          {\n            \"reference\": \"ACT-20260921-0F80BD8B\",\n            \"status\": \"resolved\"\n          },\n          {\n            \"reference\": \"ACT-20260921-119FC0F0\",\n            \"status\": \"resolved\"\n          },\n          {\n            \"reference\": \"ACT-20260923-A197267F\",\n            \"status\": \"resolved\"\n          },\n          {\n            \"reference\": \"ACT-20260924-32B367D0\",\n            \"status\": \"resolved\"\n          },\n          {\n            \"reference\": \"ACT-20260925-0E4148DB\",\n            \"status\": \"resolved\"\n          }\n        ],\n        \"future_stage_conditions\": [\n          {\n            \"code\": \"bank_terms_confirmation\",\n            \"description\": \"All LC terms and presentation requirements await bank confirmation.\",\n            \"classification\": \"future_stage_condition\"\n          },\n          {\n            \"code\": \"post_review_execution\",\n            \"description\": \"Shipment, customs clearance, formal bank application, credit approval, LC issuance and settlement are future stages.\",\n            \"classification\": \"future_stage_condition\"\n          }\n        ]\n      },\n      \"event_and_remediation_history\": {\n        \"classification\": \"retained_history\",\n        \"summary\": \"Earlier evidence gaps and attestation corrections remain retained as resolved actions; one future customs-release action remains open.\",\n        \"completed_count\": 5,\n        \"open_count\": 1\n      },\n      \"logistics\": {\n        \"status\": \"prepared_for_phase_1\",\n        \"planned_route\": \"Southampton to Tunis\",\n        \"planned_shipment_date\": \"2026-10-05\",\n        \"electronic_bill_of_lading\": {\n          \"reference\": \"TV-eBL-DPUCLYD5\",\n          \"version\": 2,\n          \"status\": \"reviewed_and_accepted\"\n        },\n        \"shipment_execution\": \"not_started\",\n        \"classification\": \"current\"\n      },\n      \"customs\": {\n        \"reference\": \"TV-CUS-DEC-4GDC2559\",\n        \"version\": 7,\n        \"status\": \"preparation_reviewed_for_phase_1\",\n        \"filing_or_clearance\": \"not_asserted\",\n        \"classification\": \"current\"\n      },\n      \"rules_and_compliance\": {\n        \"rules\": {\n          \"reference\": \"TV-RULES-20260925-8N0D54\",\n          \"version\": 18,\n          \"status\": \"provisional_assessment_reviewed\"\n        },\n        \"compliance\": {\n          \"reference\": \"TV-COMP-20260925-ETIORI\",\n          \"version\": 10,\n          \"status\": \"provisional_assessment_reviewed\"\n        },\n        \"decision_boundary\": \"Independent institutional and qualified compliance review remains required.\",\n        \"classification\": \"current\"\n      },\n      \"lc_request\": {\n        \"reference\": \"LC-REQ-20260922-0972A23E\",\n        \"version\": 11,\n        \"status\": \"prepared_for_controlled_initial_bank_review\",\n        \"requested_finance\": {\n          \"amount\": \"30000.00\",\n          \"currency\": \"GBP\"\n        },\n        \"expiry_date\": \"2026-12-20\",\n        \"expiry_place\": \"Tunis Trade Centre\",\n        \"issued_lc\": false,\n        \"classification\": \"current\"\n      },\n      \"finance_readiness\": {\n        \"overall_status\": \"complete_for_phase_1_initial_review\",\n        \"complete_signals\": 6,\n        \"total_signals\": 6,\n        \"signals\": [\n          {\n            \"code\": \"trust_evidence\",\n            \"status\": \"complete_for_phase_1\",\n            \"classification\": \"provisional_system_assessment\"\n          },\n          {\n            \"code\": \"rules_evidence\",\n            \"status\": \"complete_for_phase_1\",\n            \"classification\": \"provisional_system_assessment\"\n          },\n          {\n            \"code\": \"pre_shipment_events\",\n            \"status\": \"complete_for_phase_1\",\n            \"classification\": \"provisional_system_assessment\"\n          },\n          {\n            \"code\": \"commercial_evidence\",\n            \"status\": \"complete_for_phase_1\",\n            \"classification\": \"provisional_system_assessment\"\n          },\n          {\n            \"code\": \"risk_and_exceptions\",\n            \"status\": \"complete_for_phase_1\",\n            \"classification\": \"provisional_system_assessment\"\n          },\n          {\n            \"code\": \"finance_preparation\",\n            \"status\": \"complete_for_phase_1_initial_review\",\n            \"classification\": \"provisional_system_assessment\"\n          }\n        ],\n        \"interpretation\": \"Readiness supports controlled initial review; it is not a credit or underwriting decision.\"\n      },\n      \"finance_readiness_pack\": {\n        \"reference\": \"FRP-20260925-4B6DA6CA\",\n        \"version\": 6,\n        \"status\": \"prepared_for_controlled_initial_bank_review\",\n        \"classification\": \"current\",\n        \"package_url\": \"https://demo.tradevow.com/ebrd-phase1/\"\n      },\n      \"reviews\": {\n        \"current\": {\n          \"reference\": \"REVIEW-20260925-36173CA5\",\n          \"outcome\": \"Suitable for controlled Phase 2 discussion\",\n          \"classification\": \"current\",\n          \"decision_type\": \"human_review_outcome\",\n          \"pack_reference\": \"FRP-20260925-4B6DA6CA\",\n          \"pack_version\": 6,\n          \"lc_request_reference\": \"LC-REQ-20260922-0972A23E\",\n          \"lc_request_version\": 11,\n          \"purchase_order_reference\": \"TV-PO-YJTTZB6X\",\n          \"purchase_order_version\": 4\n        },\n        \"historical\": [\n          {\n            \"reference\": \"REVIEW-20260923-ECE001E1\",\n            \"outcome_at_review\": \"Additional information requested\",\n            \"status_at_review\": \"Awaiting requested information\",\n            \"pack_reference\": \"FRP-20260923-1A0B27D1\",\n            \"pack_version\": 3,\n            \"lc_request_version\": 6,\n            \"classification\": \"historical\"\n          },\n          {\n            \"reference\": \"REVIEW-20260923-82104941\",\n            \"outcome_at_review\": \"Suitable for controlled Phase 2 discussion\",\n            \"status_at_review\": \"Completed\",\n            \"pack_reference\": \"FRP-20260923-3463E6B4\",\n            \"pack_version\": 4,\n            \"lc_request_version\": 10,\n            \"classification\": \"historical\"\n          }\n        ]\n      },\n      \"source_version_register\": [\n        {\n          \"record_type\": \"transaction\",\n          \"reference\": \"TV-TXN-20260921-8A17367F\",\n          \"version\": 2\n        },\n        {\n          \"record_type\": \"purchase_order\",\n          \"reference\": \"TV-PO-YJTTZB6X\",\n          \"version\": 4\n        },\n        {\n          \"record_type\": \"lc_request\",\n          \"reference\": \"LC-REQ-20260922-0972A23E\",\n          \"version\": 11\n        },\n        {\n          \"record_type\": \"finance_readiness_pack\",\n          \"reference\": \"FRP-20260925-4B6DA6CA\",\n          \"version\": 6\n        },\n        {\n          \"record_type\": \"customs_preparation\",\n          \"reference\": \"TV-CUS-DEC-4GDC2559\",\n          \"version\": 7\n        },\n        {\n          \"record_type\": \"rules_assessment\",\n          \"reference\": \"TV-RULES-20260925-8N0D54\",\n          \"version\": 18\n        },\n        {\n          \"record_type\": \"compliance_assessment\",\n          \"reference\": \"TV-COMP-20260925-ETIORI\",\n          \"version\": 10\n        },\n        {\n          \"record_type\": \"electronic_bill_of_lading\",\n          \"reference\": \"TV-eBL-DPUCLYD5\",\n          \"version\": 2\n        }\n      ],\n      \"execution_boundaries\": {\n        \"formal_bank_application\": \"not_submitted\",\n        \"credit_decision\": \"not_recorded\",\n        \"lc_issuance\": \"not_issued\",\n        \"customs_filing_or_clearance\": \"not_asserted\",\n        \"shipment_delivery_or_title_transfer\": \"not_asserted\",\n        \"settlement_execution\": \"not_started\",\n        \"institution_decision\": \"The consuming institution retains all credit, underwriting, approval and execution decisions.\"\n      }\n    },\n    \"relationships\": {\n      \"transaction\": {\n        \"links\": {\n          \"related\": \"/v1/transactions/TV-TXN-20260921-8A17367F\"\n        }\n      },\n      \"evidence_pack\": {\n        \"links\": {\n          \"related\": \"/v1/transactions/TV-TXN-20260921-8A17367F/evidence-pack\"\n        }\n      },\n      \"finance_readiness\": {\n        \"links\": {\n          \"related\": \"/v1/transactions/TV-TXN-20260921-8A17367F/finance-readiness\"\n        }\n      }\n    },\n    \"links\": {\n      \"self\": \"/v1/transactions/TV-TXN-20260921-8A17367F/institutional-review?case_snapshot_fingerprint=1ea854f0a2c308b959042f21df537f6e2abaf65b5a5f980dd6ce59458db754f9\",\n      \"demonstration\": \"https://demo.tradevow.com/ebrd-phase1/\"\n    }\n  },\n  \"meta\": {\n    \"api_version\": \"v1\",\n    \"snapshot\": {\n      \"generated_at\": \"2026-09-25T16:47:19.416Z\",\n      \"case_snapshot_fingerprint\": \"1ea854f0a2c308b959042f21df537f6e2abaf65b5a5f980dd6ce59458db754f9\",\n      \"algorithm\": \"SHA-256\",\n      \"meaning\": \"Identifies the version-locked transaction state shared by current outputs; it is not a file hash.\",\n      \"current_at_generation\": true\n    },\n    \"integrity\": {\n      \"package_content_fingerprint\": \"abea7304213279c8197b677e4df8035ad66ad523b6bf4a43224a5f6431eade17\",\n      \"package_manifest_sha256\": \"21c5f2b9bfe9efa80fe4be283ae0574027b42d47d35f3a5574a93521d134030c\",\n      \"presentation_pdf_sha256\": \"4ee83f15d66a66beebf788ebfdd0546c0476e018082b7d2fdbcbb23240e19ab3\",\n      \"downloadable_zip_sha256\": \"66ba9ac7c5313e1a448eff744eba43d2647f14399d2878408297d441d0198ba6\",\n      \"note\": \"File, package-content, manifest, ZIP and case-snapshot fingerprints have distinct scopes.\"\n    },\n    \"data_classification\": \"Confidential \\u2014 controlled synthetic demonstration\",\n    \"synthetic_demonstration\": true,\n    \"decision_boundary\": \"No EBRD endorsement, formal bank application, underwriting decision, credit approval, LC issuance, Customs clearance or settlement is asserted.\"\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Institutional review returned\", () => {",
                  "  pm.response.to.have.status(200);",
                  "  const body = pm.response.json();",
                  "  pm.expect(body.meta.snapshot.case_snapshot_fingerprint).to.eql(\"1ea854f0a2c308b959042f21df537f6e2abaf65b5a5f980dd6ce59458db754f9\");",
                  "  pm.expect(body.data.attributes.finance_readiness.complete_signals).to.eql(6);",
                  "});"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "D. Trade instrument APIs",
      "item": [
        {
          "name": "Register purchase order",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Purchase order registered', () => pm.response.to.have.status(201));",
                  "if (pm.response.code === 201) pm.collectionVariables.set('instrument_id', pm.response.json().id);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_reference\": \"PO-89431\",\n  \"buyer_organization_id\": \"{{buyer_organization_id}}\",\n  \"seller_organization_id\": \"{{seller_organization_id}}\",\n  \"issued_at\": \"2026-09-04T16:00:00Z\",\n  \"value\": {\"amount\": \"48500.00\", \"currency\": \"GBP\"},\n  \"incoterm\": \"CIF\",\n  \"transaction_link_mode\": \"create_or_link\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/purchase-orders",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "purchase-orders"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "E. Evidence & document APIs",
      "item": [
        {
          "name": "Register partner-hosted evidence",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Evidence registered', () => pm.response.to.have.status(201));",
                  "if (pm.response.code === 201) pm.collectionVariables.set('evidence_id', pm.response.json().id);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"electronic_bill_of_lading\",\n  \"subject_type\": \"transaction\",\n  \"subject_id\": \"{{transaction_id}}\",\n  \"issuer_organization_id\": \"{{carrier_organization_id}}\",\n  \"storage_mode\": \"partner_reference\",\n  \"external_uri\": \"https://partner.example/evidence/ebl-8721\",\n  \"content_hash\": \"4fd6f2cfe41...\",\n  \"hash_algorithm\": \"sha-256\",\n  \"media_type\": \"application/pdf\",\n  \"sensitivity\": \"confidential\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/evidence",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "evidence"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "F. Logistics & execution APIs",
      "item": [
        {
          "name": "Report shipment departure",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Milestone accepted', () => pm.response.to.have.status(202));"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"shipment.departed\",\n  \"occurred_at\": \"2026-09-05T06:42:00Z\",\n  \"location_code\": \"BWGBE\",\n  \"provider_reference\": \"PCS-EVT-981728\",\n  \"status\": \"observed\",\n  \"evidence_ids\": [\"{{evidence_id}}\"],\n  \"details\": {\"mode\": \"road\", \"next_location_code\": \"ZADUR\"}\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/shipments/{{shipment_id}}/milestones",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "shipments",
                "{{shipment_id}}",
                "milestones"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "G. Compliance & rules APIs",
      "item": [
        {
          "name": "Evaluate transaction requirement",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Requirement evaluated', () => pm.response.to.have.status(202));",
                  "pm.test('Policy version returned', () => pm.expect(pm.response.json()).to.have.property('policy_version'));"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transaction_id\": \"{{transaction_id}}\",\n  \"facts\": {\"goods_origin_country\": \"BW\", \"destination_country\": \"GB\", \"commodity_code\": \"080510\"},\n  \"evidence_ids\": [\"{{evidence_id}}\"],\n  \"provider_reference\": \"rules-eval-4401\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/requirements/{{requirement_id}}/evaluations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "requirements",
                "{{requirement_id}}",
                "evaluations"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "H. Finance-readiness APIs",
      "item": [
        {
          "name": "Get finance readiness",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Readiness returned', () => pm.response.to.have.status(200));",
                  "pm.test('Signals are present', () => pm.expect(pm.response.json().signals).to.be.an('array'));"
                ]
              }
            }
          ],
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/transactions/{{transaction_id}}/finance-readiness",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "transactions",
                "{{transaction_id}}",
                "finance-readiness"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "I. Settlement APIs",
      "item": [
        {
          "name": "Publish payment confirmation",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Payment confirmation accepted', () => pm.response.to.have.status(202));",
                  "pm.test('Confirmed status returned', () => pm.expect(pm.response.json().status).to.eql('confirmed'));"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{idempotency_key}}"
              },
              {
                "key": "X-Correlation-ID",
                "value": "{{correlation_id}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"payment.confirmed\",\n  \"provider_reference\": \"YC-PAY-882901\",\n  \"occurred_at\": \"2026-09-05T10:05:21Z\",\n  \"amount\": {\"amount\": \"48500.00\", \"currency\": \"GBP\"},\n  \"rail\": \"bank_transfer\",\n  \"evidence\": {\"confirmation_reference\": \"CONF-772190\", \"content_hash\": \"6a21c8f042...\", \"hash_algorithm\": \"sha-256\"}\n}"
            },
            "url": {
              "raw": "{{base_url}}/v1/settlements/{{settlement_id}}/payment-events",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "settlements",
                "{{settlement_id}}",
                "payment-events"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Connect account lifecycle",
      "description": "Use the secure cookie jar. Keep OTP and API-key values confidential. Reset key_idempotency_key to a new UUID before each distinct create or rotate request, and retain it when retrying the same request. API-family examples use X-TradeVow-API-Key; account requests deliberately use no API-key authentication.",
      "item": [
        {
          "name": "Request signup OTP",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{email}}\",\n  \"purpose\": \"access_request\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/auth/otp/request"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 202) pm.collectionVariables.set('challenge_id', pm.response.json().challengeId);"
                ]
              }
            }
          ]
        },
        {
          "name": "Request sign-in OTP",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{email}}\",\n  \"purpose\": \"login\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/auth/otp/request"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 202) pm.collectionVariables.set('challenge_id', pm.response.json().challengeId);"
                ]
              }
            }
          ]
        },
        {
          "name": "Verify signup OTP and set secure cookie",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{email}}\",\n  \"purpose\": \"access_request\",\n  \"challengeId\": \"{{challenge_id}}\",\n  \"code\": \"{{otp_code}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/auth/otp/verify"
          }
        },
        {
          "name": "Verify sign-in OTP and set secure cookie",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{email}}\",\n  \"purpose\": \"login\",\n  \"challengeId\": \"{{challenge_id}}\",\n  \"code\": \"{{otp_code}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/auth/otp/verify"
          }
        },
        {
          "name": "Submit verified application",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"organizationName\": \"Example Partner Ltd\",\n  \"tradingName\": \"\",\n  \"registrationNumber\": \"TEST-123\",\n  \"country\": \"ZA\",\n  \"website\": \"https://example.com\",\n  \"firstName\": \"Example\",\n  \"lastName\": \"Partner\",\n  \"jobTitle\": \"Integration engineer\",\n  \"email\": \"{{email}}\",\n  \"telephone\": \"+27111234567\",\n  \"organizationType\": \"trade-platform\",\n  \"requestedFamilies\": [\n    \"A\",\n    \"B\",\n    \"C\",\n    \"D\",\n    \"E\",\n    \"F\",\n    \"G\",\n    \"H\",\n    \"I\"\n  ],\n  \"requestedEnvironments\": [\n    \"sandbox\"\n  ],\n  \"intendedUse\": \"Integrate trade lifecycle APIs using controlled sandbox test data.\",\n  \"expectedVolume\": \"1000 calls/month\",\n  \"targetGoLive\": \"\",\n  \"callbackUrls\": [],\n  \"dataRegions\": [\n    \"ZA\"\n  ],\n  \"termsAccepted\": true,\n  \"privacyAccepted\": true,\n  \"idempotencyKey\": \"{{access_idempotency_key}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/access/account"
          }
        },
        {
          "name": "Retrieve account",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "url": "{{connect_url}}/api/access/account"
          }
        },
        {
          "name": "List safe API-key metadata",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "url": "{{connect_url}}/api/access/keys"
          }
        },
        {
          "name": "Create sandbox API key (secret returned once)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Postman sandbox\",\n  \"environment\": \"sandbox\",\n  \"scopes\": [\n    \"organizations:read\",\n    \"transactions:read\"\n  ],\n  \"idempotencyKey\": \"{{key_idempotency_key}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/access/keys"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code < 300) pm.collectionVariables.set('key_id', pm.response.json().key.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Rotate API key (use a new idempotency UUID)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Postman sandbox replacement\",\n  \"environment\": \"sandbox\",\n  \"scopes\": [\n    \"organizations:read\",\n    \"transactions:read\"\n  ],\n  \"idempotencyKey\": \"{{key_idempotency_key}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/access/keys/{{key_id}}/rotate"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code < 300) pm.collectionVariables.set('key_id', pm.response.json().key.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Revoke API key",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/access/keys/{{key_id}}"
          }
        },
        {
          "name": "Recent redacted audit events",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "url": "{{connect_url}}/api/access/audit"
          }
        },
        {
          "name": "Request live review (does not approve)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/access/production"
          }
        },
        {
          "name": "Log out and revoke session",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Origin",
                "value": "https://connect.tradevow.com"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": "{{connect_url}}/api/auth/logout"
          }
        }
      ]
    }
  ]
}
