Beneficiaries

The Beneficiaries webhook notifies subscribed API clients when a beneficiary review is approved or rejected. It sends an HTTP POST with the beneficiary’s current details to the client’s registered endpoint.

Object Structure Samples

{
  "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Name": "beneficiary.review.approved",
  "AccountId": "8c9c4a1e-3b2a-4a3d-9c2b-6f6b1a2e9d10",
  "Data": {
    "Beneficiary": {
      "Id": "6c6a9c1a-2e4f-4a3d-9c2b-6f6b1a2e9d10",
      "Type": "Individual",
      "Status": "Approved",
      "FirstName": "John",
      "LastName": "Doe",
      "BirthDate": "1990-05-14",
      "CompanyName": null,
      "PaymentMethod": "Swift",
      "Currency": "USD",
      "BankDetails": {
        "BankCountry": "US",
        "BankBranch": null,
        "BankCode": null,
        "SwiftCode": "BOFAUS3N",
        "Iban": null,
        "AccountNumber": "0001112223",
        "RoutingType": "ABA",
        "RoutingCode": "026009593",
        "AdditionalRoutingType": null,
        "AdditionalRoutingCode": null
      },
      "PaymentReason": {
        "Id": "9",
        "Description": "Transfer For Services Up To 250K"
      },
      "Identity": {
        "IdNumber": "123456789"
      },
      "Contact": {
        "Email": "[email protected]"
      },
      "Address": {
        "Country": "US",
        "State": "NY",
        "City": "New York",
        "Address": "123 Main St",
        "ZipCode": "10001"
      },
      "CreatedAt": "2026-07-01T10:00:00+00:00",
      "UpdatedAt": "2026-07-20T09:15:00+00:00"
    }
  },
  "CreateAtUtc": "2026-07-20T09:15:00Z"
}
{
  "Id": "f1e2d3c4-b5a6-4978-8899-aabbccddeeff",
  "Name": "beneficiary.review.rejected",
  "AccountId": "8c9c4a1e-3b2a-4a3d-9c2b-6f6b1a2e9d10",
  "Data": {
    "Beneficiary": {
      "Id": "7d7b0d2b-3f5a-4b4e-ad3c-7a7c2b3f0e21",
      "Type": "Company",
      "Status": "Rejected",
      "FirstName": null,
      "LastName": null,
      "BirthDate": null,
      "CompanyName": "Acme Trading Ltd",
      "PaymentMethod": "Local",
      "Currency": "EUR",
      "BankDetails": {
        "BankCountry": "DE",
        "BankBranch": null,
        "BankCode": null,
        "SwiftCode": null,
        "Iban": "DE89370400440532013000",
        "AccountNumber": null,
        "RoutingType": null,
        "RoutingCode": null,
        "AdditionalRoutingType": null,
        "AdditionalRoutingCode": null
      },
      "PaymentReason": {
        "Id": "3",
        "Description": "Invest In Other Assets Abroad"
      },
      "Identity": {
        "IdNumber": "HRB123456"
      },
      "Contact": {
        "Email": "[email protected]"
      },
      "Address": {
        "Country": "DE",
        "State": null,
        "City": "Berlin",
        "Address": "Unter den Linden 1",
        "ZipCode": "10117"
      },
      "CreatedAt": "2026-07-10T08:30:00+00:00",
      "UpdatedAt": "2026-07-20T11:42:00+00:00"
    }
  },
  "CreateAtUtc": "2026-07-20T11:42:00Z"
}

Overview

Event NameDescription
beneficiary.review.approvedSent when Okoora's back office approves a beneficiary that was pending review.
beneficiary.review.rejectedSent when Okoora's back office rejects a beneficiary that was pending review.

Object Structure Samples


Data Object For Beneficiaries

Top-level object delivered as the HTTP request body.

PropertyTypeDescription
Idstring (GUID)Unique identifier generated for this webhook delivery attempt.
NamestringEvent type identifier. One of the values listed in Overview: beneficiary.review.approved, beneficiary.review.rejected.
AccountIdstring (GUID)Identifier of the API client account the beneficiary belongs to.
DataobjectContainer for the beneficiary payload. See Data.
CreateAtUtcstring (date-time)UTC timestamp at which the webhook request object was created.

Data

Nested inside Data Object.Data.

PropertyTypeDescription
BeneficiaryobjectThe beneficiary's full details at the time of the review decision. See Beneficiary.

Beneficiary

Nested inside Data.Beneficiary.

PropertyTypeDescription
Idstring (GUID)Unique identifier of the beneficiary.
TypestringBeneficiary type enum, serialized as its member name. Possible values: Company, Individual.
StatusstringBeneficiary status enum, serialized as its member name. Possible values: New, Pending, Approved, Deleted, Rejected. In practice this webhook only fires with Approved or Rejected.
FirstNamestring or nullFirst name of the beneficiary. Populated for individual beneficiaries.
LastNamestring or nullLast name of the beneficiary. Populated for individual beneficiaries.
BirthDatestring (date, yyyy-MM-dd) or nullDate of birth. null if the underlying date was never set (default/unset value).
CompanyNamestring or nullLegal name of the beneficiary. Populated for company beneficiaries.
PaymentMethodstringTransfer method enum, serialized as its member name. Possible values: Local, Swift.
CurrencystringCurrency code of the beneficiary's bank account.
BankDetailsobjectBank account details. See BankDetails.
PaymentReasonobjectReason for payments to this beneficiary. See PaymentReason.
IdentityobjectIdentity document details. See Identity.
ContactobjectContact details. See Contact.
AddressobjectAddress details. See Address.
CreatedAtstring (date-time with offset)When the beneficiary was created.
UpdatedAtstring (date-time with offset)When the beneficiary was last updated (reflects the approval/rejection that triggered this webhook).

BankDetails

Nested inside Data.Beneficiary.BankDetails.

PropertyTypeDescription
BankCountrystringISO country code of the beneficiary's bank.
BankBranchstring or nullBank branch identifier.
BankCodestring or nullBank code.
SwiftCodestring or nullSWIFT/BIC code of the bank.
Ibanstring or nullIBAN of the beneficiary's account.
AccountNumberstring or nullLocal account number (used when no IBAN applies).
RoutingTypestring or nullRouting code type enum, serialized as its member name. Possible values: BSB, CNAPS, IFSC, CLABE, SORT_CODE, ABA, BANK_CODE, INSTITUTION_NUMBER, BRANCH_CODE, BANK_BRANCH, TRANSIT_NUMBER, ROUTING_NUMBER. null if no routing type is set.
RoutingCodestring or nullThe routing code value corresponding to RoutingType.
AdditionalRoutingTypestring or nullSecondary routing code type enum, serialized as its member name. Same possible values as RoutingType. null if not applicable.
AdditionalRoutingCodestring or nullThe routing code value corresponding to AdditionalRoutingType.

PaymentReason

Nested inside Data.Beneficiary.PaymentReason.

PropertyTypeDescription
IdstringNumeric payment-reason code, serialized as a string. Corresponds to the underlying payment reason enum value: 0=Other, 1=Invest In Company Stocks, 2=Invest In Real Estate Abroad, 3=Invest In Other Assets Abroad, 4=Foreign Resident Loan, 5=Company Owner Loan, 6=Return Of Investment Fund (With Accountant Approval), 7=Partnership Invest, 9=Transfer For Services Up To 250K, 10=Transfer For Services Over 250K, 11=Import Of Goods Not Including Books, 14=Education Abroad, 17=Relative Residing Overseas, 18=Transfer To An Israeli Resident, To An Israeli Bank Only, 19=Transfer To My Account Abroad, 20=Tourism Services, 21=Third Party Transfer, 22=Transportation Services Overseas, 24=Software Development Or Online Services, 25=Salaries ILS Only, 26=Invest In Options, 27=Advertising Abroad.
DescriptionstringFree-text description of the payment reason if one was supplied; otherwise falls back to the payment-reason enum member name (e.g. ServicesUpTo250k) corresponding to Id.

Identity

Nested inside Data.Beneficiary.Identity.

PropertyTypeDescription
IdNumberstringIdentity/registration number of the beneficiary (national ID for individuals, company registration number for companies).

Contact

Nested inside Data.Beneficiary.Contact.

PropertyTypeDescription
Emailstring or nullContact email address of the beneficiary.

Address

Nested inside Data.Beneficiary.Address.

PropertyTypeDescription
CountrystringISO country code of the beneficiary's address.
Statestring or nullState or province.
Citystring or nullCity.
Addressstring or nullStreet address.
ZipCodestring or nullPostal/ZIP code.