수신거부번호 관리

센드온 SDK는 수신거부번호 목록 관리 기능을 제공하여 발송 시 차단된 전화번호를 자동으로 제외할 수 있습니다.
개발자는 API를 이용해 수신거부번호 목록에 전화번호를 추가하거나 삭제할 수 있으며, 등록된 리스트를 조회할 수도 있습니다.


수신거부번호 목록 조회

현재 등록된 수신거부번호 목록을 조회할 수 있습니다.

Node.js 예제

기본 차단목록 조회

import { Sendon } from '@alipeople/sendon-sdk-typescript'
import { GetBlocklistResponseDto } from '@alipeople/sendon-sdk-typescript';

const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" })

#### 기본 차단목록 조회
const basicBlocklist: GetBlocklistResponseDto = await sendon.contacts.getBlocklist({
  cursor: 0,
  limit: 10,
});

발신번호로 필터링

// 특정 발신번호로 필터링된 차단목록 조회
const senderFiltered: GetBlocklistResponseDto =
  await sendon.contacts.getBlocklist({
    senderNumber: "01012345678",
    cursor: 0,
    limit: 5,
  });

카카오 채널 ID로 필터링

// 카카오 채널 ID로 필터링된 차단목록 조회
const kakaoFiltered: GetBlocklistResponseDto =
  await sendon.contacts.getBlocklist({
    kakaoChannelIds: ["YOUR_CHANNEL_ID"],
    cursor: 0,
    limit: 5,
  });

차단 타입별 필터링

// 특정 차단 타입으로 필터링된 차단목록 조회
const typeFiltered: GetBlocklistResponseDto =
  await sendon.contacts.getBlocklist({
    blockType: ["API"],
    cursor: 0,
    limit: 10,
  });

날짜 범위로 필터링

// 최근 30일간의 차단목록 조회
const now = new Date();
const thirtyDaysAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);

const dateFiltered: GetBlocklistResponseDto =
  await sendon.contacts.getBlocklist({
    startDate: thirtyDaysAgo.toISOString().slice(0, 19).replace("T", " "),
    endDate: now.toISOString().slice(0, 19).replace("T", " "),
    cursor: 0,
    limit: 20,
  });

응답 예제

{
  "code": 200,
  "message": "OK",
  "data": {
    "blocklist": [
      {
        "userId": 12345,
        "channelId": 1,
        "phoneNumber": "01012345678",
        "senderNumber": "01087654321",
        "blockId": 67890,
        "blockType": "API",
        "blockDomain": "https://sendon.io",
        "messageType": "SMS",
        "kakaoChannelId": "카카오 채널 ID",
        "rcsBrandId": "RCS 브랜드 ID",
        "rcsChatbotId": "RCS 챗봇 ID",
        "createdAt": "2024-12-25T10:00:00Z",
        "updatedAt": "2024-12-25T15:30:00Z"
      },
      {
        "userId": 12345,
        "channelId": 1,
        "phoneNumber": "01012345678",
        "senderNumber": "01087654321",
        "blockId": 67891,
        "blockType": "WEB",
        "blockDomain": "https://sendon.io",
        "messageType": "KAKAO",
        "kakaoChannelId": "카카오 채널 ID",
        "rcsBrandId": "RCS 브랜드 ID",
        "rcsChatbotId": "RCS 챗봇 ID",
        "createdAt": "2024-12-25T10:05:00Z",
        "updatedAt": "2024-12-25T15:35:00Z"
      }
    ],
    "cursor": null,
    "totalCount": 2
  }
}

수신거부번호 목록 조회 응답 필드 설명

파라미터타입설명필수 여부
userIdnumber수신거부를 등록한 사용자 ID필수
channelIdnumber수신거부를 적용할 채널 ID필수
phoneNumberstring수신거부를 원하는 수신자의 전화번호필수
senderNumberstring수신거부를 적용할 발신번호필수
blockIdnumber수신거부 항목 ID필수
blockTypestring수신거부 유형 (API, WEB, ARS 등)필수
blockDomainstring수신거부 도메인필수
messageTypestring메시지 유형 (SMS, KAKAO, RCS 등)필수
kakaoChannelIdstring카카오 채널 ID필수
rcsBrandIdstringRCS 브랜드 ID필수
rcsChatbotIdstringRCS 챗봇 ID필수
createdAtstring수신거부 항목이 생성된 날짜와 시간필수
updatedAtstring수신거부 항목이 마지막으로 수정된 날짜와 시간필수

자세한 코드 예제는 아래 문서를 참고하세요.

🔗 SDK 수신거부번호 조회 가이드


수신거부번호 추가

특정 전화번호를 수신거부번호 목록에 추가할 수 있습니다.

수신거부 메시지 유형 별 필수 매개변수

각 메시지 유형에 해당하는 필수 매개변수를 제공하지 않으면 API 요청이 실패합니다. messageType에 맞는 올바른 식별자를 반드시 포함해주세요.

필수 매개변수: senderNumber

SMS 메시지 수신거부를 위해서는 발신번호가 반드시 필요합니다.

{
  "phoneNumber": "01012345678",
  "messageType": "SMS",
  "senderNumber": "01087654321"
}

Node.js 예제

SMS/MMS 발신번호별 차단 추가

import { Sendon } from "@alipeople/sendon-sdk-typescript";
import { CreateBlocklistResponseDto } from "@alipeople/sendon-sdk-typescript";

const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" });

// 특정 발신번호로부터의 SMS/MMS 차단 추가
const senderBlocklist: CreateBlocklistResponseDto =
  await sendon.contacts.createBlocklist({
    phoneNumber: "01087654321",
    messageType: "SMS",
    senderNumber: "01012345678",
  });

카카오 채널 차단 추가

// 특정 카카오 채널로부터의 메시지 차단 추가
const kakaoBlocklist: CreateBlocklistResponseDto =
  await sendon.contacts.createBlocklist({
    phoneNumber: "01087654321",
    messageType: "KAKAO",
    kakaoChannelId: "YOUR_CHANNEL_ID",
  });

응답 예제

{
  "code": 200,
  "message": "OK",
  "data": {
    "id": 1
  }
}

수신거부번호 추가 응답 필드 설명

파라미터타입설명필수 여부
idnumber추가된 수신거부번호 ID필수

수신거부번호 삭제

특정 전화번호를 수신거부번호 목록에서 삭제할 수 있습니다.

Node.js 예제

import { Sendon } from "@alipeople/sendon-sdk-typescript";
import { DeleteBlocklistResponseDto } from "@alipeople/sendon-sdk-typescript";

const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" });

// 차단 목록에서 특정 ID를 가진 항목 삭제
const removeResult: DeleteBlocklistResponseDto =
  await sendon.contacts.deleteBlocklist(blocklistId);

완전한 추가/삭제 예제

import {
  CreateBlocklistResponseDto,
  DeleteBlocklistResponseDto,
} from "@alipeople/sendon-sdk-typescript";
import { HttpStatusCode } from "axios";

// 차단 추가 후 삭제하는 완전한 예제
async function addAndRemoveBlocklist() {
  // 1. 차단 추가
  const senderBlocklist: CreateBlocklistResponseDto =
    await sendon.contacts.createBlocklist({
      phoneNumber: "01087654321",
      messageType: "SMS",
      senderNumber: "01012345678",
    });

  console.log("차단 추가 결과:", senderBlocklist);

  // 2. 잠시 대기
  await new Promise((resolve) => setTimeout(resolve, 2000));

  // 3. 추가가 성공했다면 삭제
  if (senderBlocklist.code === HttpStatusCode.Ok && senderBlocklist.data) {
    const deleteResult: DeleteBlocklistResponseDto =
      await sendon.contacts.deleteBlocklist(senderBlocklist.data.id);

    console.log("차단 삭제 결과:", deleteResult);
  }
}

응답 예제

{
  "code": 200,
  "message": "OK",
  "data": {
    "isSuccess": true
  }
}

수신거부번호 삭제 응답 필드 설명

파라미터타입설명필수 여부
isSuccessboolean수신거부 삭제 성공 유무필수

자세한 코드 예제는 아래 문서를 참고하세요.

🔗 SDK 수신거부번호 추가/삭제 가이드


사용 시 주의사항

  • 자동 필터링 기능: 발송 시 수신거부번호 목록에 등록된 번호는 자동으로 필터링되므로 추가적인 처리 없이 안정적인 메시징이 가능합니다.
  • 응답 데이터 확인: 추가, 삭제, 조회 요청 후 반환되는 데이터를 확인하여 요청이 성공적으로 처리되었는지 점검하세요.
  • 권한 관리: 수신 차단 리스트 관리 기능은 민감한 작업이므로 적절한 인증과 권한 설정이 필요합니다.