Add a new Netevia's account number - Payee.

Add Payee

This endpoint allows an authenticated user to register a new payee on their account for use in funds movement operations. The payee is a Netevia account holder to whom the user can send funds via account-to-account transfers or bill payments. Adding a payee requires verification via a one-time code to confirm the operation is authorized.

Endpoint

POST /api/fundsMovement/v2/Payee

Authentication

Bearer token required. Obtain via:

POST https://api.banking.netevia.dev/api/auth/v2

Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.

When to use

Use this endpoint when a user wants to designate a new recipient account for outgoing fund transfers. Once a payee is added, it can be referenced in future A2A transfers and payment operations without re-entering the account details. This step is required before initiating any transfer to a new Netevia account that has not been previously registered as a payee.

Request Body

FieldTypeRequiredDescription
accountNumberstringYesThe Netevia account number to which funds will be sent. Minimum length: 1 character.
namestringYesDisplay name for the payee. Minimum length: 1 character.
oneTimeCodestringYesSix-digit verification code used to authorize the operation. Must match pattern ^\d{6}$.
secureOperationTypestringYesThe verification method used to generate the one-time code. Allowed values: ShortMessageCode, TimeBasedCode, LegacyTimeBasedCode.
{
  "accountNumber": "XXXXXXXXXX",
  "name": "Acme Corp Payroll",
  "oneTimeCode": "482917",
  "secureOperationType": "ShortMessageCode"
}

Response

200 OK

FieldTypeDescription
messagestringConfirmation message indicating the payee was successfully added.
payeeIdstringUnique identifier for the newly created payee record.
payeeNamestringThe name of the added payee as stored on the account.
accountNumberstringMasked account number of the payee for display purposes.
isExternalAccountbooleanIndicates whether the payee account is external (true) or internal to Netevia (false).
{
  "message": "Payee successfully added.",
  "payeeId": "pye_0f3a21bc7d4e5f6a",
  "payeeName": "Acme Corp Payroll",
  "accountNumber": "XXXXXXXXXX",
  "isExternalAccount": false
}

Error Codes

CodeWhen it happens
400Missing required fields, invalid oneTimeCode format, or validation error on request body
401Token missing, expired, or invalid
403User does not have permission to add payees
409A payee with the same account number already exists on this account
500Internal server error while processing the request

Common Mistakes

  • Providing a oneTimeCode that is not exactly 6 digits — the field requires the pattern ^\d{6}$ and will be rejected otherwise.
  • Omitting secureOperationType or passing a value not in the allowed enum (ShortMessageCode, TimeBasedCode, LegacyTimeBasedCode), which causes a 400 validation error.
  • Attempting to add a payee with an account number already registered on the account, resulting in a 409 Conflict response.
  • Using an expired Bearer token — tokens last 10 minutes; refresh before making this call if the token may have elapsed.

Related Endpoints

  • GET /api/fundsMovement/v2/Payee — Retrieve the list of payees registered on the account
  • DELETE /api/fundsMovement/v2/Payee/{payeeId} — Remove an existing payee from the account
  • POST /api/fundsMovement/v2/Transfer — Initiate a funds transfer to a registered payee

Example

curl -X POST https://api.banking.netevia.dev/api/fundsMovement/v2/Payee \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "accountNumber": "XXXXXXXXXX",
    "name": "Acme Corp Payroll",
    "oneTimeCode": "482917",
    "secureOperationType": "ShortMessageCode"
  }'
Body Params
string
required
length ≥ 1

Account number on which funds will be sent.

string
required
length ≥ 1

Payee name.

string
required
length ≥ 1
^\d{6}$

Code for passing verification

string
enum
required
Allowed:
Headers
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response
200

Success

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here!