with Square and OKX Wallet?
Creates a new customer for a business. Must provide at least one of the following: Given Name, Family Name, Company Name, Email Address, or Phone Number. See the docs
Creates a draft invoice for an order. You must send (publish) the invoice before Square can process it. See the documentation
Creates a new order that can include information about products for purchase. See docs here
The Square API opens up a realm of possibilities for merchants to effortlessly manage their sales, inventory, customers, and payments. With Pipedream, you can automate actions based on events in Square, such as new transactions, updated orders, or customer profile changes. Craft custom workflows that react in real-time, sync data across platforms, or streamline reporting. Through Pipedream's serverless platform, you can connect Square with countless other apps without writing extensive code, turning manual tasks into automated, efficient processes.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
square: {
type: "app",
app: "square",
}
},
async run({steps, $}) {
return await axios($, {
method: "post",
url: `https://connect.squareup.com/oauth2/token/status`,
headers: {
Authorization: `Bearer ${this.square.$auth.oauth_access_token}`,
},
})
},
})
import crypto from "crypto";
import { axios } from "@pipedream/platform";
export default defineComponent({
props: {
okx_wallet: {
type: "app",
app: "okx_wallet",
}
},
async run({ steps, $ }) {
// Pull credentials from $auth
const apiKey = this.okx_wallet.$auth.api_key;
const secretKey = this.okx_wallet.$auth.secret_key;
const passphrase = this.okx_wallet.$auth.passphrase;
// Hardcoded request parameters
const method = "GET";
const requestPath = "/api/v5/account/balance";
const body = ""; // GET request, no body
// Function to generate signed headers
const createSignedHeaders = ({ method, requestPath, body }) => {
const timestamp = new Date().toISOString(); // UTC ISO timestamp with ms
// Pre-hash string
const prehash = timestamp + method.toUpperCase() + requestPath + body;
// HMAC SHA256 signature, Base64 encoded
const hmac = crypto.createHmac("sha256", secretKey);
hmac.update(prehash);
const signature = hmac.digest("base64");
return {
"OK-ACCESS-KEY": apiKey,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": passphrase,
"Content-Type": "application/json",
};
};
// Generate headers
const headers = createSignedHeaders({ method, requestPath, body });
// Full URL
const url = `${this.okx_wallet.$auth.api_url}${requestPath}`;
// Make request and return reponse to next step
return await axios($, {
method,
url,
headers,
data: body || undefined,
});
},
})