Legal & Support
Access frequently asked questions, privacy policy, and terms and conditions documents.
FAQs
List FAQs
Retrieves all active FAQs ordered by display order.
Authentication: Not required
Response
Returns an array of FAQ objects with questions and answers.
Request
curl https://batchmates-v2.revlv.com/api/v1/faqs
Response
{
"success": true,
"data": [
{
"id": 1,
"question": "How do I make a donation?",
"answer": "You can donate by selecting a campaign and clicking the 'Donate' button. Choose your preferred payment method (Maya or Magpie) and follow the checkout process.",
"order": 1,
"status": "active",
"created_at": "2024-01-15T10:00:00.000000Z",
"updated_at": "2024-01-15T10:00:00.000000Z"
},
{
"id": 2,
"question": "Can I set up recurring donations?",
"answer": "Yes! Many campaigns accept recurring donations. You can set up monthly, quarterly, or yearly donations through the subscription feature.",
"order": 2,
"status": "active",
"created_at": "2024-01-15T10:05:00.000000Z",
"updated_at": "2024-01-15T10:05:00.000000Z"
},
{
"id": 3,
"question": "Are my donations tax-deductible?",
"answer": "Donations made to registered educational institutions may be tax-deductible. Please consult with the institution or your tax advisor for specific details.",
"order": 3,
"status": "active",
"created_at": "2024-01-15T10:10:00.000000Z",
"updated_at": "2024-01-15T10:10:00.000000Z"
},
{
"id": 4,
"question": "How do I track my donation history?",
"answer": "Visit the 'My Donations' section in your profile to see all your past donations, receipts, and subscription details.",
"order": 4,
"status": "active",
"created_at": "2024-01-15T10:15:00.000000Z",
"updated_at": "2024-01-15T10:15:00.000000Z"
}
]
}
Privacy Policy
Get Privacy Policy
Retrieves the currently active privacy policy document.
Authentication: Not required
Response
Returns the active privacy policy with version and effective date information.
Request
curl https://batchmates-v2.revlv.com/api/v1/privacy-policy
Response
{
"success": true,
"data": {
"id": 1,
"title": "Batchmates Privacy Policy",
"content": "# Privacy Policy\n\n**Effective Date:** January 1, 2024\n\n## 1. Information We Collect\n\nWe collect information you provide directly to us, including:\n- Name and contact information\n- Payment information\n- Donation history\n\n## 2. How We Use Your Information\n\nWe use the information we collect to:\n- Process your donations\n- Send receipts and updates\n- Improve our services\n\n## 3. Information Sharing\n\nWe do not sell your personal information...",
"version": "2.0",
"effective_date": "2024-01-01",
"status": "active",
"created_at": "2024-01-01T00:00:00.000000Z",
"updated_at": "2024-01-01T00:00:00.000000Z"
}
}
Error (Not Found)
{
"success": false,
"message": "No active privacy policy found"
}
Terms and Conditions
Get Terms
Retrieves the currently active terms and conditions document.
Authentication: Not required
Response
Returns the active terms and conditions with version and effective date information.
Request
curl https://batchmates-v2.revlv.com/api/v1/terms-and-conditions
Response
{
"success": true,
"data": {
"id": 1,
"title": "Batchmates Terms and Conditions",
"content": "# Terms and Conditions\n\n**Effective Date:** January 1, 2024\n\n## 1. Acceptance of Terms\n\nBy accessing and using Batchmates, you accept and agree to be bound by these Terms and Conditions.\n\n## 2. User Accounts\n\nYou are responsible for:\n- Maintaining account security\n- All activities under your account\n- Keeping your information accurate\n\n## 3. Donations\n\nAll donations are:\n- Final and non-refundable\n- Subject to payment gateway fees\n- Tax-deductible where applicable...",
"version": "2.0",
"effective_date": "2024-01-01",
"status": "active",
"created_at": "2024-01-01T00:00:00.000000Z",
"updated_at": "2024-01-01T00:00:00.000000Z"
}
}
Error (Not Found)
{
"success": false,
"message": "No active terms and conditions found"
}
Document Structure
FAQ Object
- Name
id- Type
- integer
- Description
Unique identifier
- Name
question- Type
- string
- Description
The FAQ question
- Name
answer- Type
- text
- Description
Detailed answer to the question
- Name
order- Type
- integer
- Description
Display order (lower numbers appear first)
- Name
status- Type
- enum
- Description
Status:
activeorinactive
- Name
created_at- Type
- timestamp
- Description
Creation timestamp
- Name
updated_at- Type
- timestamp
- Description
Last update timestamp
Legal Document Object
Both Privacy Policy and Terms use the same structure:
- Name
id- Type
- integer
- Description
Unique identifier
- Name
title- Type
- string
- Description
Document title
- Name
content- Type
- longtext
- Description
Full document content (supports Markdown)
- Name
version- Type
- string
- Description
Version number (e.g., "2.0", "1.5")
- Name
effective_date- Type
- date
- Description
Date when this version became effective
- Name
status- Type
- enum
- Description
Status:
activeordraft
- Name
created_at- Type
- timestamp
- Description
Creation timestamp
- Name
updated_at- Type
- timestamp
- Description
Last update timestamp
Content Format
Markdown Support
Legal documents use Markdown formatting:
# Privacy Policy
**Effective Date:** January 1, 2024
## 1. Information We Collect
We collect information you provide directly to us, including:
- Name and contact information
- Payment information
- Donation history
## 2. How We Use Your Information
We use the information we collect to:
- Process your donations
- Send receipts and updates
You can render this Markdown content in your application using a Markdown renderer.
Version Tracking
Documents include version numbers and effective dates:
{
"version": "2.0",
"effective_date": "2024-01-01"
}
Use this information to:
- Show users when terms changed
- Require acceptance of new versions
- Track which version user agreed to
Common Use Cases
Display FAQs in App
async function loadFAQs() {
const response = await fetch('https://batchmates-v2.revlv.com/api/v1/faqs');
const data = await response.json();
// FAQs are already sorted by order field
data.data.forEach(faq => {
displayFAQ(faq.question, faq.answer);
});
}
Show Privacy Policy on Registration
async function showPrivacyPolicy() {
const response = await fetch('https://batchmates-v2.revlv.com/api/v1/privacy-policy');
const data = await response.json();
if (data.success) {
const policy = data.data;
displayMarkdown(policy.content);
showVersion(policy.version, policy.effective_date);
}
}
Require Terms Acceptance
async function checkTermsAccepted(userAcceptedVersion) {
const response = await fetch('https://batchmates-v2.revlv.com/api/v1/terms-and-conditions');
const data = await response.json();
const currentVersion = data.data.version;
if (userAcceptedVersion !== currentVersion) {
// Show new terms and require acceptance
showTermsDialog(data.data);
}
}
FAQ Categories
FAQs are ordered by the order field. Common categories include:
Getting Started (order 1-10)
- How to create an account
- How to make a donation
- Payment methods accepted
Donations (order 11-20)
- Recurring donations
- Donation receipts
- Refund policy
Security & Privacy (order 21-30)
- Data protection
- Payment security
- Account security
Technical Support (order 31-40)
- Troubleshooting
- Contact support
- Platform features
Legal Document Updates
How Updates Work
- Only one document can have
status: "active"at a time - When a new version is activated, the previous version becomes
draft - Users should be notified of important policy changes
Effective Dates
The effective_date indicates when the policy takes effect:
{
"effective_date": "2024-02-01",
"status": "active"
}
This allows publishing documents in advance of their effective date.
Error Responses
- Name
404 Not Found- Description
No active document found (first time setup needed)
No Active Document
{
"success": false,
"message": "No active privacy policy found"
}
If you receive this error:
- For FAQs: Display a message that FAQs are being updated
- For legal docs: Contact support (documents should always be active)
Best Practices
For FAQs
- Cache FAQ data locally to reduce API calls
- Refresh when app opens or every 24 hours
- Provide search functionality for long FAQ lists
- Group by category using the
orderfield
For Legal Documents
- Always display version and effective date
- Track which version user has accepted
- Require acceptance on significant updates
- Provide easy access from app settings
- Cache documents but check for updates periodically
User Experience
- Make legal docs easily accessible (footer links, settings)
- Use proper Markdown rendering for readability
- Highlight changes between versions when possible
- Allow users to download or email documents