# Contacts

Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.

Every transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.

Contacts created through the portal are assigned the party type `EXTERNAL`. In addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.

Each contact also has a `type`:

* `COMPANY`
* `INDIVIDUAL`

The required data fields depend on the contact type, and some markets may have additional regulatory requirements.

## Get list of contacts linked to the organization

> Returns all EXTERNAL contacts linked to the organization.\
> \
> Each contact includes a \`verificationStatus\` field that indicates its compliance approval state:\
> \
> \- \`VERIFIED\` – Approved by compliance\
> \- \`PENDING\` – Verification in progress (check for messages from the compliance team)\
> \- \`NOT\_VERIFIED\` – Verification has not been started\
> \- \`UNVERIFIED\` – Rejected by compliance

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts":{"get":{"summary":"Get list of contacts linked to the organization","tags":["contacts"],"description":"Returns all EXTERNAL contacts linked to the organization.\n\nEach contact includes a `verificationStatus` field that indicates its compliance approval state:\n\n- `VERIFIED` – Approved by compliance\n- `PENDING` – Verification in progress (check for messages from the compliance team)\n- `NOT_VERIFIED` – Verification has not been started\n- `UNVERIFIED` – Rejected by compliance","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false},{"schema":{"default":20,"type":"integer","minimum":0,"maximum":100},"in":"query","name":"pageSize","required":false},{"schema":{"type":"boolean"},"in":"query","name":"includeInactive","required":false},{"schema":{"type":"string","maxLength":255},"in":"query","name":"search","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["COMPANY","INDIVIDUAL"]},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"displayName":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"verificationStatus":{"type":"string","enum":["VERIFIED","PENDING","UNVERIFIED","NOT_VERIFIED"]}},"required":["id","type","email","displayName","verificationStatus"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"pageSize":{"type":"number"},"totalItems":{"type":"number"},"totalPages":{"type":"number"}},"required":["page","pageSize","totalItems","totalPages"],"additionalProperties":false}},"required":["records","pagination"],"additionalProperties":false}}}}}}}}}
```

## Create a new contact

> To create a contact, you must provide the following basic information:\
> \
> \*\*Required for all contacts\*\*\
> \
> \- Email\
> \- \`triggerVerification\` (boolean)\
> \
> \*\*INDIVIDUAL contacts\*\*\
> \
> \- First name and last name\
> \
> Address is optional. If you omit it, no country is required.\
> \
> \*\*COMPANY contacts\*\*\
> \
> \- Company name\
> \- Incorporation date\
> \- Tax ID\
> \- Full registered address: street, postal code, city or town, country\
> \
> \*\*Verification process\*\*\
> \
> The \`triggerVerification\` flag controls whether an email is sent to the contact with a link to our KYB/KYC onboarding tool.\
> \
> When enabled, the contact will be asked to provide:\
> \
> \- Additional personal or business details\
> \- Required documents\
> \- Market-specific information\
> \
> We strongly recommend setting \`triggerVerification\` to \`true\` to streamline the compliance approval process.\
> If this flag is not enabled, our compliance team may need to request information manually, which can cause delays.\
> \
> \*\*Mandatory verification for certain countries\*\*\
> \
> For \`INDIVIDUAL\` contacts residing in the following countries:\
> \
> \- Kenya\
> \- Zambia\
> \- South Africa\
> \- Nigeria\
> \
> The \`triggerVerification\` flag must be set to \`true\`.\
> This is required to collect additional personal data needed for on-ramp operations in these regions.

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"security":[{"every":["manage:contact_book"]}],"components":{"securitySchemes":{"every":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://auth.dev.damisa.xyz/authorize","tokenUrl":"https://auth.dev.damisa.xyz/oauth/token","scopes":{"create:settlement":"Allows initiating a new settlement.","create:payout":"Allows creating a new payout.","manage:contact_book":"Allows managing the organization's contact book.","create:payment_request":"Allows creating a new payment request.","manage:users":"Allows organization's users","manage:token":"Allows to create and delete API Tokens.","manage:webhook":"Allows to create and delete webhooks."}}}}}},"paths":{"/api/v1/contacts":{"post":{"summary":"Create a new contact","tags":["contacts"],"description":"To create a contact, you must provide the following basic information:\n\n**Required for all contacts**\n\n- Email\n- `triggerVerification` (boolean)\n\n**INDIVIDUAL contacts**\n\n- First name and last name\n\nAddress is optional. If you omit it, no country is required.\n\n**COMPANY contacts**\n\n- Company name\n- Incorporation date\n- Tax ID\n- Full registered address: street, postal code, city or town, country\n\n**Verification process**\n\nThe `triggerVerification` flag controls whether an email is sent to the contact with a link to our KYB/KYC onboarding tool.\n\nWhen enabled, the contact will be asked to provide:\n\n- Additional personal or business details\n- Required documents\n- Market-specific information\n\nWe strongly recommend setting `triggerVerification` to `true` to streamline the compliance approval process.\nIf this flag is not enabled, our compliance team may need to request information manually, which can cause delays.\n\n**Mandatory verification for certain countries**\n\nFor `INDIVIDUAL` contacts residing in the following countries:\n\n- Kenya\n- Zambia\n- South Africa\n- Nigeria\n\nThe `triggerVerification` flag must be set to `true`.\nThis is required to collect additional personal data needed for on-ramp operations in these regions.","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"nullable":true,"enum":[null]}]},"triggerVerification":{"type":"boolean"},"companyName":{"type":"string","minLength":2,"maxLength":500},"registrationNumber":{"type":"string","maxLength":50},"incorporationDate":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"taxId":{"type":"string","maxLength":50},"type":{"type":"string","enum":["COMPANY"]},"address":{"type":"object","properties":{"street":{"type":"string","minLength":2,"maxLength":500},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"type":"string","minLength":2,"maxLength":50},"city":{"type":"string","minLength":2,"maxLength":100},"stateOrProvince":{"type":"string"},"country":{"type":"string","minLength":1}},"required":["street","postalCode","city","country"]}},"required":["email","triggerVerification","companyName","incorporationDate","taxId","type","address"]},{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"nullable":true,"enum":[null]}]},"triggerVerification":{"type":"boolean"},"firstName":{"type":"string","minLength":2,"maxLength":50},"lastName":{"type":"string","minLength":2,"maxLength":50},"dateOfBirth":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"registrationNumber":{"type":"string","maxLength":50},"taxId":{"type":"string","maxLength":50},"type":{"type":"string","enum":["INDIVIDUAL"]},"address":{"type":"object","properties":{"street":{"type":"string","minLength":2,"maxLength":500},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"type":"string","minLength":2,"maxLength":50},"city":{"type":"string","minLength":2,"maxLength":100},"stateOrProvince":{"type":"string"},"country":{"type":"string","minLength":1}},"required":["country"]}},"required":["email","triggerVerification","firstName","lastName","type"]}]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false}}}}}}}}}
```

## GET /api/v1/internal/contacts

> Get list of contacts linked to the organization (internal)

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/internal/contacts":{"get":{"summary":"Get list of contacts linked to the organization (internal)","tags":["contacts"],"parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false},{"schema":{"default":20,"type":"integer","minimum":0,"maximum":100},"in":"query","name":"pageSize","required":false},{"schema":{"type":"boolean"},"in":"query","name":"includeInactive","required":false},{"schema":{"type":"string","maxLength":255},"in":"query","name":"search","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["COMPANY","INDIVIDUAL"]},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"displayName":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"verificationStatus":{"type":"string","enum":["VERIFIED","PENDING","UNVERIFIED","NOT_VERIFIED"]},"identityType":{"type":"string","enum":["OWN","EXTERNAL"]},"deactivated":{"type":"boolean"}},"required":["id","type","email","displayName","verificationStatus","identityType","deactivated"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"pageSize":{"type":"number"},"totalItems":{"type":"number"},"totalPages":{"type":"number"}},"required":["page","pageSize","totalItems","totalPages"],"additionalProperties":false}},"required":["records","pagination"],"additionalProperties":false}}}}}}}}}
```

## POST /api/v1/internal/contacts

> Create a new contact (internal)

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"security":[{"every":["manage:contact_book"]}],"components":{"securitySchemes":{"every":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://auth.dev.damisa.xyz/authorize","tokenUrl":"https://auth.dev.damisa.xyz/oauth/token","scopes":{"create:settlement":"Allows initiating a new settlement.","create:payout":"Allows creating a new payout.","manage:contact_book":"Allows managing the organization's contact book.","create:payment_request":"Allows creating a new payment request.","manage:users":"Allows organization's users","manage:token":"Allows to create and delete API Tokens.","manage:webhook":"Allows to create and delete webhooks."}}}}}},"paths":{"/api/v1/internal/contacts":{"post":{"summary":"Create a new contact (internal)","tags":["contacts"],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"nullable":true,"enum":[null]}]},"triggerVerification":{"type":"boolean"},"companyName":{"type":"string","minLength":2,"maxLength":500},"registrationNumber":{"type":"string","maxLength":50},"incorporationDate":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"taxId":{"type":"string","maxLength":50},"type":{"type":"string","enum":["COMPANY"]},"address":{"type":"object","properties":{"street":{"type":"string","minLength":2,"maxLength":500},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"type":"string","minLength":2,"maxLength":50},"city":{"type":"string","minLength":2,"maxLength":100},"stateOrProvince":{"type":"string"},"country":{"type":"string","minLength":1}},"required":["street","postalCode","city","country"]}},"required":["email","triggerVerification","companyName","incorporationDate","taxId","type"]},{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"nullable":true,"enum":[null]}]},"triggerVerification":{"type":"boolean"},"firstName":{"type":"string","minLength":2,"maxLength":50},"lastName":{"type":"string","minLength":2,"maxLength":50},"dateOfBirth":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"registrationNumber":{"type":"string","maxLength":50},"taxId":{"type":"string","maxLength":50},"type":{"type":"string","enum":["INDIVIDUAL"]},"address":{"type":"object","properties":{"street":{"type":"string","minLength":2,"maxLength":500},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"type":"string","minLength":2,"maxLength":50},"city":{"type":"string","minLength":2,"maxLength":100},"stateOrProvince":{"type":"string"},"country":{"type":"string","minLength":1}},"required":["country"]}},"required":["email","triggerVerification","firstName","lastName","type"]}]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false}}}}}}}}}
```

## GET /api/v1/internal/contacts/{contactId}

> Get a contact by ID (internal)

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/internal/contacts/{contactId}":{"get":{"summary":"Get a contact by ID (internal)","tags":["contacts"],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["COMPANY","INDIVIDUAL"]},"verificationStatus":{"type":"string","enum":["VERIFIED","PENDING","UNVERIFIED","NOT_VERIFIED"]},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"displayName":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"description":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"registrationNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"address":{"anyOf":[{"type":"object","properties":{"street":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"city":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"stateOrProvince":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"country":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"additionalProperties":false},{"nullable":true,"enum":[null]}]},"deactivated":{"type":"boolean"},"incorporationDate":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"taxId":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"phone":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"idNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"nin":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"bvn":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"identityType":{"type":"string","enum":["OWN","EXTERNAL"]},"dataVerified":{"type":"boolean"}},"required":["id","type","verificationStatus","email","displayName","description","deactivated","identityType","dataVerified"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```

## Get a contact by ID

> Returns the full details of a specific contact.\
> \
> The \`verificationStatus\` field indicates its compliance approval state:\
> \
> \- \`VERIFIED\` – Approved by compliance\
> \- \`PENDING\` – Verification in progress (check for messages from the compliance team)\
> \- \`NOT\_VERIFIED\` – Verification has not been started\
> \- \`UNVERIFIED\` – Rejected by compliance

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts/{contactId}":{"get":{"summary":"Get a contact by ID","tags":["contacts"],"description":"Returns the full details of a specific contact.\n\nThe `verificationStatus` field indicates its compliance approval state:\n\n- `VERIFIED` – Approved by compliance\n- `PENDING` – Verification in progress (check for messages from the compliance team)\n- `NOT_VERIFIED` – Verification has not been started\n- `UNVERIFIED` – Rejected by compliance","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["COMPANY","INDIVIDUAL"]},"verificationStatus":{"type":"string","enum":["VERIFIED","PENDING","UNVERIFIED","NOT_VERIFIED"]},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"displayName":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"description":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"registrationNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"address":{"anyOf":[{"type":"object","properties":{"street":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"street2":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"postalCode":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"city":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"stateOrProvince":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"country":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"additionalProperties":false},{"nullable":true,"enum":[null]}]},"deactivated":{"type":"boolean"},"incorporationDate":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"taxId":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"phone":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"idNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"nin":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"bvn":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"required":["id","type","verificationStatus","email","displayName","description","deactivated"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```

## Update a contact

> Automatic updates to contact details are not currently supported via the API.\
> \
> If you need to change any contact information, please contact our operations team with the requested updates.

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts/{contactId}":{"patch":{"summary":"Update a contact","tags":["contacts"],"description":"Automatic updates to contact details are not currently supported via the API.\n\nIf you need to change any contact information, please contact our operations team with the requested updates.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"501":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```

## GET /api/v1/contacts/{contactId}/external-accounts

> Get a list of a contact's external accounts

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts/{contactId}/external-accounts":{"get":{"summary":"Get a list of a contact's external accounts","tags":["contacts"],"parameters":[{"schema":{"type":"boolean"},"in":"query","name":"includeInactive","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"identityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DISABLED","PENDING_VERIFICATION"]},"country":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"deactivated":{"type":"boolean"},"paymentInstruction":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["CRYPTO","FIAT"]},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"asset":{"type":"string"},"rail":{"anyOf":[{"type":"string","enum":["ETHEREUM","TRON","BASE","POLYGON"]},{"nullable":true,"enum":[null]}]},"paymentIdentifiers":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"type":{"type":"string","enum":["BSB","AU_ACCOUNT_NUMBER","IBAN","WALLET_ADDRESS","MEMO","ACCOUNT_NUMBER","ABA_ROUTING_NUMBER","SORT_CODE","SWIFT_BIC","BANK_NAME","BANK_ADDRESS","BANK_CITY","BANK_POSTAL_CODE","TRANSFER_DESCRIPTION_MATCH_TOKEN","PROVIDER_ACCOUNT_ID","ACCOUNT_HOLDER_NAME"]},"value":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"active":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"sequenceNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"amount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"usdAmount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"complete":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"providerId":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"required":["type"],"additionalProperties":false}},"isReadOnly":{"type":"boolean"},"thirdPartyDisabled":{"type":"boolean"}},"required":["id","type","status","asset","rail","paymentIdentifiers","isReadOnly","thirdPartyDisabled"],"additionalProperties":false}},"required":["id","identityId","name","status","country","deactivated","paymentInstruction"],"additionalProperties":false}}},"required":["records"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```

## POST /api/v1/contacts/{contactId}/external-accounts

> Create a contact's external account

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"security":[{"every":["manage:contact_book"]}],"components":{"securitySchemes":{"every":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://auth.dev.damisa.xyz/authorize","tokenUrl":"https://auth.dev.damisa.xyz/oauth/token","scopes":{"create:settlement":"Allows initiating a new settlement.","create:payout":"Allows creating a new payout.","manage:contact_book":"Allows managing the organization's contact book.","create:payment_request":"Allows creating a new payment request.","manage:users":"Allows organization's users","manage:token":"Allows to create and delete API Tokens.","manage:webhook":"Allows to create and delete webhooks."}}}}}},"paths":{"/api/v1/contacts/{contactId}/external-accounts":{"post":{"summary":"Create a contact's external account","tags":["contacts"],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":255},"asset":{"type":"string","enum":["USDC","USDT","EURC","GBP","AUD","USD","EUR","NGN","KES","ARS","BRL"]},"paymentIdentifiers":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"type":{"type":"string","enum":["BSB","AU_ACCOUNT_NUMBER","IBAN","WALLET_ADDRESS","MEMO","ACCOUNT_NUMBER","ABA_ROUTING_NUMBER","SORT_CODE","SWIFT_BIC","BANK_NAME","BANK_ADDRESS","BANK_CITY","BANK_POSTAL_CODE","TRANSFER_DESCRIPTION_MATCH_TOKEN","PROVIDER_ACCOUNT_ID","ACCOUNT_HOLDER_NAME"]},"value":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"active":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"sequenceNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"amount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"usdAmount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"complete":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"providerId":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"required":["type"]}},"type":{"type":"string","enum":["CRYPTO"]},"rail":{"type":"string","enum":["ETHEREUM","TRON","BASE","POLYGON"]}},"required":["name","asset","paymentIdentifiers","type","rail"]},{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":255},"asset":{"type":"string","enum":["USDC","USDT","EURC","GBP","AUD","USD","EUR","NGN","KES","ARS","BRL"]},"paymentIdentifiers":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"type":{"type":"string","enum":["BSB","AU_ACCOUNT_NUMBER","IBAN","WALLET_ADDRESS","MEMO","ACCOUNT_NUMBER","ABA_ROUTING_NUMBER","SORT_CODE","SWIFT_BIC","BANK_NAME","BANK_ADDRESS","BANK_CITY","BANK_POSTAL_CODE","TRANSFER_DESCRIPTION_MATCH_TOKEN","PROVIDER_ACCOUNT_ID","ACCOUNT_HOLDER_NAME"]},"value":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"active":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"sequenceNumber":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]},"amount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"usdAmount":{"anyOf":[{"type":"number"},{"nullable":true,"enum":[null]}]},"complete":{"anyOf":[{"type":"boolean"},{"nullable":true,"enum":[null]}]},"providerId":{"anyOf":[{"type":"string"},{"nullable":true,"enum":[null]}]}},"required":["type"]}},"type":{"type":"string","enum":["FIAT"]},"country":{"type":"string"}},"required":["name","asset","paymentIdentifiers","type","country"]}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"stepUpVerificationOperationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["stepUpVerificationOperationId"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```

## Deactivate an external contact

> Deactivates a contact to prevent accidental transactions in the future.

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts/{contactId}/deactivate":{"post":{"summary":"Deactivate an external contact","tags":["contacts"],"description":"Deactivates a contact to prevent accidental transactions in the future.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```

## Activate an external contact

> Reactivates a previously deactivated contact.

```json
{"openapi":"3.0.3","info":{"title":"Dashboard API","version":"1.0.0"},"tags":[{"name":"contacts","description":"Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.\n\nEvery transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.\n\nContacts created through the portal are assigned the party type `EXTERNAL`.\nIn addition, each customer automatically has a contact with the party type `OWN`, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.\n\nEach contact also has a `type`:\n\n- `COMPANY`\n- `INDIVIDUAL`\n\nThe required data fields depend on the contact type, and some markets may have additional regulatory requirements."}],"paths":{"/api/v1/contacts/{contactId}/activate":{"post":{"summary":"Activate an external contact","tags":["contacts"],"description":"Reactivates a previously deactivated contact.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"contactId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["undefined","unauthorized","unprocessable_entity","not_found","already_exists","bad_request","conflict","forbidden","internal_server_error","validation_error","missing_permissions","unexpected_error","limit_reached","not_implemented","account_not_found","auth_invalid_api_key","auth_invalid_token","auth_missing_api_key","auth_missing_authorization","auth_missing_employee_header","auth_invalid_employee_header","auth_missing_idempotency_key","custom_asset_not_found","custom_asset_referenced_by_operations","custom_asset_symbol_already_active","custom_asset_symbol_conflict_builtin","custom_asset_symbol_previously_deleted","asset_unknown_symbol","asset_unsupported","dfns_multiple_assets_found","dfns_unsupported_asset","dfns_unsupported_network","dfns_webhook_signature_invalid","dfns_operational_wallet_already_exists","dfns_operational_wallet_not_found","external_contact_has_accounts","external_contact_not_found","hercle_api_error","hercle_balance_not_found","hercle_deposit_account_details_invalid","hercle_deposit_account_details_not_found","hercle_deposit_address_not_found","hercle_inbound_transaction_not_found","hercle_not_initialized","hercle_pair_not_found","hercle_payee_address_not_found","hercle_payee_not_found","hercle_transaction_already_matched","hercle_transfer_not_found","idempotency_missing_key","idempotency_key_too_long","idempotency_key_in_progress","idempotency_hash_mismatch","hpp_invalid_action","hpp_no_available_virtual_iban","hpp_payment_request_locked","hpp_sender_verification_incomplete","identity_not_found","identity_deactivated","identity_missing_payment_instruction","identity_provider_id_not_found","identity_account_not_found","identity_account_deactivated","identity_account_cannot_activate_deactivated_identity","identity_account_cannot_deactivate_non_external","identity_account_creation_failed","identity_account_missing_payment_instruction","identity_account_invalid_wallet_address","identity_account_missing_payment_identifier","invoice_not_found","invoice_upload_not_found","invoice_upload_access_denied","invoice_file_too_large","invoice_file_type_not_allowed","kyt_already_approved","kyt_invalid_transaction_type","kyt_manual_decision_already_made","kyt_transaction_not_found","kyt_unsupported_workflow_type","ledger_lock_exists","ledger_lock_held_by_another","ledger_insufficient_fund","ledger_address_invalid","ledger_asset_not_found","ledger_balance_locked","ledger_invalid_asset_format","ledger_not_implemented","ledger_transaction_conflict","ledger_transaction_validation_error","ledger_unsupported_payment_system","mail_step_up_verification_failed","mail_step_up_operation_not_found","manual_operation_not_found","manual_operation_duplicate_pi_key","manual_operation_insufficient_funds","manual_operation_invalid_pi_type","manual_operation_missing_own_identity","manual_operation_organization_link_inactive","manual_operation_pi_missing_account","manual_operation_pi_missing_wallet_provider","manual_operation_pi_not_found","manual_operation_posting_validation_error","manual_operation_unknown_asset","manual_operation_invalid_status_transition","manual_operation_invalid_transacting_entity","manual_operation_pi_missing_identity_account","manual_operation_pi_missing_identifier","manual_operation_amount_not_resolved","manual_operation_organization_link_invalid","manual_operation_self_transfer_forbidden","manual_operation_asset_mismatch","manual_operation_amount_mismatch","mep_missing_rail_id","mep_unsupported_crypto","onboarding_not_found","organization_not_found","organization_missing_own_identity","organization_missing_own_identity_email","billing_config_not_found","billing_invalid_asset","billing_invalid_spread_same_currency","organization_link_not_found","organization_link_already_exists","organization_link_already_deactivated","organization_link_self_link_forbidden","payment_instruction_not_found","payment_instruction_account_mismatch","payment_instruction_asset_mismatch","payment_instruction_conflict","payment_instruction_duplicate_identifier","payment_instruction_missing_wallet","payment_instruction_not_fiat","payment_request_not_found","payment_request_already_completed","payment_request_already_has_invoice","payment_request_contact_deactivated","payment_request_contact_not_verified","payment_request_escrow_release_condition_required","payment_request_has_pending_transactions","payment_request_identity_not_external","payment_request_invalid_status_for_completion","payment_request_invoice_not_uploaded","payment_request_no_matching_billing_instruments","payment_request_release_condition_not_allowed","payment_request_amount_exceeds_limit","payment_request_transaction_amount_mismatch","payment_request_transaction_not_found","payout_not_found","payout_amounts_empty","payout_deactivated_contact","payout_deactivated_identity_account","payout_destination_pi_not_found","payout_fx_quote_not_found","payout_invalid_destination_asset","payout_invalid_source_asset","payout_payment_not_confirmed","payout_source_pi_not_found","payout_transaction_not_found","payout_validation_error","unsupported_payout_option","disabled_payout_option","payment_not_confirmed","quote_fx_calculation_error","quote_invalid_source_asset","quote_no_matching_billing_instruments","reconciliation_cancel_failed","reconciliation_result_not_found","reconciliation_run_already_active","reconciliation_run_already_terminal","reconciliation_run_not_found","reconciliation_unknown_rail_type","redis_lock_creation_failed","slack_api_error","sumsub_api_error","sumsub_applicant_already_exists","sumsub_invalid_digest","sumsub_missing_identity_provider_id","sumsub_payment_method_already_exists","sumsub_transaction_already_exists","sumsub_unsupported_chain","sumsub_unsupported_currency","sumsub_unsupported_payment_method","sumsub_validation_error","token_invalid","token_not_found","token_missing_permissions","topup_amount_verification_failed","topup_fee_processing_failed","topup_transaction_not_found","transaction_not_found","user_not_found","user_not_in_organization","user_role_not_found","user_cannot_delete_self","user_cannot_modify_admin","user_force_logout_failed","user_insufficient_permissions","user_invitation_config_error","user_invitation_conflict","user_invitation_failed","user_mfa_enrollment_failed","user_password_reset_failed","virtual_account_not_found","wallet_adapter_not_found","wallet_balance_insufficient","wallet_fee_sponsor_not_found","wallet_not_on_dfns","webhook_not_found","webhook_limit_reached","unsupported_webhook_type","workflow_invalid_type","workflow_signal_error","yellow_card_api_error","yellow_card_chunk_limit_exceeded","yellow_card_settlement_timeout","yellow_card_settlement_verification_failed","yellow_card_webhook_signature_invalid","courier_socket_not_initialized","dynamic_config_not_exists","unsupported_option_provided","unsupported_identifier_provided","required_identifier_missing"]},"message":{"type":"string"},"details":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"requestId":{"type":"string"},"timestamp":{"type":"string"},"issues":{"type":"object","additionalProperties":{}}},"required":["url","method","requestId","timestamp"],"additionalProperties":false}},"required":["code","message","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}
```
