Skip to main content
Create account
This API MUST be implemented by the Partner. Platform’s backend will consume it by sending the user’s data for account opening.
Our backend will consume this service by performing a POST request to: [Base-URL]/CreateAccount.
The path must be respected exactly as specified. The Partner defines only the [Base-URL]; the resource segment /CreateAccount, the POST method and the JSON body are fixed by this contract and are case-sensitive.Every request travels signed. It carries the X-Timestamp and X-Signature headers with the HMAC-SHA256 signature of the raw body. The Partner must validate the signature before processing the request.
This endpoint will only be used when the Partner has account creation configured as Dynamic. Expected behavior: This endpoint is invoked when our systems require the formal creation of an account associated with a user’s personal data and documents. The partner must register the account and respond with a unique identifier for the new account (AccountIdentifier).

Headers

X-Timestamp
string
required

UTC timestamp in ISO-8601 format with milliseconds (yyyy-MM-ddTHH:mm:ss.fffZ), generated at send time. Its exact string value is part of the signed message, so it cannot be altered, and it lets the Partner reject stale requests (replay protection). See Data Integrity.

X-Signature
string
required

HMAC-SHA256 signature of the request, Base64-encoded (standard alphabet). It is computed over bytes(X-Timestamp) + bytes(".") + rawBodyBytes using the shared secret agreed for the integration. The Partner MUST validate it — with a constant-time comparison and over the raw body, before any deserialization — and reject the request if it does not match. See Data Integrity.

User-Agent
string
required

Fixed value VNA. Sent on every request. Some Partners' WAFs reject requests without a User-Agent, so the Platform always sets it explicitly; if the Partner filters by this header, this is the value to allow.

Body

application/json
TransactionId
string
required

Unique identifier of the request, used as an idempotency key. It is derived deterministically from the operation, the Partner and the action, so a retry of the same action arrives with the same value: the Partner MUST process it only once and return the original outcome on repeats.

PersonalData
object
required

Personal Data of the Person being created. At least one of PhoneNumber or Email is present, but the address may be partial: only CountryCode and StateCode are guaranteed — Address1, City and ZipCode may be absent.

PersonalDocuments
object[]
required

List of identity documents for the Person. May be an empty array when no identity document is on file.

Amount
number<double>
required

Initial amount associated with the account creation, with TWO decimals.

Currency
string
required

Currency of the amount, per ISO 4217. String of 3 chars.

ExchangeRate
number<double>
required

Exchange rate applied.

Response

200 - application/json

Ok

AccountIdentifier
string
required

The Id representing the newly created External Account Object for the Partner.

Success
boolean
required

True if the account creation is Successful / False if it Failed.

ResponseDescription
string
required

If the account creation is not successful, the reason of the Failure will be provided in this field.

DisplayName
string

A String with the displayName for the Account, to be presented to the end-user. Max 10 characters, only these chars -> [-_a-zA-Z0-9]. If Null, empty or invalid, it will be Partner Prefix (configured in backend) + last four Account numbers (e.g. PRTN-0141).