Counterparties

What is a counterparty and how do I use one?

What is a Counterparty?

A counterparty is an external individual or business that participates in financial transactions with your bank or customers. Counterparties represent the "other side" of a transaction—the recipients of payments or senders of funds.

Counterparties are

  • External to your platform: Not users of your application, but third parties involved in transfers
  • Identity-verified: Undergo compliance screening (watchlist checks) to meet regulatory requirements
  • Associated with accounts: Can have external bank accounts and/or external crypto wallets attached for receiving funds

Counterparty Types

Counterparties can represent individuals or businesses.

TypeDescriptionExamples
IndividualA personFreelancers, family members, individual vendors
BusinessA company or organizationSuppliers, partners, corporate clients

Ownership Types

Counterparties can be scoped to different levels of your organization.

ScopeUse Case
Customer-ownedA counterparty belonging to a specific customer
Bank-ownedA counterparty belonging to your bank/organization

Use Cases

  • Fiat transfers: Send ACH, wire, RTP, FedNow or EFT payments to a counterparty's external bank account
  • Crypto transfers: Send cryptocurrency to a counterparty's external wallet
  • Payment tracking: Associate transfers with specific recipients for reporting and reconciliation
  • Compliance: Maintain audit trails and satisfy travel rule requirements for transfers

Counterparty vs. Customer

AspectCustomerCounterparty
RelationshipDirect user of your platformExternal party in transactions
Identity verificationFull KYC/KYBWatchlist screening
AccountsPlatform accounts (fiat & crypto)External bank accounts & wallets
OnboardingComplete user onboarding flowCreated via API when needed

Counterparty Model

The following examples show the structure of individual and business counterparty objects.

{
  "created_at": "2024-09-19T23:36:58.367733Z",
  "updated_at": "2024-09-19T23:36:59.791494Z",
  "guid": "926f24ed35aebb8bb45623283e614099",
  "type": "individual",
  "bank_guid": "bank_guid",
  "customer_guid": "customer_guid",
  "state": "verified",
  "labels": null,
  "compliance_decisions": [
    {
      "type": "person_watchlists",
      "state": "passed",
      "failure_codes": []
    }
  ]
}
{
  "created_at": "2024-09-23T16:51:12.669696Z",
  "updated_at": "2024-09-23T16:51:13.969713Z",
  "guid": "83716793476895a971f7fc232ce202e9",
  "type": "business",
  "bank_guid": "bank_guid",
  "customer_guid": "customer_guid",
  "state": "unverified",
  "labels": null,
  "compliance_decisions": [
    {
      "type": "business_watchlists",
      "state": "passed",
      "failure_codes": []
    }
  ]
}

Counterparty States

StateDescription
storingInitial state immediately after creation. The counterparty record is being set up and stored in the platform. No compliance screening has occurred yet.
unverifiedThe counterparty has been fully set up, but no compliance decisions exist yet, or previous decisions have expired or been invalidated. The counterparty may still be used for certain operations but has not passed screening.
verifiedThe counterparty has an active, passing watchlist screening. Ready for use in transfers and payments.
rejectedThe counterparty has an active compliance decision that failed. Cannot be used for transactions until the issue is resolved.

Compliance Decisions

An array of decisions determined by the verification of a counterparty. Each compliance_decision contains a type, state, and any failure_codes that may be returned.

Compliance Decision States

StateMeaning
passedWatchlist screening passed—no matches found. Counterparty is verified.
failedWatchlist screening failed—potential match found. Counterparty is rejected.
expiredThe decision has aged past its validity period and needs to be re-run.
invalidatedThe decision was manually invalidated (e.g., counterparty details changed).

When a counterparty is rejected, the compliance_decisions[].failure_codes array contains the specific reasons.

Key Behavioral Notes

  • Simpler verification: Counterparty verification requires only watchlist checks—no KYC document verification, selfies, or other extensive checks
  • Expiring decisions: The expired_at timestamp indicates when the decision becomes invalid. After expiration, the counterparty reverts to unverified and needs re-screening
  • Rejected counterparties blocked: Rejected counterparties cannot participate in transfers
  • Multiple failure codes possible: A single screening can identify multiple issues (e.g., both a watchlist match and PEP status)
  • Re-verification available: If counterparty information is updated or time passes, you can trigger a new identity verification to potentially clear a previously rejected counterparty

Next Steps