| name | taxpayer-profile |
| description | Complete taxpayer and client data for fiscal operations. Contains identity, RUC, address, client details, tax treatment, and billing configuration. Used by agents that need to fill forms or verify taxpayer info. |
Taxpayer Profile
Data Source
All taxpayer and client data is loaded from .user/config.ts. Read this file to get current values.
If .user/config.ts does not exist, the user needs to run /setup first.
Expected Config Structure
The config file exports these objects:
TAXPAYER
name: Full legal name
ruc: RUC number (without DV)
dv: Verification digit
rucFull: "RUC-DV" format
registrationDate: Date of RUC registration
nationality: Country of nationality
residence: Country of current residence
residentOfParaguay: boolean — critical for tax treatment
activity: Activity description for invoices
taxRegime: IVA treatment summary
irpStatus: IRP treatment summary
address: Registered address in Paraguay
phone: Registered phone
email: Registered email
type: "FISICO" (individual)
CLIENT
name: Client company/person name
documentType: "Documento extranjero" for foreign clients
documentNumber: Client's tax/business ID
address: Client address
country: Client country
countryCode: ISO country code
OBLIGATIONS, IRP_RATES, URLS, MARANGATU, PATHS
System constants — see src/config.example.ts for full structure.
Tax Treatment
The tax treatment depends on the values in .user/config.ts. Common scenarios:
If residentOfParaguay is false and services are exported:
- IVA: Not taxable (Art. 84, Ley 6380/2019). Exported services = exempt.
- IRP: Exempt. Non-resident, services executed outside Paraguay. No Paraguayan source income (Art. 48, Ley 6380/2019).
Always read .user/config.ts to determine the actual tax treatment — do not assume a profile.
Perpetual Calendar
The due date depends on the last digit of the RUC (RG 38/2020). See the tax-law skill for the full table.
Credentials
Stored in .user/.env (never in code):
MARANGATU_RUC — RUC for login
MARANGATU_PASS — Password
Source of Truth
.user/config.ts is the source of truth. If this skill and config diverge, config wins — update this skill.
Updating Profile
Run /update-profile or npm run update-profile to scrape the latest profile from Marangatu and compare against local config.