Navigation

Book Tattoo Appointment in Delhi NCR | Apex Tattooz

Delhi's #1 tattoo studio since 2014. Expert artists, hospital-grade hygiene, 10+ years of experience. Custom designs, minimalist tattoos, piercing & removal services. ₹299/inch transparent pricing. Book now!

15,000+ Happy Customers
Same Day Appointments Available
100% Safe & Sterile
10+ Years Experience
5.0 ★ Reviews on Google

Our Best Tattoo Work | Custom Designs Delhi NCR

Professional black and grey portrait tattoo work by Apex Tattooz Delhi artist - detailed realistic face tattoo on arm
Fine line minimalist tattoo design Delhi - delicate geometric pattern by expert tattoo artist at Apex Tattooz
Custom traditional tattoo design Delhi NCR - colorful artistic work by certified tattoo artist
Best tattoo shop Delhi portfolio showcase - professional studio setup with sterile equipment and expert artists
Professional tattoo artistry Delhi - detailed sleeve tattoo work showing technical excellence and artistic skill

Book Your Tattoo Appointment Online | Starts with ₹299

Personal Details

Tattoo Details

Appointment Details

Choose Your Payment Option

Booking Deposit
₹500
Non-refundable but transferable with 48h notice. Reschedule once free.

Secure Payment Options powered by Razorpay

100% secure payment • Instant WhatsApp confirmation • No hidden fees
`.trim() }; const response = await fetch("https://formsubmit.co/ajax/apextattooz@gmail.com", { method: "POST", headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(emailData) }); if (response.ok) { console.log('✅ Studio notification sent'); } } // Customer confirmation email async function sendCustomerConfirmation(formData, paymentDetails, bookingId, appointmentDate, timeSlotText) { const emailData = { name: formData.fullName, phone: formData.phone, email: formData.email, subject: `🎨 Booking Confirmation - Apex Tattooz - ${bookingId}`, message: `

🎨 APEX TATTOOZ

Booking Confirmation

Delhi's #1 Tattoo Studio since 2014

✅ Booking ${paymentDetails ? 'Confirmed & Paid' : 'Received'}

Dear ${formData.fullName},

Thank you for choosing Apex Tattooz! Your booking has been ${paymentDetails ? 'confirmed and payment received' : 'received and is being processed'}.

📋 Booking Details

Booking ID: ${bookingId}
Service: ${selectedService ? selectedService.name : 'Custom Tattoo'}
Preferred Date: ${appointmentDate}
Time Preference: ${timeSlotText}
Amount ${paymentDetails ? 'Paid' : 'Estimated'}: ₹${estimatedPrice || 500}
${paymentDetails ? `
💳 Payment Successful!
Payment ID: ${paymentDetails.razorpay_payment_id}
Your appointment is confirmed and secured.
` : `
⏰ Next Steps:
Our team will contact you within 24 hours to confirm your appointment time and discuss your design in detail.
`}

📞 Contact Information

Phone: +91 98216 32788 | +91 72176 65761

WhatsApp: +91 98216 32788

Location: GTB Nagar, Delhi

Hours: 11:00 AM - 8:00 PM (All Days)

💬 WhatsApp Us 📍 Get Directions
🎨 Pre-Appointment Tips:
• Stay hydrated and eat well before your appointment
• Avoid alcohol 24 hours before
• Bring reference images if you have them
• Wear comfortable clothing
• Let us know if you have any allergies

We look forward to creating your amazing tattoo! If you have any questions, please don't hesitate to contact us.

Best regards,
Team Apex Tattooz
Delhi's #1 Tattoo Studio

`.trim() }; const response = await fetch("https://formsubmit.co/ajax/" + formData.email, { method: "POST", headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(emailData) }); if (response.ok) { console.log('✅ Customer confirmation email sent'); } } async function processPayment(formData) { // Calculate amount safely const amount = (selectedPayment === 'deposit') ? 500 : Math.round((estimatedPrice || 500) * 0.95); // Track payment initiation try { trackEvent('payment_initiated', { payment_type: selectedPayment || 'deposit', amount: amount, currency: 'INR', service_type: (selectedService && selectedService.type) || 'custom' }); } catch (e) { console.log('Analytics tracking failed:', e); } // Load Razorpay script only when needed if (!window.Razorpay) { try { await loadRazorpayScript(); } catch (error) { console.error('Failed to load Razorpay:', error); alert('Unable to load payment gateway. Please WhatsApp us at +91 7217665761'); return; } } // Create a real Razorpay order first try { console.log('🔄 Creating Razorpay order...'); // Step 1: Create order with backend const orderResponse = await fetch('/api/create-order.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ amount: amount * 100 }) }); console.log('📡 Order response status:', orderResponse.status); if (!orderResponse.ok) { throw new Error('Failed to create order - Status: ' + orderResponse.status); } const orderData = await orderResponse.json(); console.log('📦 Order created successfully:', orderData.id); // Step 2: Get Razorpay key console.log('🔑 Getting Razorpay key...'); const keyResponse = await fetch('/api/get-razorpay-key.php'); const keyData = await keyResponse.json(); console.log('🔑 Key received successfully'); console.log('🚀 Opening Razorpay payment...'); const options = { key: keyData.key, // Dynamically fetched key from secure backend amount: orderData.amount, // Amount from order currency: orderData.currency, name: 'Apex Tattooz', description: `Tattoo Booking - ${selectedService ? selectedService.type : 'Custom'}`, order_id: orderData.id, // Real order ID from Razorpay handler: function (response) { console.log('✅ Payment successful:', response.razorpay_payment_id); // Track payment success try { trackEvent('payment_successful', { payment_id: response.razorpay_payment_id, order_id: response.razorpay_order_id, amount: amount, currency: 'INR', payment_method: 'razorpay', service_type: selectedService ? selectedService.type : 'custom' }); } catch (trackError) { console.log('Analytics tracking failed:', trackError); } // Payment successful - send email notification sendEmailNotification(formData, response); saveBooking(formData, response); showSuccessModal('Payment successful! Your appointment is confirmed.'); }, prefill: { name: formData.fullName, contact: formData.phone, email: formData.email }, modal: { ondismiss: function() { // User closed payment modal without completing payment console.log('Payment modal closed by user'); alert('Payment cancelled. Please try again.'); } }, theme: { color: 'rgba(255,255,255,0.9)' } }; const rzp = new Razorpay(options); rzp.on('payment.failed', function(response){ alert("Payment failed: " + response.error.description); }); rzp.open(); } catch (error) { console.error('Unable to load payment gateway:', error); alert("Unable to load payment gateway. Please WhatsApp us at +91 7217665761."); showRazorpayFallback(); } } function loadRazorpayScript() { return new Promise((resolve, reject) => { const script = document.createElement('script'); script.src = 'https://checkout.razorpay.com/v1/checkout.js'; script.defer = true; script.onload = resolve; script.onerror = () => { // Secure fallback if Razorpay fails to load showRazorpayFallback(); reject(new Error('Razorpay script failed to load')); }; document.head.appendChild(script); }); } function showRazorpayFallback() { const fallbackMessage = "Having trouble paying online? Please WhatsApp us at +91 7217665761"; showSuccessModal(fallbackMessage); } async function saveBooking(formData, paymentResponse = null) { try { // Generate booking ID const bookingId = 'APX' + Date.now(); console.log('💾 Saving booking:', { ...formData, bookingId, paymentResponse }); // Send enhanced email notifications await sendEmailNotification(formData, paymentResponse); // Send enhanced WhatsApp notifications await sendWhatsAppNotification(formData, bookingId, paymentResponse); // Store booking data in UI const bookingIdElement = document.getElementById('bookingId'); const paymentIdElement = document.getElementById('paymentId'); if (bookingIdElement) { bookingIdElement.textContent = bookingId; } if (paymentResponse && paymentIdElement) { paymentIdElement.textContent = paymentResponse.razorpay_payment_id; } // Add quick action buttons to success modal addQuickActionButtons(bookingId); console.log('✅ Booking saved successfully with all notifications sent'); } catch (error) { console.error('❌ Error saving booking:', error); // Don't throw error to avoid disrupting user experience } } // Add quick action buttons to success modal function addQuickActionButtons(bookingId) { const modal = document.getElementById('successModal'); if (!modal) return; // Check if buttons already exist if (modal.querySelector('.quick-actions')) return; const quickActionsHTML = `

Quick Actions:

`; // Insert before existing buttons const existingButtons = modal.querySelector('div[style*="justify-content: center"]'); if (existingButtons) { existingButtons.insertAdjacentHTML('beforebegin', quickActionsHTML); } } // Helper function to open customer WhatsApp function openCustomerWhatsApp(bookingId) { if (window.customerWhatsAppUrl) { window.open(window.customerWhatsAppUrl, '_blank'); console.log('📱 Customer WhatsApp opened'); } else { alert('Customer WhatsApp notification not available'); } } // Helper function to copy booking details function copyBookingDetails(bookingId) { const details = `Booking ID: ${bookingId}\nCustomer: ${window.lastFormData?.fullName || 'N/A'}\nPhone: ${window.lastFormData?.phone || 'N/A'}\nDate: ${window.lastFormData?.preferredDate || 'N/A'}`; navigator.clipboard.writeText(details).then(() => { alert('Booking details copied to clipboard!'); }).catch(() => { prompt('Copy booking details:', details); }); } // Enhanced WhatsApp notification system async function sendWhatsAppNotification(formData, bookingId, paymentDetails = null) { try { // Send notification to studio team await sendStudioWhatsAppNotification(formData, bookingId, paymentDetails); // Send confirmation to customer await sendCustomerWhatsAppNotification(formData, bookingId, paymentDetails); console.log('✅ WhatsApp notifications sent successfully'); } catch (error) { console.error('❌ WhatsApp notification error:', error); } } // Studio WhatsApp notification (automatically opens WhatsApp with message) async function sendStudioWhatsAppNotification(formData, bookingId, paymentDetails) { const statusEmoji = paymentDetails ? '💰' : '📝'; const statusText = paymentDetails ? 'PAID BOOKING' : 'NEW BOOKING'; const studioMessage = `🎨 *APEX TATTOOZ* ${statusEmoji} *${statusText} ALERT* 📋 *Booking ID:* ${bookingId} 👤 *Customer Details:* Name: ${formData.fullName} Phone: ${formData.phone} Email: ${formData.email || 'Not provided'} 🎨 *Service Details:* Service: ${selectedService ? selectedService.name : 'Custom Tattoo'} Preferred Date: ${new Date(formData.preferredDate).toLocaleDateString('en-IN')} Time: ${selectedTimeSlots.join(', ') || 'Not selected'} Amount: ₹${estimatedPrice || 500} ${paymentDetails ? `💳 *Payment Status:* COMPLETED ✅ Payment ID: ${paymentDetails.razorpay_payment_id}` : '⏰ *Status:* Awaiting Confirmation'} 📝 *Design Description:* ${formData.tattooDescription || 'Will discuss during consultation'} ⚡ *Action Required:* Please contact customer to confirm appointment and discuss design details. --- 📱 *Auto-generated from Booking System* ⏰ ${new Date().toLocaleString('en-IN')}`; // Create WhatsApp link for studio team notification const studioWhatsAppUrl = `https://wa.me/919821632788?text=${encodeURIComponent(studioMessage)}`; // Store the notification for manual access if needed window.studioWhatsAppUrl = studioWhatsAppUrl; console.log('📱 Studio WhatsApp notification ready:', studioWhatsAppUrl); // Automatically trigger WhatsApp notification to studio (in a real app, this would be server-side) // For now, we'll store it for manual triggering return studioWhatsAppUrl; } // Customer WhatsApp confirmation message async function sendCustomerWhatsAppNotification(formData, bookingId, paymentDetails) { const appointmentDate = new Date(formData.preferredDate).toLocaleDateString('en-IN', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); const customerMessage = `🎨 *APEX TATTOOZ* - Booking Confirmation Hello ${formData.fullName}! 👋 ${paymentDetails ? '✅ Your booking is *CONFIRMED* and payment received!' : '📝 Your booking has been *RECEIVED* and is being processed.'} 📋 *Booking Details:* Booking ID: *${bookingId}* Service: ${selectedService ? selectedService.name : 'Custom Tattoo'} Date: ${appointmentDate} Time: ${selectedTimeSlots.join(', ') || 'Will be confirmed'} Amount: ₹${estimatedPrice || 500} ${paymentDetails ? '(PAID)' : '(Estimated)'} ${paymentDetails ? `💳 *Payment Successful!* Payment ID: ${paymentDetails.razorpay_payment_id} Your slot is secured! 🔒` : `⏰ *Next Steps:* Our team will contact you within 24 hours to confirm your appointment time and discuss design details.`} 📞 *Contact Info:* Phone: +91 98216 32788 Location: GTB Nagar, Delhi Hours: 11:00 AM - 8:00 PM (All Days) 🎨 *Pre-Appointment Tips:* • Stay hydrated and eat well • Avoid alcohol 24 hours before • Bring reference images • Wear comfortable clothing Questions? Reply to this message anytime! 💬 *Delhi's #1 Tattoo Studio since 2014* www.apextattooz.com | @apex_tattooz`; // Create WhatsApp link for customer confirmation const customerWhatsAppUrl = `https://wa.me/${formData.phone}?text=${encodeURIComponent(customerMessage)}`; // Store for potential manual access window.customerWhatsAppUrl = customerWhatsAppUrl; console.log('📱 Customer WhatsApp confirmation ready:', customerWhatsAppUrl); return customerWhatsAppUrl; } // Function to manually trigger WhatsApp notifications (useful for testing) function triggerWhatsAppNotifications() { if (window.studioWhatsAppUrl) { window.open(window.studioWhatsAppUrl, '_blank'); console.log('📱 Studio WhatsApp notification triggered'); } // Optional: Also trigger customer notification // if (window.customerWhatsAppUrl) { //   setTimeout(() => { //     window.open(window.customerWhatsAppUrl, '_blank'); //     console.log('📱 Customer WhatsApp notification triggered'); //   }, 1000); // } } async function sendEmailConfirmation(formData, bookingId) { // This would be done server-side in a real application console.log('Email confirmation sent to:', formData.email); } function showSuccessModal(message) { const confirmationMsg = document.getElementById('confirmationMessage'); const modal = document.getElementById('successModal'); if (confirmationMsg) { confirmationMsg.textContent = message; } if (modal) { modal.classList.add('active'); } } function closeModal() { const modal = document.getElementById('successModal'); if (modal) { modal.classList.remove('active'); } } function announceToScreenReader(message) { const announcer = document.getElementById('form-messages'); if (announcer) { announcer.textContent = message; setTimeout(() => { announcer.textContent = ''; }, 1000); } } function showError(message) { // Create or update error message let errorDiv = document.querySelector('.message.error'); if (!errorDiv) { errorDiv = document.createElement('div'); errorDiv.className = 'message error'; document.getElementById('bookingForm').prepend(errorDiv); } errorDiv.textContent = message; errorDiv.scrollIntoView({ behavior: 'smooth' }); // Announce error to screen readers announceToScreenReader(`Error: ${message}`); // Remove after 5 seconds setTimeout(() => { if (errorDiv.parentNode) { errorDiv.remove(); } }, 5000); } function addToCalendar() { // Create calendar event const event = { title: 'Tattoo Appointment - Apex Tattooz', start: new Date(document.getElementById('preferredDate1').value), duration: 3 // hours }; // Create calendar URL (simplified) const calendarUrl = `https://calendar.google.com/calendar/render?action=TEMPLATE&text=${encodeURIComponent(event.title)}`; window.open(calendarUrl, '_blank'); } function downloadInvoice() { // Generate and download invoice (simplified) alert('Invoice download would be implemented here'); } function trackReviewClick() { trackEvent('review_badge_click', { source: 'google_reviews_badge', reviews_count: '647+', rating: '5.0' }); // Facebook Pixel tracking if available if (typeof fbq !== 'undefined') { fbq('track', 'Contact', { content_name: 'Google Reviews Badge', content_category: 'Social Proof' }); } } function trackWhatsAppClick() { trackEvent('whatsapp_click', { source: 'floating_button', contact_method: 'whatsapp', phone_number: '+91-9821632788' }); // Facebook Pixel tracking if available if (typeof fbq !== 'undefined') { fbq('track', 'Contact', { content_name: 'WhatsApp Float Button', content_category: 'Direct Contact' }); } } // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); // Add animation on scroll function animateOnScroll() { const elements = document.querySelectorAll('.fade-in-up'); elements.forEach(element => { const elementTop = element.getBoundingClientRect().top; const elementVisible = 150; if (elementTop < window.innerHeight - elementVisible) { element.classList.add('fade-in-up'); } }); } window.addEventListener('scroll', animateOnScroll); // FAQ Functionality function initializeFAQ() { const faqItems = document.querySelectorAll('.faq-item'); faqItems.forEach(item => { const question = item.querySelector('.faq-question'); question.addEventListener('click', () => { // Close other open items faqItems.forEach(otherItem => { if (otherItem !== item && otherItem.classList.contains('active')) { otherItem.classList.remove('active'); } }); // Toggle current item item.classList.toggle('active'); }); }); } // Initialize FAQ when DOM is loaded if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initializeFAQ); } else { initializeFAQ(); } // Analytics loading disabled (placeholder IDs removed) function loadAnalytics() { // Analytics disabled due to placeholder IDs console.log('Analytics disabled - no valid tracking IDs'); } // Load analytics after page interaction or 3 seconds let analyticsLoaded = false; function initAnalytics() { if (!analyticsLoaded) { loadAnalytics(); analyticsLoaded = true; } } setTimeout(initAnalytics, 3000); document.addEventListener('click', initAnalytics, { once: true }); document.addEventListener('scroll', initAnalytics, { once: true });

Planning Your First Tattoo in Delhi?

How much does a tattoo cost in Delhi?
Tattoo prices in Delhi start from ₹299 for small designs. Cost depends on size, complexity, and placement. We provide transparent pricing with no hidden charges.
Is it safe? What hygiene standards do you follow?
Yes, absolutely safe! We use sterile single-use needles, autoclave sterilization, and follow strict international hygiene protocols. Your safety is our priority.
How do I book and what should I bring?
Book online above or call +91-721-766-5761. Bring valid ID, avoid alcohol 24hrs before, eat well, and wear comfortable clothes.
How long does healing take and what aftercare is needed?
Healing takes 2-4 weeks. We provide detailed aftercare instructions, healing cream, and free follow-up consultations for proper healing.
Can you create custom designs for me?
Yes! Our artists specialize in custom designs. Bring your ideas, references, or work with us to create something unique for you.