Overview
Advertising and propaganda permits are required for businesses or individuals who want to display promotional materials in public spaces within the municipality. These permits specify the types of materials authorized and include additional details like comments and material descriptions.
Material Types
The system supports the following advertising material types:
Volantes Flyers and leaflets
Habladores Shelf talkers / wobbler signs
Stands Display stands and booths
Calcomanías Stickers and decals
Otros Other materials (requires description)
Required Fields
Applicant’s identification document number
Applicant’s address or location
Permit Details
Start date when the permit becomes valid
Expiration date of the permit
Authorized display schedule
Sector or area where materials can be displayed
Advertising Material Types
Quantity or description of flyers authorized
Quantity or description of posters authorized
Quantity or description of banners authorized
Quantity or description of shelf talkers authorized
Quantity or description of stands authorized
Quantity or description of stickers authorized
Quantity or description of street banners authorized
Quantity of other materials
publicidad_otros_descripcion
Description of other materials (required if publicidad_otros is provided)
Additional comments or special conditions for the permit
Payment receipt file upload (optional)
Current date in YYYY-MM-DD format for validation
Creating a Permit
To create a new advertising permit, send a POST request with multipart form data:
POST /publicidad_y_propaganda/add
Content-Type: multipart/form-data
Request Example
const formData = new FormData ();
// Basic information
formData . append ( 'habilitacion' , '2026-03-01' );
formData . append ( 'vencimiento' , '2026-06-01' );
formData . append ( 'horario' , 'Todo el día' );
formData . append ( 'nombre' , 'María' );
formData . append ( 'apellido' , 'González' );
formData . append ( 'idDocument' , 'V-23456789' );
formData . append ( 'tlf' , '0424-2345678' );
formData . append ( 'habitacion' , 'Av. Bolívar #456' );
formData . append ( 'sector' , 'Centro de la ciudad' );
// Material types
formData . append ( 'publicidad_volantes' , '500' );
formData . append ( 'publicidad_afiches' , '20' );
formData . append ( 'publicidad_pendones' , '5' );
formData . append ( 'publicidad_habladores' , '' );
formData . append ( 'publicidad_stands' , '1' );
formData . append ( 'publicidad_calcomanias' , '100' );
formData . append ( 'publicidad_banderolas' , '' );
formData . append ( 'publicidad_otros' , '10' );
formData . append ( 'publicidad_otros_descripcion' , 'Banderas corporativas' );
// Additional details
formData . append ( 'comentarios' , 'Campaña promocional de verano' );
formData . append ( 'comprobante' , fileInput . files [ 0 ]); // Optional
formData . append ( 'today' , '2026-03-04' );
Response
{
"success" : "¡Se ha registrado correctamente el permiso!" ,
"permiso" : "2026-001"
}
Editing a Permit
Update an existing permit:
POST /publicidad_y_propaganda/edit
Content-Type: multipart/form-data
Request Body
All fields from creation plus:
Set to “true” if updating the payment receipt, “false” otherwise
Example
const formData = new FormData ();
formData . append ( 'permiso' , '7' );
formData . append ( 'habilitacion' , '2026-03-01' );
formData . append ( 'vencimiento' , '2026-06-01' );
formData . append ( 'horario' , 'Todo el día' );
formData . append ( 'nombre' , 'María' );
formData . append ( 'apellido' , 'González' );
formData . append ( 'idDocument' , 'V-23456789' );
formData . append ( 'tlf' , '0424-2345678' );
formData . append ( 'habitacion' , 'Av. Bolívar #456' );
formData . append ( 'sector' , 'Centro de la ciudad' );
formData . append ( 'publicidad_volantes' , '1000' ); // Updated quantity
formData . append ( 'publicidad_afiches' , '20' );
formData . append ( 'publicidad_pendones' , '5' );
formData . append ( 'publicidad_habladores' , '' );
formData . append ( 'publicidad_stands' , '1' );
formData . append ( 'publicidad_calcomanias' , '100' );
formData . append ( 'publicidad_banderolas' , '' );
formData . append ( 'publicidad_otros' , '10' );
formData . append ( 'publicidad_otros_descripcion' , 'Banderas corporativas' );
formData . append ( 'comentarios' , 'Campaña promocional de verano - extendida' );
formData . append ( 'needPermiso' , 'false' );
formData . append ( 'today' , '2026-03-04' );
Response
{
"success" : "¡Se ha editado correctamente el permiso!" ,
"permiso" : 7
}
Approving a Permit
Approve a permit by uploading the authorized permit document:
POST /publicidad_y_propaganda/aprobate
Content-Type: multipart/form-data
Request Body
ID of the permit to approve
Authorized permit document file
Response
{
"success" : "¡Se ha aprobado correctamente el permiso!" ,
"permiso" : 7
}
Canceling a Permit
Cancel a permit with an observation note:
POST /publicidad_y_propaganda/cancel
Content-Type: multipart/form-data
Request Body
ID of the permit to cancel
Example
const formData = new FormData ();
formData . append ( 'permiso' , '7' );
formData . append ( 'observacion' , 'Cancelado a solicitud del cliente' );
Response
{
"success" : "¡Se ha cancelado la emisión del permiso correctamente!" ,
"permiso" : 7
}
Searching and Filtering
Search for permits with various filters:
POST /publicidad_y_propaganda/search
Content-Type: multipart/form-data
Request Body
Search term (searches across permit code, dates, applicant name, document, phone, sector)
Filter by status: “Todos” (all), “Emitido” (approved), or “No Emitido” (not approved)
Response
Returns HTML template with search results:
{
"plantilla" : "<button class='item aproved' id='itemResult1'>...</button>..."
}
Getting Permit Details
Retrieve details for a specific permit:
POST /publicidad_y_propaganda/get
Content-Type: multipart/form-data
Request Body
Response
{
"result" : {
"id" : 7 ,
"codigo_permiso" : "2026-001" ,
"habilitacion" : "2026-03-01" ,
"vencimiento" : "2026-06-01" ,
"horario" : "Todo el día" ,
"dat_confirmacion" : 1 ,
"requisitor_nombre" : "María" ,
"requisitor_apellido" : "González" ,
"requisitor_doc" : "V-23456789" ,
"requisitor_tlf" : "0424-2345678" ,
"requisitor_habitacion" : "Av. Bolívar #456" ,
"sector_permisado" : "Centro de la ciudad" ,
"publicidad_volantes" : "500" ,
"publicidad_afiches" : "20" ,
"publicidad_pendones" : "5" ,
"publicidad_habladores" : "" ,
"publicidad_stands" : "1" ,
"publicidad_calcomanias" : "100" ,
"publicidad_banderolas" : "" ,
"publicidad_otros" : "10" ,
"publicidad_otros_descripcion" : "Banderas corporativas" ,
"comentarios" : "Campaña promocional de verano" ,
"comprobante_de_pago" : "comprobante_de_pago_1234567890.pdf" ,
"permiso_autorizado" : "permiso_autorizado1234567890.pdf" ,
"creador" : "Admin User" ,
"editor" : "Admin User" ,
"emitido" : 1 ,
"cancelado" : 0 ,
"observacion" : ""
},
"usuario" : { /* current session user */ }
}
PDF Generation
Generate a PDF document for a specific permit:
GET /publicidad_y_propaganda/permiso/publicidad-y-propaganda_2026-001
The URL pattern is: publicidad-y-propaganda_{codigo_permiso}
Response
Returns a PDF document with:
Content-Type: application/pdf
All permit details including material types
Formatted using the template at views/templates/permisos/publicidad.html
Deleting a Permit
Only users with “Administrador” or “Desarrollador” roles can delete permits.
Delete a permit (only if not approved):
DELETE /publicidad_y_propaganda/
Content-Type: multipart/form-data
Request Body
ID of the permit to delete
Response
{
"message" : "¡El permiso ha sido eliminado!"
}
Same restrictions apply as with alcoholic beverage permits.
Report Generation
Generate a comprehensive PDF report:
GET /publicidad_y_propaganda/reporte
The report includes statistics and detailed tables for all advertising permits.
Database Schema
The permisos_publicidad table extends the base permit structure with additional fields:
Field Type Description publicidad_volantes varchar Flyers quantity/description publicidad_afiches varchar Posters quantity/description publicidad_pendones varchar Banners quantity/description publicidad_habladores varchar Shelf talkers quantity/description publicidad_stands varchar Stands quantity/description publicidad_calcomanias varchar Stickers quantity/description publicidad_banderolas varchar Street banners quantity/description publicidad_otros varchar Other materials quantity publicidad_otros_descripcion text Description of other materials comentarios text Additional comments
Plus all standard permit fields (id, codigo_permiso, dates, applicant info, etc.)
File Storage
Files are stored in:
../public/server-files/asuntos_publicos/permisos_municipales/publicidad/