Wasend

Get QR Code

Get QR code for WhatsApp session authentication

Get QR Code

Get the QR code for authenticating a WhatsApp session.

Endpoint

GET /sessions/{sessionId}/qr

Headers

NameTypeRequiredDescription
AuthorizationstringYesBearer token for authentication

Path Parameters

NameTypeRequiredDescription
sessionIdstringYesUnique identifier of the session

Response

{
  "data": "string"
}

Example

curl -X GET "https://api.wasend.dev/sessions/SESSION_ID/qr" \
  -H "Authorization: Bearer YOUR_API_KEY"
import { WasendClient } from '@wasend/core';

const client = new WasendClient({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.wasend.dev'
});

// Get QR code for session
const qrCode = await client.retrieveSessionQR('SESSION_ID');
console.log('QR Code:', qrCode);
const { WasendClient } = require('@wasend/core');

const client = new WasendClient({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.wasend.dev'
});

const qrCode = await client.retrieveSessionQR('SESSION_ID');
console.log('QR Code:', qrCode);
from wasend import WasendClient

client = WasendClient(
    api_key='YOUR_API_KEY',
    base_url='https://api.wasend.dev'
)

qr_code = client.retrieve_session_qr('SESSION_ID')
print('QR Code:', qr_code)
package main

import (
	"fmt"
	"github.com/wasenddev/wasend-sdk-go/wasendcore"
)

func StringPtr(s string) *string    { return &s }
func Float64Ptr(f float64) *float64 { return &f }

func main() {
	client := wasendcore.NewWasendClient(&wasendcore.WasendConfig{
		ApiKey:  StringPtr("YOUR_API_KEY"),
		BaseUrl: StringPtr("https://api.wasend.dev"),
	})

	qrCode := client.RetrieveSessionQR(StringPtr("SESSION_ID"))
	fmt.Printf("QR Code: %+v\n", qrCode)
}
using Wasend.Core;

var config = new WasendConfig
{
    ApiKey = "your-api-key-here" // Required
    // BaseUrl and Timeout are optional and have default values
};

var client = new WasendClient(config);
var qrCode = client.RetrieveQRCode("your-session-id-here");
Console.WriteLine($"QR Code: {qrCode}");
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.wasend.dev/sessions/SESSION_ID/qr"))
            .header("Authorization", "Bearer YOUR_API_KEY")
            .GET()
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println("Response: " + response.body());
    }
}
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.wasend.dev/sessions/SESSION_ID/qr");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer YOUR_API_KEY"
]);

$response = curl_exec($ch);
curl_close($ch);

echo "Response: " . $response;
require 'net/http'
require 'uri'

uri = URI('https://api.wasend.dev/sessions/SESSION_ID/qr')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts "Response: #{response.body}"
import Foundation

let url = URL(string: "https://api.wasend.dev/sessions/SESSION_ID/qr")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print("Response: \(String(data: data, encoding: .utf8) ?? "")")
    }
}
task.resume()
use reqwest::header::{HeaderMap, HeaderValue, AUTHORIZATION};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut headers = HeaderMap::new();
    headers.insert(
        AUTHORIZATION,
        HeaderValue::from_str("Bearer YOUR_API_KEY")?
    );

    let client = reqwest::Client::new();
    let response = client
        .get("https://api.wasend.dev/sessions/SESSION_ID/qr")
        .headers(headers)
        .send()
        .await?
        .text()
        .await?;

    println!("Response: {}", response);
    Ok(())
}

SDK Integration

The WASend SDKs provide a simple and consistent interface across all supported languages. Here's how to integrate them into your project:

TypeScript/JavaScript

# Using npm
npm install @wasend/core

# Using yarn
yarn add @wasend/core

Python

pip install wasend

.NET

dotnet add package Wasend.Core

Go

go get github.com/wasenddev/wasend-sdk-go

Integration Testing

The SDKs include integration tests that demonstrate proper usage. Here's an example of a typical QR code retrieval flow:

  1. Create a new session
  2. Get the QR code
  3. Display the QR code to the user
  4. Monitor session status

For detailed integration examples, refer to the SDK documentation and test files in each repository.

Response Fields

FieldTypeDescription
qrCodestringBase64 encoded QR code image
expiresAtstringTimestamp when the QR code expires

Error Codes

CodeDescription
401Unauthorized - Invalid or missing API key
404Not Found - Session not found
409Conflict - Session is already connected
429Too many requests - Rate limit exceeded
500Internal server error

Notes

  • QR codes are valid for a limited time
  • The session must be in a STARTING state
  • QR codes are provided as base64 encoded images
  • The SDKs handle error cases and provide appropriate error messages
  • Integration tests demonstrate proper error handling