UPP Docs
Compliance

Get a profile

GET
/customers/{customerId}/profiles/{purpose}

Profile status and review notes. Submitted data is not returned.

Authorization

merchantApiKeymerchantTimestampmerchantNoncemerchantSignature
headerX-API-KEY<token>

Merchant API key (starts with upk_, also accepts api-key); signing headers are also required

headerX-Timestamp<token>

Unix timestamp in seconds, within 300 seconds of server time

headerX-Nonce<token>

Unique per request; cannot be reused with the same credential during the timestamp validity window

headerX-Signature<token>

Hex HMAC-SHA256 signature (either letter case) of the method, full path, timestamp, nonce and body digest

Path Parameters

customerId*string

Customer ID (starts with cus_)

purpose*string

Profile purpose: virtual_account (virtual bank accounts) or remittance (sender details)

Value in"virtual_account""bank_account""remittance"

Response Body

Profile

application/json
  1. response
id*string

Profile ID (starts with cpf_)

customer_id*string
purpose*CustomerProfilePurpose

Profile purpose, which determines the reviewing provider. virtual_account is used for virtual bank accounts and some local payouts; remittance holds sender details for other local payouts (approved once UPP's checks pass). The purpose must be enabled for the merchant (on by default; UPP can turn it off per merchant); otherwise profile endpoints return 404

Value in"virtual_account""bank_account""remittance"
type*string
Value in"individual""organization"
status*CustomerProfileStatus

draft not submitted, submitting / submit_uncertain being submitted, under_review in review, resubmission_required needs changes and resubmission, approved approved, rejected rejected (cannot be submitted again)

Value in"draft""submitting""submit_uncertain""under_review""resubmission_required""approved""rejected"
audit_remark*|

Review notes when resubmission is required or the profile is rejected

submissions*integer

Number of submissions

approved_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Example Request
curl -X GET 'https://sandbox.getupp.net/api/v1/customers/string/profiles/virtual_account'
Example Response
{  "id": "string",  "customer_id": "string",  "purpose": "virtual_account",  "type": "individual",  "status": "draft",  "audit_remark": "string",  "submissions": 0,  "approved_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}