with OpenSRS and Xero Accounting?
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Emit new notifications when you create a new or update existing contact
Emit new notifications when you create a new or update existing invoice
Initiate a domain transfer to OpenSRS. See the documentation
Adds line items to an existing sales invoice. See the docs here
Gets bank statements for the specified bank account.
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})
The Xero Accounting API offers a powerful gateway to access and manipulate financial data within Xero. Leveraging Pipedream's capabilities, developers can build custom workflows that streamline accounting processes, sync financial data with external systems, and trigger actions based on financial events. This API allows for the automation of tasks such as invoicing, bank reconciliation, bill payments, and reporting, which can lead to significant time savings and enhanced data accuracy.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
xero_accounting_api: {
type: "app",
app: "xero_accounting_api",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.xero.com/connections`,
headers: {
Authorization: `Bearer ${this.xero_accounting_api.$auth.oauth_access_token}`,
},
})
},
})